GhostifyBot

command module
v0.0.0-...-7336ba5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2025 License: MIT Imports: 6 Imported by: 0

README ΒΆ

GhostifyBot

Build Test

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:

Purpose Tech
Programming Language Go
Torrent Handling anacrolix/torrent
Telegram API go-telegram-bot-api
Media Processing ffmpeg (CLI)
Crawling/Automation Rod
Concurrency Handling sync.WaitGroup, goroutines

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
  1. Fork the repo
  2. Create a new branch: git checkout -b feature/my-new-feature
  3. Make your changes
  4. Commit: git commit -am 'Add my feature'
  5. Push: git push origin feature/my-new-feature
  6. 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.



Feel free to reach out for ideas, suggestions, or contributions!

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL