All Url Uploader
Pythonaiogramyt-dlpFFmpegDocker2021

All Url Uploader

A Telegram bot that takes a link, downloads it with the right tool for the job, and sends the file back with the correct media type, metadata, and thumbnail.

Downloading a file on one device to re-upload it somewhere else is a chore that shouldn’t exist. This bot removes the middle step: send it a URL, it fetches the file server-side, and it hands the result back as a proper Telegram video, audio, or document — not an untyped blob.

It’s the most-used thing I’ve published, sitting at 500+ stars and still getting maintenance commits four years after the first one.

What it handles

  • Direct file links
  • url|filename to rename on the way through
  • url|filename|username|password for links behind basic auth
  • YouTube quick-audio and quick-video downloads
  • Format selection for any source yt-dlp supports
  • Per-user custom thumbnails via /thumb and /delthumb

How it works

The bot is built on aiogram, split into routers/ for the Telegram surface and services/ for the work — so the code that talks to users never touches the code that moves bytes. yt-dlp handles anything platform-specific, FFmpeg handles remuxing, and direct links stream through a configurable chunk size rather than buffering whole files in memory.

The parts that actually took iteration are the operational ones. PROCESS_MAX_TIMEOUT bounds external tools so one pathological link can’t wedge the process. A cooldown throttles requests, with AUTH_USERS as an explicit bypass list. HTTP_PROXY threads through both the request layer and yt-dlp, because the sources worth proxying are exactly the ones that block datacenter IPs.

Deployment is meant to be boring: uv for dependencies, a Dockerfile, and one-click templates for Railway, Koyeb, and Heroku. CI runs pytest and pylint on every push, with CodeQL alongside.

Notes

Most of the maintenance is keeping up with extractors — video platforms change delivery formats constantly, and a bot like this is only ever as good as its last yt-dlp bump. The 2026 rewrite moved it to aiogram with uv and a real test suite, which is what made that upkeep sustainable instead of a chore.

That's all for now.

Got a project in mind?
Let's build it