TTVideo
Media download service for Telegram
Send the bot a link and the file arrives in the chat. The heavy lifting runs in queues on separate workers, so one slow request never holds up the rest, and failures are caught by alert rules that live in the repository alongside their tests.
Try it@videott_downloadbot- Status
- maintained
- Role
- Author and operator
- Period
- 2026
- Updated
- Stack
- TypeScript · Node.js · BullMQ · Redis · PostgreSQL · Docker · Prometheus
- Verified by
- code · tests · incident
- Telegramdelivers updates to a secret-checked webhook
- Botverifies the secret and queues a job
- Redistwo queues, video and music, plus a cache of sent files
- Workers ×3download and ffmpeg; tracks go through a separate engine, one at a time
- Chatthe finished file is sent to the user
Alongside
- PostgreSQLusers and their settings
- Prometheus and Alertmanagermetrics from every container, rules with tests
- Webhook watchdogchecks the webhook address on a timer
Verifiable decisions
Work is split by cost. Music tracks get their own queue, one at a time per worker, so they never take video slots.
code
Every outbound address is checked at DNS resolution time, on every redirect hop. A string-based address check had already been bypassed with an IPv4-mapped IPv6 address.
tests
A watchdog checks the webhook address on a timer and raises an alert if it changes. It exists because of a real webhook hijacking incident.
incident
Alert rules are kept in the repository and pass promtool tests before they ship.
tests