Телеграм-бот для скачивания и прослушивания музыки (почти без цензуры)
Начну с того, что работаю я аналитиком данных, знаю SQL, немного разбираюсь в питоне, но к разработке каких-либо приложений или тг-ботов никогда отношения не имел и даже боялся лезть в эту сторону.
Но как ни крути, постоянный фон про AI на работе, в социальных сетях, среди друзей заставил меня скачать и протестить Claude. Первый запуск ни к чему не привел, я просто посмотрел, что он пишет код (на первый взгляд также как и другая нейросетка) и закрыл приложение, продолжив заниматься рабочими задачами. Но потом в один из дней на работе отключили местный интернет и я остался без доступа к своим рабочим проектам. Сидеть листать рилсы мне не хотелось, а в голове к тому времени как раз созрела идея.
Так как происходило это всё во времена активного цензурирования русских треков, мне захотелось сделать платформу для себя и друзей, где я смогу слушать русскую музыку без цензуры, а возможно и западные треки, отсутствующие на российских музыкальных площадках. Ну и вот я запускаю Клод и пишу простенький скрипт, который стучится в api deezer (музыкальный сервис) и достает оттуда треки по артисту и их 30-секундную мп3 версию (полную версию deezer не отдает из-за политики АП). В этот момент я чувствую необычайную эйфорию от того что у меня на руках рабочий «музыкальный сервис», получаю огромный импульс мотивации и осознаю, что надо делать тг бота.
Затем началась неделя бессонных ночей после работы и вот спустя время у меня появляется рабочая версия музыкального тг-бота, у которого есть и поиск песен, и поиск по автору, Шазам, поиск текстов песен, разделы с новинками и топ-чартами. Зная как многие относятся к вайбкодерам естественно могу сказать, что написание кода не было самым сложным. Самое сложное было выстроить архитектуру и продумать с каких сервисов брать музыку, текста, чарты, чтобы закрыть мои потребности.
Скачивать песни решено было с ютуба, так как там огромная база, много удаленных с площадок треков и зачастую нет цензуры. Но если использовать только ютуб, то в бота могут попасть аудио каких-то рандомных видосов, у которых названия совпали с тем, что написал пользователь в сообщения тг-бота. Поэтому нужно было сначала парсить нормальные официальные названия с музыкальных площадок.
Самое простое и быстрое решение лично для меня было использовать Яндекс, но тогда бот не находил названия и авторов большого количества зарубежных песен. Была идея подключиться к api Spotify, так как там огромная база треков как зарубежных, так и отечественных, но на протяжении недели их сайт, Spotify for developers, отказывался нормально работать после логина и начинал без остановки обновляться. Общения с нейросетями и серчинг интернета ответов не дал. Возможно это связано с отсутствием у меня премиум-аккаунта (но проверять я эту гипотезу конечно же не стал).
На этом моменте я решил использовать первый протестированный мной Deezer и Яндекс музыку друг за другом, чтобы собрать максимально полную подборку треков и авторов. Что и требовалось ожидать мой любимый альбом Travis Scott - ASTROWORLD, через такую цепочку находился и скачивался, хотя на Яндекс музыке его давно нет. Это было моей второй победой.
Ну и вот, мой бот уже работает (правда локально с моего компьютера, но это лишь дело времени), и мне остается только задеплоить его на сервер. Здесь уже рассказывать особо нечего - покупаю VPS, через мобу подгружаю туда все необходимое, ну и самого бота, и наконец-то мой бот активен 24/7, а не только когда у меня включен дома ПК. Единственной проблемой здесь оказалось то, что текста песен, которые у меня нормально находились через API Genius после развертывания бота на VPS перестали находиться, при чем вообще никакие. Как оказалось, Genius блокирует запросы с сервера через Cloudflare. Это распространённая проблема с VPS серверами. Поэтому я просто перешел с genius на другой api (если кому интересно - расскажу какой) и все заработало.
Вот такая короткая история создания первого в моей жизни «приложения», которое еще и оказалось полезным. Если кто-то еще захочет попользоваться и для кого-то бот окажется полезным, буду очень рад.
Называется он вот так @MusicOn_real_bot.
Спасибо за внимание, буду держать вас в курсе дальнейших успехов и неудач моего музыкального бота, а пока приступаю к созданию новых интересных телеграм-ботов, о которых возможно расскажу чуть позже.
