Я сделал Telegram-бота для скачивания видео из YouTube, TikTok, Instagram и Twitch
Недавно я начал делать XROM — Telegram-бота, который позволяет скачивать видео из популярных соцсетей прямо в Telegram.
Идея максимально простая: пользователь отправляет ссылку, выбирает качество и получает готовый файл. Без сторонних сайтов, рекламных редиректов и десятка кнопок «Download».
Сейчас XROM работает с:
- YouTube
- TikTok
- Twitch
Для YouTube можно выбрать качество видео или скачать только аудио. Бот также умеет работать с большими файлами: если видео не помещается в один файл Telegram, его можно разделить на несколько частей без повторного кодирования и потери качества.
Оказалось сложнее, чем выглядело
Скачать короткий TikTok или Reels довольно просто. Но проблемы начинаются, когда пользователь отправляет 27-минутное видео в 1440p размером несколько гигабайт.
Первоначально бот просто перекодировал такие файлы через FFmpeg, но это оказалось слишком медленно. Поэтому сейчас логика другая:
если перекодирование не требуется — видео отправляется как есть;
если файл слишком большой — пользователь может разделить его на части;
перекодирование используется только тогда, когда без него действительно не обойтись.
Отдельной головной болью стали прямые эфиры Twitch. У live-видео нет фиксированного конца, поэтому обычная логика скачивания и расчёта оставшегося времени здесь не работает. Сейчас экспериментирую с загрузкой уже записанной части эфира вместо ожидания завершения всего стрима.
Если хочется протестировать бот:
Telegram: @xrom_bot