Я возненавидел комментарии и сделал Shazam для Tik-Tok
Все любят слушать музыку. И нет повести печальнее той, где я не могу найти понравившийся трек. А где море попсовых ремиксов, которые ты ищешь по запомнившейся строчке? В тик-токе.
Однажды мне окончательно надоело листать комментарии под постом в поиске названия песни, и я решил избавиться от этой проблемы, сделав Shazam-бота, для которого требуется только ссылка на видео.
От автора
Это будет короткий рассказ следующего содержания:
- Как мы пришли к идее такого бота
- Как мы его сделали
- Почему нам нравится :)
Здесь нет подробных рецептов и анализов. Мы придумали и создали - не так много для длинного рассказа, правда?
P.S. В конце обязательно оставлю ссылку на результат
Идея
У каждого есть вирусная идея, но не каждый хоть раз пытался ее реализовать.
В свое время десятки идей, которые казались перспективными, были заброшены по причине переоценки или выгорания. Хорошую привычку мне когда-то подсказали: молниеносно записывать все идеи, которые возникают в голове, в отдельный список.
Я собрал около ~20-30 пунктов за пару лет, а реализованные можно пересчитать на пальцах одной руки.
Далеко не все проекты, кажущиеся крутыми сегодня, будут наполнять вас энтузиазмом завтра.
“Личный Shazam” не был взрывным в моей голове - но он решал настоящую проблему, сохраняя ссылки на тиктоки в переписке, и отправляя мне названия треков из них. Круто? Не знаю, но названия песен теперь у меня есть.
Как это работает?
- Увидел видео с прикольной песней, но она не подписана в аудиоряде тиктока
- “Поделиться в Telegram” -> Отправить “SongHunter”
- Через пару секунд бот присылает название трека из видео. Profit!
С момента релиза бота я забыл как выглядит комментарий “киньте трек”.
Разработка
Не самая трудный проект, если вы когда-либо делали чат-ботов для мессенджеров. Этот делался для Telegram.
Основная проблема была в том, что у тиктока достаточно скрытный апи, и просто так нужный аудиоряд не достанешь.
Решением стала загрузка видео на сервер, извлечение аудиоряда, а после - использование “обертки” для Shazam API на Python. Сам я больше по Node.js, но благо мой товарищ - заядлый питонист, и поиск пакета без ограничения на количество использования расшифровки музыки не занял много времени.
Python-обертка берет то, что называется "fingerprint" аудиозаписи, и использует внутренний метод - основанный на Shazam API, - передавая туда этот самый "fingerprint". Путем сравнения определяются наиболее схожие аудиозаписи из базы и получается результат.
Потом мы собрали это все на дроплете в Digital Ocean и смахнули капельку пота - Telegram-бот был готов.
Результат
Сейчас, заходя “полистать” в Tik-Tok, у меня не возникает желания открыть комменты при первом понравившемся треке - я отправляю его SongHunter’y.
Иногда, конечно, барахлит на ремиксах от локальных диджеев, на которые заботливые контент-мейкеры поверх наложат “slow” + “reverb” + %фильтр_нейм%, но в абсолютном большинстве случаев - жизнь стала легче.
Ссылка на бота: