Я возненавидел комментарии и сделал Shazam для Tik-Tok

Все любят слушать музыку. И нет повести печальнее той, где я не могу найти понравившийся трек. А где море попсовых ремиксов, которые ты ищешь по запомнившейся строчке? В тик-токе.

Однажды мне окончательно надоело листать комментарии под постом в поиске названия песни, и я решил избавиться от этой проблемы, сделав Shazam-бота, для которого требуется только ссылка на видео.

Бот отправляет название трека
Бот отправляет название трека

От автора

Это будет короткий рассказ следующего содержания:

  • Как мы пришли к идее такого бота
  • Как мы его сделали
  • Почему нам нравится :)

Здесь нет подробных рецептов и анализов. Мы придумали и создали - не так много для длинного рассказа, правда?

P.S. В конце обязательно оставлю ссылку на результат

Идея

У каждого есть вирусная идея, но не каждый хоть раз пытался ее реализовать.

В свое время десятки идей, которые казались перспективными, были заброшены по причине переоценки или выгорания. Хорошую привычку мне когда-то подсказали: молниеносно записывать все идеи, которые возникают в голове, в отдельный список.

Я собрал около ~20-30 пунктов за пару лет, а реализованные можно пересчитать на пальцах одной руки.

Далеко не все проекты, кажущиеся крутыми сегодня, будут наполнять вас энтузиазмом завтра.

“Личный Shazam” не был взрывным в моей голове - но он решал настоящую проблему, сохраняя ссылки на тиктоки в переписке, и отправляя мне названия треков из них. Круто? Не знаю, но названия песен теперь у меня есть.

Как это работает?

  1. Увидел видео с прикольной песней, но она не подписана в аудиоряде тиктока
  2. “Поделиться в Telegram” -> Отправить “SongHunter”
  3. Через пару секунд бот присылает название трека из видео. Profit!

С момента релиза бота я забыл как выглядит комментарий “киньте трек”.

Разработка

Не самая трудный проект, если вы когда-либо делали чат-ботов для мессенджеров. Этот делался для Telegram.

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

Решением стала загрузка видео на сервер, извлечение аудиоряда, а после - использование “обертки” для Shazam API на Python. Сам я больше по Node.js, но благо мой товарищ - заядлый питонист, и поиск пакета без ограничения на количество использования расшифровки музыки не занял много времени.

Python-обертка берет то, что называется "fingerprint" аудиозаписи, и использует внутренний метод - основанный на Shazam API, - передавая туда этот самый "fingerprint". Путем сравнения определяются наиболее схожие аудиозаписи из базы и получается результат.

Потом мы собрали это все на дроплете в Digital Ocean и смахнули капельку пота - Telegram-бот был готов.

Результат

Сейчас, заходя “полистать” в Tik-Tok, у меня не возникает желания открыть комменты при первом понравившемся треке - я отправляю его SongHunter’y.

Иногда, конечно, барахлит на ремиксах от локальных диджеев, на которые заботливые контент-мейкеры поверх наложат “slow” + “reverb” + %фильтр_нейм%, но в абсолютном большинстве случаев - жизнь стала легче.

Ссылка на бота:

24
31 комментарий