Как я год пилил Telegram-бота, который вырос из «скачивалки» в медиа-ассистента — NurixMediaBot
Сам бот: https://t.me/NurixMediaBot
Привет. Хочу поделиться опытом — как из желания сохранить одно видео у меня вырос целый Telegram-бот, и обо что я по дороге спотыкался. Будет полезно тем, кто сам пилит ботов, и просто любопытно тем, кто устал от скачивалок. Сразу скажу честно: бот мой, ссылку дам ниже, так что можете считать это и рассказом, и немножко рекламой.
С чего всё началось
Банально. Скинули рилс, захотел сохранить — открыл сайт-скачивалку. Три кнопки «Скачать»: первая ведёт на казино, вторая пугает, что мой айфон заражён (у меня андроид, но им виднее), третья наконец качает — 240p и с чужим водяным знаком поперёк кадра.
Ну, думаю, есть же боты в телеге. Захожу в первый — «подпишись на 5 каналов, чтобы продолжить». Подписался, жму «Проверить», а там ещё три. И тут понимаешь, что ты не пользователь, а трафик, которым набивают чужие каналы. В тот вечер я и решил: напишу нормального. Кинул ссылку — получил файл, и всё. «Пару вечеров». Ага, год.
Что бот умеет сейчас
По сути он давно перестал быть просто скачивалкой:
- качает видео/аудио/фото с 200+ платформ (YouTube, TikTok, Instagram, VK и т.д.)
- вытаскивает музыку в MP3 или отдельную дорожку из любого видео
- узнаёт песню из присланного видео или голосового — как Shazam
- ищет трек, если ты его напоёшь или пришлёшь строчку из текста
- сохраняет твои треки в плейлист
- ищет топ музыки по регионам и подбирает похожие треки
- режет, делает кружки, ускоряет, вжигает субтитры прямо в видео и еще 20+ эффектов как для аудио так и для видео.
Ссылка, если хочется просто потыкать: NurixMediaBot. Без регистрации и без обязательной подписки на десяток каналов ради кнопки «скачать» — это для меня было принципиально.
Что оказалось сложным (и почему «пара вечеров» превратилась в год)
Пара вещей, которые сожрали больше всего времени — может, кому пригодится:
- YouTube. Он реально не любит, когда его качают. Анонимные запросы через день упираются в «подтвердите, что вы не робот». Значит, нужны куки живых аккаунтов, прокси и ротация. У меня в итоге под это отдельный сервис — он держит пул аккаунтов, «прогревает» их и раздаёт куки основному боту. Без него всё умирало за сутки.
- Лимит 50 МБ. Telegram-ботам API отдаёт файлы максимум по 50 МБ. А люди хотят часовые видео. Поэтому пришлось поднимать свой локальный Bot API сервер и заливать большие файлы через отдельную user-сессию. Вот это удивило сильнее, чем весь остальной ад со скачиванием.
- Метаданные. Скачать mp3 легко. А вот сделать так, чтобы в плеере это был трек с названием, артистом и обложкой, а не «audio_3.mp3» — отдельная возня из нескольких источников с обогащением после скачивания.
- Переезд. Бота изначально звали длинно и уныло, он путался с сотней таких же. Решил переименовать — а Telegram говорит: нельзя, только новый бот и переезд. А это значит, весь кэш скачанных файлов превращается в тыкву, и новый бот даже не может написать людям первым. Отдельная драма, тянет на свой пост.
P.S. Если сами делаете что-то похожее — спрашивайте про куки-сервис или про обход лимита в комментах, распишу подробнее. А если просто нужен бот — пробуйте и пишите, что бесит: критика полезнее плюсиков, чиню по фидбеку.