GhostifyBot

GhostifyBot is a powerful Go-based streaming automation tool that downloads media content from torrents, processes it using ffmpeg, and streams it directly to Telegram channels.
Overview
GhostifyBot aims to provide an autonomous backend solution for distributing multimedia content using a combination of:
- β
Torrent downloading
- β
Media processing via
ffmpeg
- β
Automated Telegram streaming
This project is designed with flexibility, automation, and performance in mind β targeting developers who want to streamline content delivery pipelines.
Objectives
- Fetch media from torrents: Download videos or audio files through magnet links or
.torrent files.
- Process and transcode with ffmpeg: Clean, cut, convert or reformat media using powerful ffmpeg commands.
- Distribute via Telegram: Stream or upload the processed content automatically to Telegram channels or groups via bots.
- Keep everything asynchronous: Efficient task management with goroutines and wait groups for concurrency.
Technologies
Core stack and packages used in this project:
You can see the full list in the go.mod.
Installation
Requirements:
- Go 1.24 or higher
ffmpeg installed and available in your $PATH
- A Telegram bot token and channel ID
- Make installed on your system
Clone the repo
git clone https://github.com/DoniLite/GhostifyBot.git
cd GhostifyBot
Install Dependencies
make install-deps
Build The project
make build
Run the bot
make run
Make sure to configure your Telegram credentials and ffmpeg settings in a config file or environment variables (WIP).
Features Roadmap
- Torrent downloading via magnet or .torrent (Processing...)
- ffmpeg integration for media processing (Processing...)
- Telegram channel media delivery (Processing...)
- Rod integration for site crawling
- Web dashboard or CLI interface
- Playlist or bulk torrent handling
- Custom transcoding profiles
π€ Contributing
Contributions are welcome! Whether you're fixing bugs, improving performance, or adding features β your help is appreciated.
How to contribute
- Fork the repo
- Create a new branch:
git checkout -b feature/my-new-feature
- Make your changes
- Commit:
git commit -am 'Add my feature'
- Push:
git push origin feature/my-new-feature
- Open a Pull Request targeting the
develop branch
π Project Structure (WIP)
GhostifyBot/
βββ cmd/ # CLI or entrypoint (future)
βββ utils/ # Utilities
βββ services/ # Event system, App logic (torrent, telegram, ffmpeg) etc.
βββ assets/ # Media files (optional)
βββ downloads/ # Downloading contents
βββ main.go # Application entrypoint
βββ go.mod # Module dependencies
π Environment Variables
GhostifyBot requires a few environment variables to be set for proper operation:
| Variable Name |
Description |
TELEGRAM_BOT_TOKEN |
Your Telegram bot token |
TELEGRAM_CHANNEL_ID |
The target channel ID (e.g., @mychannel) |
FFMPEG_PATH |
(Optional) Custom path to ffmpeg binary |
TORRENT_TMP_DIR |
(Optional) Temp directory for torrent data |
You can create a .env file at the root of your project:
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHANNEL_ID=@your_channel
FFMPEG_PATH=/usr/bin/ffmpeg
TORRENT_TMP_DIR=./downloads
π License
This project is open-source and under the MIT License.
π Links
Feel free to reach out for ideas, suggestions, or contributions!