Содержание
Плейлисты описываются в файле playlists.yaml, который находится в корне медиатеки (обычно называется /var/lib/ardj/music/playlists.yaml, но
имя может быть изменено с помощью конфигурационного файла). Описываются они в таком виде:
- name: jingles delay: 30 - name: music weight: 1.0-100
Плейлисты обрабатываются сверху вних. Описанная конфигурация означает, что раз в 30 минут надо играть композицию с меткой "jingles", а всё остальное время — композиции с меткой "music" и весом ≥1.0.
Возможные параметры плейлистов
nameНазвание плейлиста. По умолчанию используется в качестве метки, которую должны иметь композиции, для
попадания в этот плейлист (метки можно также указать парамером labels).
weightГраницы веса композиций, указываются в виде диапазона: min-max (включительно). Композиции с весом, выходящим за указанные пределы, из плейлиста исключаются. Если значение не указано — в плейлист попадают все композиции.
delayЗадержка для плейлиста. Указывает время в минутах, на которое плейлист отключается после проигрывания композиции из него. Значение 30 означает, что композиции из этого плейлиста будут звучать не чаще раза в полчаса.
Плейлист блокируется не только при выборе композиции непосредственно из него, но и при проигрывании вообще любой композиции, которая удовлетворяет условиям плейлиста.
track_delayЗадержка для композиций. Указывает время в минутах, на которое композиция исключается из плейлиста при проигрывании. Фактически это означает, что композиция должна была быть в предыдущий раз проиграна не ранее чем указанное количество минут назад. Этот параметр используется для предотвращения повторов в специализированных коротких плейлистах, вроде десятки лучших песен.
historyКоличество композиций, в течение которых исполнитель не должен повторяться (по умолчанию 5). Композиции, принадлежащие указанному количеству последних звучавших исполнителей, из плейлиста исключаются. При этом следует иметь в виду, что проверка ведётся не только по текущему плейлисту, но по всей истории, то есть в указанное количество будут включены и джинглы, и всё, что звучало.
repeatМаксимальное количество проигрываний для композиции. Композиции, проигранные более указанного количества раз, из плейлиста исключаются. Этот параметр может использоваться, например, для организации усиленной ротации новых песен.
hoursЧасы активности плейлиста. Указываются в виде списка значений или диапазонов, например:
hours: [8, 12-20, 22]
В такой конфигурации плейлист будет активен с 8 до 0 часов утра, с 12 дня до 8 вечера и с 10 до 11 вечера.
daysДни активности плейлиста. Указываются в виде списка значений или диапазонов, например:
days: [1-3, 6]
В такой конфигурации плейлист будет активен в понедельник, вторник, среду и субботу.
labelsСписок меток для выбора композиций. Метки с префиксом "-" исключают композицию, метки с префиксом "+" обязательны, из меток без префикса должна присутствовать хотя бы одна. Пример:
labels: [rock, punk, +female, -russian]
В такой конфигурации в плейлист попадут композиции с метками "rock" или "punk" с женским вокалом не на русском языке.
При использовании этого параметра параметр name в качестве метки не
используется.
sticky_labelsСписок меток, которые должны «прилипать» к плейлисту при обнаружении. Если из плейлиста выбрана
композиция с однои из этих меток, она будет добавлена к значению свойства labels плейлиста
в качестве обязательной и пробудет там до смены плейлиста.
Пример конфигурации:
labels: [music] sticky_labels: [rock, jazz, 8bit]
В такой конфигурации если из плейлиста будет выбрана композиция с меткой «rock», то свойство
labels примет значение «[music, +rock]» и до смены плейлиста будут звучать только
композиции с этими двумя метками.
Эта функция позволяет разбивать плейлист на случайные блоки из похожих песен, без резких перепадов (не забудьте регулярно встревающий плейлист с джинглами, иначе липкая метка залипнет до перезапуска сервера).
programИмя программы. Этим свойством отмечаются ключевые плейлисты (исключая джинглы и прочие сопутствующие) для того, чтобы отслеживать переключение между программами. При выборе композиции из плейлиста с таким свойством его значение сравнивается с предыдущим, если они отличаются — запускается внешняя программа (обычно используется для отражения состояния на сайте), отправляется сообщение в чат.
prerollСписок меток, по которым подбирается подмотка для композиций из текущего плейлиста. Композиции из текущего плейлиста будут предваряться случайной композицей с одной из указанных меток. Этот параметр обычно используется для добавления анонсов, например, о том, что сейчас прозвучит подкаст.
strategyОпределяет алгоритм выбора случайной композиции. Значение «fresh» включает алгоритм, не учитывающий голоса слушателей: он выбирает случайную из пяти композиций с наименьшим количеством проигрываний. Алгоритм «oldest» всегда выбирает композицию, не звучавшую дольше всего (сортирует по дате последнего проигрывания).