- Опубликовано
Telegram-бот: конвертация YouTube в аудио с очередью
- Автор
- Имя
- Айнур пишет ... 📝
- Telegram
- Айнур пишет ... 📝257 подписчиков28 постовЖиву в Екатеринбурге, занимаюсь бэкенд разработкой. Тут делюсь опытом, мыслями и заметками из прочитанных книг. Написать мне в личку - @ainr_c Мой блог - https://ainur-khakimov.ru
Хотел бы поделиться с вами еще одним из моих недавних pet-проектов. Я сделал Telegram-бота, который конвертирует YouTube видео в аудио - @YoutubeAudioDownloadFreeBot. Делал я его чисто из-за любопытства. Идея проекта подпадает под главный критерий для моих пет-проектов - реализация не сложная и посильная для одного человека за относительно короткое время.
В начале делания такого бота кажется, что механизм работы будет следующий - получил ссылку от клиента, скачал видео, извлёк аудиодорожку, отправил файл. Однако если множество пользователей начнут одновременно дудосить запросами на скачивание, это может привести к длительной задержке и нагрузке на сервер.
Поэтому нужно воспользоваться более хитрым решением, которое могло бы обрабатывать большое количество запросов, не нагружая сервер. Я использовал модель основанную на очереди и воркерах, которая представлена на картинке.
Нужно создать очередь, в которую попадает каждая отправленная пользователем ссылка на видео. Эта очередь разбирается воркерами - отдельными фоновыми процессами, которые берут ссылку из очереди, скачивают файл, сохраняют в кэш и отправляют его пользователю.
Число воркеров ограничено, чтобы предотвратить перегрузку сервера. Таким образом, даже при большом количестве запросов, система будет работать стабильно, обрабатывая ссылки по мере освобождения воркеров.
Чтобы избежать повторного скачивания одного и того же видео, я добавил кэш. Интересный момент заключается в том, что файлы кэшируются в Телеграм. Да, я использую Телеграм канал @youtube_audios_free в качестве кэша, что позволяет мне не хранить файлы на моем сервере. Если пользователь пришлет ссылку на ранее загруженный файл, то бот перешлет ему сообщение из канала.
Если кому то интересно, то вот ссылка на бота - @YoutubeAudioDownloadFreeBot
Предыдущий пост
- Опубликовано
Бот с командой статистики скачиваний
Из подборки #make
- Опубликовано
Очень хорошее, на мой взгляд, видео про...
- Опубликовано
FFMPEG
- Опубликовано
Stats 📈 Users 131, Completed 913, New 1
- Опубликовано
Бот с командой статистики скачиваний
- Опубликовано
Форматирование кода в Telegram появилось?
- Опубликовано
https://a-khakimov.github.io/posts/make/
Свежие посты
- Опубликовано
Классические абстракции используемые в ФП
- Опубликовано
Привычка решать задачи LeetCode ежедневно
- Опубликовано
Начал читать PostgreSQL 16 изнутри
- Опубликовано
Как стать сеньором
- Опубликовано
Краткое содержание книги «Цель» Голдратта
- Опубликовано
Лонгрид про Scalafix
- Опубликовано
Последовательность выполнения задач
- Опубликовано








