Сказ о том, как тегбот ищет музыку

18 июня 2012, 20:33

Вот и закончился самый сложный и долгий этап работы над ботом — это очень важная веха в работе над лампачём. И в связи с этим я хочу рассказать некоторые аспекты работы бота.

Главная задача, которая была успешно решена — это, конечно, разнообразие музыки. Раньше, основным источником новых песен для бота являлся last.fm. Там очень много музыки, а также понятный и простой АПИ. Казалось, всё должно быть отлично, но, как обычно, действительность не соответствовала надеждам. Разнообразные методы поиска похожих треков, поиск по жанрам, исполнителям — всё это работало с популярной музыкой. Чтобы найти более редкие, нетрендовые треки, приходилось, соответственно, делать поиск похожего по другим редким и нетрендовым трекам. А получить список наименее релевантных песен по жанру оказалось вообще трудной задачей. Поэтому, чтобы разбавить музыку, приходилось что-то дополнительно выискивать. Что приводит нас к следующей задаче —

Автономность. Бот должен уметь сам искать музыку, подбирать жанры. И если внезапно выходит новый альбом, в котором песня может быть потенциально интересна слушателям, то она должна скоро оказаться в индексе. Без участия человека, само собой.

Напрашивается резонный вопрос: «Где брать всё это?». Ведь чтобы собрать хорошую коллекцию музыки, без человека не обойтись. Всё гениальное, как оказалось, просто! В интернете есть огромная куча хороших тематических радиостанций, на которых хорошо натренированные люди, непосредственно разбирающиеся в конкретном жанре, собирают отличные плейлисты.

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

Итак, FmCheckerd — демон, который раз в минуту опрашивает 57 радиостанций на играющие там треки. Все радиостанции аккуратно разделены по жанрам, поэтому треки лежат не кучей, а в соответствующих жанру виртуальных плейлистах. Плейлисты представляют собой sqlite3 базу данных, в которой удобно убивать дубликаты, а также методом стека держать строго определённое число записей.

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

Перед попаданием в основной плейлист, песня всё же проходит фильтрацию. Она попадает в эфир, если её устоявшийся рейтинг более 25%, подходит по тематике, и соответствует нескольким внутренним фильтрам (ОЛОЛОЦЕНЗУРА). Если песня попадает в эфир впервые, то она регистрируется в общей БД. С тех пор песня становится неотъемлемой частью радио, так как для неё ведётся подробная статистика. Пример: во время плавного перехода с одного жанра на другой, песни следующего жанра могут заминусовать, если после классики внезапно начнёт играть митол. Всё это будет учитываться для построения расписания эфирной сетки (да-да, тоже будет).

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

Уведомления в сафари       Ctrl       Артикли

6 комментариев

Лолка

Годно. Кстати раз уж ассоциативную базу вайпнул, не пора ли сделать тагботушке аккаунт на ластике со скробблингом эфира? Или слишком много ебли?

Владимир Перекладов

Умеет уже.

ДОКОЛЕ!!!!

Давай уже запиливай радио, слушаю всякую шляпу вроде нашего радио — уже весь их перертуар наизусть выучил и могу ванговать с вероятностью 73%.
Что там с регистрацией для айтюнс?

Бакабака

А я уже три месяца слушаю одни и те же семь песен. Такие дела.

Слушатель

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

Владимир Перекладов

old.lamp.fm

Слушатель

Бля, спасибо обрадовал, а зачем 2 домена и что теперь будет на ламп.фм?

Синий

Пилить будешь или все? Бобик сдох?

Ваш комментарий

адрес не будет опубликован

ХТМЛ не работает


Ctrl + Enter