HyperTech Downloader Bot is a Telegram bot for downloading media from supported public links in private chats and approved groups. It supports a simple local dev mode, a Redis-backed worker queue for production, and admin controls for group approval and rank-based limits.
- Download media from supported public links with yt-dlp
- Work in private chats and approved Telegram groups
- Support auto-download when links are posted
- Use hidden admin commands for approvals and moderation
- Enforce group rank limits for cooldowns, file size, and concurrency
- Run in DEV_MODE with SQLite and in-process downloads
- Run in production with PostgreSQL, Redis, and RQ workers
- Show cleaner Telegram UI messages and cleaner console logs
- YouTube
- TikTok
- X/Twitter
Platform support ultimately depends on what yt-dlp can extract from the public link you send.
- /start - Start the bot
- /help - View the help menu
- /download - Download media from a supported link
- /info - View your profile or group statistics
- /autodl - Toggle auto-download
Hidden Admin Commands
- /adminhelp - Show admin-only help
- /promote <user_id|@username|reply> - Promote a user to admin
- /demote <user_id|@username|reply> - Remove admin access
- /addgroup - Approve the current group
- /rmgroup - Remove group approval
- /setrank <full|sudo|less> - Set the current group rank
- Full - No restrictions
- Sudo - 100 MB limit and 10 second cooldown
- Less - 50 MB limit and 30 second cooldown
main.py- bot entry pointhandlers/- Telegram command and message handlersmiddlewares/- auth, logging, and rate-limit middlewareworkers/- background download workerutils/- downloader, formatting, permissions, and Redis helpersdatabase/- models and DB connection/bootstrap logicalembic/- production migrations
Use .env.example as the base for your local .env.
Required:
BOT_TOKEN- Telegram bot token from BotFatherOWNER_ID- Telegram user ID for the bot ownerDATABASE_URL- SQLAlchemy database URL
Common options:
REDIS_HOSTREDIS_PORTREDIS_DBREDIS_PASSWORDDOWNLOAD_PATHDOWNLOAD_JOB_TIMEOUTDEV_MODEDEBUG
Docker convenience variables:
POSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DB
This is the easiest way to run the bot on one machine without Docker.
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt