I built a Telegram bot that downloads YouTube videos — here’s how it works

Hey DEV community! 👋

I’ve been building a Telegram bot called @AndyVideoBot that downloads YouTube videos and audio directly to Telegram chat. No browser extension, no website, no login required — just paste a link.

What it does

  • Video formats: 144p · 240p · 360p · 480p · 720p · 1080p · 1440p · 4K
  • Audio: MP3 extraction
  • Playlists — download entire playlists
  • YouTube Shorts — vertical video supported
  • Channel subscriptions — subscribe to a channel and get new uploads delivered automatically
  • Dubbed audio selection — choose language when multiple audio tracks are available
  • Smart cache — if someone already downloaded the same video at the same quality, instant delivery from cache (no re-downloading)
  • Inline mode — share downloads directly in any Telegram chat

Tech stack

  • Python 3.14 (free-threaded, GIL disabled)
  • Telethon — Telegram MTProto client
  • yt-dlp — YouTube downloading engine
  • aiosqlite — async SQLite

Multi-bot architecture

The bot supports running multiple instances simultaneously sharing a single database. Each instance handles its own download queue, and files are served from a shared Telegram-based cache — so if bot A downloaded a video, bot B delivers it instantly from cache.

12 languages

English, Russian, German, Spanish, French, Portuguese, Turkish, Indonesian, Hindi, Vietnamese, Kazakh, Chinese.

Try it

👉 https://t.me/AndyVideoBot