mediagothbot

Как ссылка превращается в видео прямо в чате

Кидаешь боту ссылку, можно посреди обычного текста, и через несколько секунд получаешь файл, который Telegram сразу проигрывает. То же работает в любом чате через @mediagothbot, без пересылки.

  1. Ссылканаходится даже в тексте
  2. Очередьдве задачи сразу
  3. Скачиваниеyt-dlp · до 30 минут
  4. СжатиеFFmpeg · до 49 МБ
  5. Отправкаfile_id в кэш

Каждая задача получает свою временную папку и удаляет её и после успеха, и после ошибки. Видео на сервере не копятся.

01

Ссылка находится в любом тексте

Бот ищет в сообщении адрес поддерживаемого сайта и проверяет домен, поэтому посторонний адрес ему не подсунуть. Прямые эфиры не берутся, ролик должен быть не длиннее 30 минут.

02

Очередь без давки

Тяжёлых задач одновременно идёт две. У одного человека может быть только одна активная задача, а всего в очереди до десяти человек. Тот, кто кидает ссылки пачками, не займёт бота для остальных.

03

Видео подгоняется под лимит

Боты в Telegram отправляют файлы до 50 МБ. Если ролик больше, битрейт считается от его длины с запасом 12% и 128 кбит/с на звук. Кодек приводится к H.264, а служебные данные переносятся в начало файла, чтобы видео начинало играть до полной загрузки.

bps = int(49 * 8 * 1024 * 1024 * 0.88 / duration) - 128000
04

Музыка по названию

Можно написать название трека или кинуть ссылку на SoundCloud или Spotify. Поиск идёт по YouTube, а если там пусто, по SoundCloud. Обложка достаётся из файла и ставится на трек. Под каждым видео есть кнопка, которая вытащит из него звук.

05

Работает в любом чате

В любой переписке пишешь @mediagothbot и ссылку. Бот готовит файл заранее и показывает его в выдаче только готовым, без заглушки «загрузка…». Пока ты печатаешь, запрос не уходит на каждую букву. Если скачивание медленное, оно продолжается в фоне, и файл появится при следующем запросе.

06

Второй раз быстрее

Готовый файл получает file_id Telegram, и бот запоминает его. Повторная ссылка на тот же ролик отдаётся сразу, без скачивания. Настройки (качество, подписи, ссылки на автора) и история у каждого свои.

Python · aiogram 3 · yt-dlp · FFmpeg · Telethon · SQLite

Вернуться к проектам