Telegram-бот для скачивания аудио из YouTube

Всем привет! Хотел бы поделиться с вами сегодня еще одним из моих недавних pet-проектов. Я сделал Telegram-бота, который конвертирует YouTube видео в аудио. Делал я его чисто из-за любопытства (@user6010773, привет!). Идея проекта подпадает под главный критерий для моих пет-проектов - реализация не сложная и посильная для одного человека за относительно короткое время.

Немного про детали реализации

В начале делания такого бота кажется, что механизм работы будет следующий - получил ссылку от клиента, скачал видео, извлёк аудиодорожку, отправил файл. Однако, если множество пользователей начнут одновременно дудосить запросами на скачивание, это может привести к длительной задержке и нагрузке на сервер.

Поэтому нужно воспользоваться более хитрым решением, которое позволит обрабатывать большое количество запросов, не нагружая при этом сервер. Я использовал модель основанную на очереди и воркерах, которая представлена на картинке.

Telegram-бот для скачивания аудио из YouTube Telegram бот, YouTube, Проект, Программирование, Telegram, Чат-бот, Бот, IT

Нужно создать очередь, в которую попадает каждая отправленная пользователем ссылка на видео. Эта очередь разбирается воркерами - отдельными фоновыми процессами, которые берут ссылку из очереди, скачивают файл, сохраняют в кэш и отправляют его пользователю.

Число воркеров ограничено, чтобы предотвратить перегрузку сервера. Таким образом, даже при большом количестве запросов, система будет работать стабильно, обрабатывая ссылки по мере освобождения воркеров.

Чтобы избежать повторного скачивания одного и того же видео, я добавил кэш. Интересный момент заключается в том, что файлы кешируются в Телеграм. Да, я использую Телеграм канал в качестве кэша, что позволяет мне не хранить файлы на моем сервере. Если пользователь пришлет ссылку на ранее загруженный файл, то бот перешлет ему сообщение из канала.

Вместо выводов

Бота я написал за пару вечеров. Работает он около двух месяцев, за это время ему написало чуть более 100 человек (видимо находят бота через поиск) и было скачано почти 1000 видео. Если кому-то интересно, то могу открыть доступ на репозиторий с кодом (проект написан на Scala).

Ссылки

Никаких планов на монетизацию бота у меня нет, но если кому то интересно, вот ссылка на него - @YoutubeAudioDownloadFreeBot.

Еще я завел телеграм канал - @ainur_khakimov заходите, там я буду делиться своими проектами и наблюдениями.

ИТ-проекты пикабушников

346 постов3.2K подписчиков

Добавить пост

Правила сообщества

0. Запрещены посты вне тематики сообщества

1. Уважайте труд людей, пишите только конструктивную критику,

2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц