All Url Uploader
A simple telegram Bot, Upload Media File| video To telegram using the direct download link. (youtube, Mediafire, google drive, mega drive, etc)
**Upload direct links and supported media sources back to Telegram.** The project is written primarily in Python, distributed under the MIT License license, first published in 2021. Key topics include: bot, directlink, download-manager, downloader, galaxy.
All Url Uploader
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
</div>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.
What It Handles
- 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
Bot Commands
/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
Quick Start
- Clone the repository and move into it:
bashgit clone https://github.com/kalanakt/All-Url-Uploader.git cd All-Url-Uploader
- Create a
.envfile in the project root:
dotenvBOT_TOKEN= OWNER_ID= AUTH_USERS= DOWNLOAD_LOCATION=./DOWNLOADS CHUNK_SIZE=128 HTTP_PROXY= PROCESS_MAX_TIMEOUT=3700
- Install dependencies:
bashuv sync --group dev
- Start the bot:
bashuv run python bot.py
Environment
BOT_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
Project Layout
- root runtime entrypoints:
bot.py,app.py,config.py - routers:
routers/ - services:
services/ - shared helpers and models:
utils/ - tests:
tests/ - external documentation site:
docs/
Docker
Build and run the container with your existing .env file:
bashdocker build -t all-url-uploader . docker run --env-file .env all-url-uploader
Checks
Run the same core checks used in GitHub Actions:
bashuv run pytest uv run pylint $(git ls-files '*.py') cd docs && npm run build
Deploy
| Deploy on Railway | Deploy on Koyeb | Deploy on Heroku |
|---|---|---|
Contributors
<!-- readme: contributors -start --> <table> <tbody> <tr> <td align="center"> <a href="https://github.com/kalanakt"> <img src="https://avatars.githubusercontent.com/u/86665964?v=4" width="100;" alt="kalanakt"/> <br /> <sub><b>kalana kt</b></sub> </a> </td> <td align="center"> <a href="https://github.com/tromcho"> <img src="https://avatars.githubusercontent.com/u/113139586?v=4" width="100;" alt="tromcho"/> <br /> <sub><b>tromcho</b></sub> </a> </td> <td align="center"> <a href="https://github.com/fzsouser"> <img src="https://avatars.githubusercontent.com/u/108298343?v=4" width="100;" alt="fzsouser"/> <br /> <sub><b>Fzso</b></sub> </a> </td> <td align="center"> <a href="https://github.com/hybridvamp"> <img src="https://avatars.githubusercontent.com/u/48980248?v=4" width="100;" alt="hybridvamp"/> <br /> <sub><b>HYBRID</b></sub> </a> </td> <td align="center"> <a href="https://github.com/Divarion-D"> <img src="https://avatars.githubusercontent.com/u/42798043?v=4" width="100;" alt="Divarion-D"/> <br /> <sub><b>Danil</b></sub> </a> </td> <td align="center"> <a href="https://github.com/AvikaTrivedi"> <img src="https://avatars.githubusercontent.com/u/84050503?v=4" width="100;" alt="AvikaTrivedi"/> <br /> <sub><b>Avika Trivedi</b></sub> </a> </td> </tr> <tr> <td align="center"> <a href="https://github.com/libresoul"> <img src="https://avatars.githubusercontent.com/u/69932259?v=4" width="100;" alt="libresoul"/> <br /> <sub><b>Damindu Dhananjitha</b></sub> </a> </td> <td align="center"> <a href="https://github.com/ImgBotApp"> <img src="https://avatars.githubusercontent.com/u/31427850?v=4" width="100;" alt="ImgBotApp"/> <br /> <sub><b>Imgbot</b></sub> </a> </td> <td align="center"> <a href="https://github.com/satyanandatripathi"> <img src="https://avatars.githubusercontent.com/u/83153745?v=4" width="100;" alt="satyanandatripathi"/> <br /> <sub><b>Parthiv Katapara </b></sub> </a> </td> <td align="center"> <a href="https://github.com/IndrajeethY"> <img src="https://avatars.githubusercontent.com/u/79161058?v=4" width="100;" alt="IndrajeethY"/> <br /> <sub><b>Indrajeeth</b></sub> </a> </td> </tr> <tbody> </table> <!-- readme: contributors -end -->Star History
<picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=kalanakt/All-Url-Uploader&type=date&theme=dark&legend=top-left" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=kalanakt/All-Url-Uploader&type=date&legend=top-left" /> <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=kalanakt/All-Url-Uploader&type=date&legend=top-left" /> </picture>Contributors
Showing top 12 contributors by commit count.
