TTVideo
Сервис загрузки медиа для Telegram
Бот принимает ссылку и присылает файл прямо в чат. Тяжёлая работа вынесена в очереди и отдельные воркеры, поэтому один долгий запрос не задерживает остальные, а о поломке сообщают алерты, которые лежат в репозитории вместе с тестами.
Попробовать@videott_downloadbot- Статус
- поддерживается
- Роль
- Автор и оператор
- Период
- 2026
- Обновлено
- Стек
- TypeScript · Node.js · BullMQ · Redis · PostgreSQL · Docker · Prometheus
- Проверено
- код · тесты · инцидент
- Telegramприсылает обновление на вебхук с секретом
- Ботпроверяет секрет и ставит задачу в очередь
- Redisдве очереди, видео и музыка, и кэш готовых файлов
- Воркеры ×3загрузка и ffmpeg; треки через отдельный движок, по одному
- Чатготовый файл уходит пользователю
Рядом
- PostgreSQLпользователи и их настройки
- Prometheus и Alertmanagerметрики каждого контейнера, правила с тестами
- Сторож вебхукапо таймеру сверяет адрес вебхука
Проверяемые решения
Работа разделена по стоимости. Треки идут в отдельную очередь, по одному на воркер, и не занимают слоты видео.
код
Адрес каждого исходящего запроса проверяется в момент DNS-резолва, на каждом редиректе. Строковую проверку адреса уже обходил IPv4-mapped IPv6.
тесты
Сторож по таймеру сверяет адрес вебхука и поднимает алерт при подмене. Появился после реального инцидента с подменой вебхука.
инцидент
Правила алертов хранятся в репозитории и проходят тесты promtool до выкатки.
тесты