Upload direct links and supported media sources back to Telegram.
Built with aiogram, yt-dlp, and uv for a cleaner local workflow.
Docs · Contributing · Docker · Issues · Discussions
All Url Uploader is a Telegram bot that accepts direct file URLs and supported media links, downloads them with the right tool for the job, and sends the result back to Telegram with the correct media type, metadata, and optional custom thumbnail.
- direct file links
url|filenameurl|filename|username|passwordurl * filename- YouTube quick audio and quick video downloads
- format selection for supported
yt-dlpsources - custom per-user thumbnails with
/thumband/delthumb
/start- welcome message, shortcuts, and usage guidance/help- supported link formats and flow overview/about- runtime details, repo link, and project notes/thumb- show the currently saved custom thumbnail/delthumb- remove the saved custom thumbnail
- Clone the repository and move into it:
git clone https://github.com/kalanakt/All-Url-Uploader.git
cd All-Url-Uploader- Create a
.envfile in the project root:
BOT_TOKEN=
OWNER_ID=
AUTH_USERS=
DOWNLOAD_LOCATION=./DOWNLOADS
CHUNK_SIZE=128
HTTP_PROXY=
PROCESS_MAX_TIMEOUT=3700- Install dependencies:
uv sync --group dev- Start the bot:
uv run python bot.pyBOT_TOKEN- required Telegram bot tokenOWNER_ID- required Telegram user ID for the bot ownerAUTH_USERS- optional comma-separated list of user IDs that bypass the cooldownDOWNLOAD_LOCATION- optional base directory for temporary downloads and uploadsCHUNK_SIZE- optional direct-download chunk size; values below1024are treated as kilobytes for backward compatibilityHTTP_PROXY- optional proxy URL passed to network requests andyt-dlpPROCESS_MAX_TIMEOUT- optional process timeout in seconds for external tools
- root runtime entrypoints:
bot.py,app.py,config.py - routers:
routers/ - services:
services/ - shared helpers and models:
utils/ - tests:
tests/ - external documentation site:
docs/
Build and run the container with your existing .env file:
docker build -t all-url-uploader .
docker run --env-file .env all-url-uploaderRun the same core checks used in GitHub Actions:
uv run pytest
uv run pylint $(git ls-files '*.py')
cd docs && npm run build| Deploy on Railway | Deploy on Koyeb | Deploy on Heroku |
|---|---|---|
|
kalana kt |
tromcho |
Fzso |
HYBRID |
Danil |
Avika Trivedi |
|
Damindu Dhananjitha |
Imgbot |
Parthiv Katapara |
Indrajeeth |