WaveRadio: статистика каналов

WaveRadio: статистика каналов

Asterleen

Здарова. Это первый пост такого формата, но, надеюсь, не последний. Можно было сделать его в формате обычного сообщения в канале, но тут будет много картинок, так что Телеграф.

Прошло ровно двадцать дней с момента внедрения платформы WaveRadio на наших проектах, а именно, радиостанциях «Проводач», «Советская волна», «NyanServer» и канале «Witch House». Восьмого мая эти каналы были поставлены на «рельсы» централизованной системы управления, которая, к тому же, ведёт историю проигранных станциями композиций. Благодаря этой возможности можно построить статистику воспроизведённых треков: сколько раз какая композиция звучала на радио в течение двадцати дней. Прежде всего интересно нам самим: мы постоянно твердим о т.н. «исключающем рандоме», который перемешивает плейлист, воспроизводит его и только потом мешает все треки заново. Некоторые слушатели жаловались, что, мол, повторяются композиции, и ниписюна наш этот рандом не работает. Давайте проверим статистически!

Метод сбора статистики

История композций записывается в специальную таблицу с названием «track_history». Каждый раз, когда станция воспроизводит трек, она записывает его метаданные, имя файла и свой «тэг» (например, provodach, soviet, witch) в эту таблицу, отчитывается о начале воспроизведения. Извлекать данные из таблицы будем следующим запросом:

У этого запроса будем менять условия выборки, а именно: «station_tag» это, собственно, название канала, может быть одним из следующих: provodach, nyanserver, soviet, witch. Дополнительное условие (после оператора AND включительно) применимо только к «Проводачу» и «Советской волне»: у этих станций есть плейлисты, зависящие от времени суток, и их справедливо считать отдельно, так как промежутки времени разные, соответственно, в них будет попадать различное количество композиций.

Подсчёт количества проигранных композиций выполняется во второй строке. Функция count() считает количество вхождений одинаковых значений поля track_path (путь до файла, уникальное поле). На третьей строке просто формируется название трека в виде «Исполнитель - Название». Часть с inner join занимается тем же самым, а group by нужен для вывода названия аудиодорожки.

Результаты

Самое интересное — результаты! Начнём с каналов, в которых давно не было обновлений: witch и nyanserver.

Статистика канала witch
Статистика канала nyanserver

На графиках по оси X отмечены все композиции, а по оси Y — частота их появления в эфире. В среднем, у witch каждый трек проигрался по два-три раза, а у nyanserver по одному-два. Оно и неудивительно, у nyanserver в базе 3632 композиции, а у witch — 2393. Таких плейлистов хватает на 8-10 дней, поэтому за 20 дней каждый трек успел прозвучать по два-три раза. Немного смущает расчёска и «выскочившие» треки. Скорее всего это связано с неоднократными перезапусками станций, происходившими в процессе внедрения. У «Проводача» и «Советской волны» таких расчёсок нет. Посмотрим? Посмотрим.

Для начала «Проводач».

«Проводач», дневной плейлист
«Проводач», ночной плейлист

Тут тоже есть лёгкая «расчёска», но она уже укладывается в пределы статистической погрешности, к тому же, сама «расчёска» распределена равномерно, без явных провалов и лидирующих пиков.

Теперь «Советская волна». У неё аж четыре плейлиста: день, ночь, вечер и особняком стоят «песни», подмешиваемые в дневной плейлист. Они подмешиваются в отношении 1:10 (одна песня на десять обычных треков), но здесь мы рассматриваем этот плейлист как отдельный. Погнали.

«Советская волна»: день
«Советская волна»: вечер
«Советская волна»: ночь
«Советская волна»: песни

Ба, что же это творится, братцы? Посмотрите какие провалы у плейлиста «вечер»! У «песен» они поменьше, а у «дня» и «ночи» вообще в единичных случаях. «Ха! Вот ты и попался, никакой рандом не работает!» — скажете вы. И будете в корне не правы. А знаете почему? Потому что над «Советской волной» работает целая команда клёвых ребят, некоторые из которых постоянно обновляют библиотеку радиостанции, добавляя новые композиции и удаляя приевшиеся. Поэтому там и провалы: некоторые треки были добавлены уже после введения модуля истории композиций.

В общем и целом

Стабильность и равномерность распределения частот проигрывания треков на «Проводаче» показывает, что исключающий рандом действительно работает. Для каналов «Нянсервера» и вещающего вичхаус статистики собрано слишком мало, а «Советская волна» слишком часто обновляется. Если вдруг складывается ощущение, что одна и та же композиция играет слишком часто, причиной этому может послужить два фактора — либо человек сам постоянно замечает этот трек, либо он попал на «стык», момент, когда сервер закончил воспроизведение плейлиста и перестроил его, и так вышло, что трек, раньше бывший в конце текущего плейлиста, стал в начало следующего.

Спайсибо за внимание. И за то, что дочитал эту нудятину до этого места. Ты клёвый.

Report Page