Ввиду череды простудных заболеваний в нашей команде, пришлось пропустить выпуск мода для GTA SA и вместо него анонсировать генераторы плейлистов.
С помощью генераторов плейлистов мы хотим реализовать две вещи:
1. Сделать прослушивание музыки с веборамы максимально удобным для конечного пользователя (в любом проигрывателе, на любой ОС).
2. Предоставить возможность интегрировать вебораму в медиа-устройства и ПО.
Плейлисты веборамы — это списки песен, собраные по набору параметров, переданных генератору. Транспортом является протокол HTTP, а это значит, что генератор — это CGI-скрипт, принимающий параметры согласно правилам HTTP, то есть через GET или POST.
С помощью генераторов плейлистов мы хотим реализовать две вещи:
1. Сделать прослушивание музыки с веборамы максимально удобным для конечного пользователя (в любом проигрывателе, на любой ОС).
2. Предоставить возможность интегрировать вебораму в медиа-устройства и ПО.
Плейлисты веборамы — это списки песен, собраные по набору параметров, переданных генератору. Транспортом является протокол HTTP, а это значит, что генератор — это CGI-скрипт, принимающий параметры согласно правилам HTTP, то есть через GET или POST.
Подробнее о параметрах:
- id – идентификатор контента, для которого идёт выборка данных. 0 — означает что требуется сгенерировать случайный плейлист — поэтому применим только с type=playlist. При использовании с type=audio — хеш песни, для type=playlist и type=album айди.
- type – тип генерируемого контента.
Может принимать 3 значения:
'audio' – выборка плейлиста с единственной песней, идентификатор которой переден в параметре id
'album' – выборка плейлиста из песен определённого альбома, идентификатор которого переден в параметре id
'playlist' — выборка плейлиста из песен определённого плейлиста пользователя, идентификатор которойго переден в параметре id. Если id = 0 — происходит случайная выборка песен, удавлетворяющих переденным параметрам (см. ниже) - action – тип добавления контента к плейлисту. Служебный необязательный параметр. С его помощью можно указывать действия, которые должен произвести ваш обработчик с полученными данными. Например, для того, чтобы в плеер на сайте добавить несколько записей, обработчик клика на странице отсылает запрос с action=add.
- mood – настроение пользователя. Представляет собой целое число от 0 до 8, где
0 — вялое-веселое
1 — веселое
2 — активное-веселое
3 — вялое
4 — нейтральное
5 — активное
6 — вялое грустное
7 — грустное
8 – грустное-активное настроение
Если значение переменной настроения пользователя выходит за пределы допустимого (меньше нуля или больше 8) или параметр не задан, то настроение по умолчанию равно 4. - filter – фильтр для генерируемого контента. Строка, в которой все пары значений (название_параметра: значение) разделены точкой с запятой, а в самой паре название параметра отделено от значения двоеточием.
Могут быть следующие названия
'userId' — идентификатор пользователя
'genreId' — идентификатор жанра
Таблица жанров:
Электронная — 24
Русская попса — 132
Альтернатива — 32
Саундтрек — 129
Джаз — 42
Русский рок — 131
Металл — 47
Ретро — 130
Поп — 51
Панк — 54
Ритм энд блюз — 56
Рэп — 57
Рэгги — 59
Рок — 61
Классическая — 128
Шансон — 133
Фолк — 134
'sort' — критерий, по которому будет выбираться контент
1) favourite — любимая музыка пользователя
2) friends — его друзей
3) uploaded — им загруженная
4) used_count и used_last — та, что слушал
5) all — вся музыка пользователя
По умолчанию устанавливается значение `all`
Параметр sort может передаваться только с параметром userId - coverSize – размер кавера альбома.
- limit – ограничение на длину возвращаемого результата — если не задан или 0: модифицируется в 10 за исключением случаев, когда установлен фильтр по userId: в этом случай переданный 0 означет необходимость вернуть все записи результата.<./li>
offset – указывает, начиная с какой песни необходимо вернуть limit записей
Примеры GET-запросов:
beta.weborama.ru/modules/player/index_xspf.php?id=0&type=playlist&act=add&mood=6&limit=50
По этой ссылке генерируется новый плейлист, состоящий из 50 композиций, которые имеют шестое настроение, то есть вялое, грустное.
Если требуется сгенерировать и воспроизвести некоторый плейлист, то будут обязательными лишь 2 параметра: идентификатор id=0 и тип контента type=playlist. Все остальные параметры (sort, mood, limit,action, offset и coverSize указывать необязательно)
www.weborama.ru/modules/player/index_xspf.php?id=0&type=playlist&act=new&mood=1&limit=11&sort=friends&offset=3
По этой ссылке генерируется плейлист, с 11 композициями, соответствующими весёлому настроению. Начинает проигрываться он с третьей песни, а все композиции выбираются из тех композиций, которые нравятся друзьям пользователя.
Если требуется воспроизвести конкретный плейлист с начала, то надо передать 2 параметра: идентификатор плейлиста id и тип контента type=playlist
www.weborama.ru/modules/player/index_xspf.php?id=18260&type=playlist
По этой ссылке начнёт воспроизводиться плейлист с идентификатором 18260
Если требуется воспроизвести конкретный плейлист с определённого номера композиции, то надо передать 3 параметра: идентификатор плейлиста id и тип контента type=playlist и значение смещения offset
www.weborama.ru/modules/player/index_xspf.php?id=2313&type=playlist&offset=3
По этой ссылке начнёт воспроизводиться плейлист с идентификатором 2313 c третьей по счёту песни
Если требуется воспроизвести конкретный альбом c начала, то надо передать всего лишь 2 параметра: идентификатор альбома id и тип контента type=album.
www.weborama.ru/modules/player/index_xspf.php?id=8060&type=album
По этой ссылке начнёт воспроизводиться альбом с идентификатором 8060
Если требуется воспроизвести конкретный альбом не с начала, а с определённого номера песни, то надо передать 3 параметра: идентификатор альбома id и тип контента type=album и значение смещения offset.
www.weborama.ru/modules/player/index_xspf.php?id=8060&type=album&offset=3
По этой ссылке начнёт воспроизводиться альбом с идентификатором 8060 c третьей по счёту песни
Если требуется воспроизвести конкретную песню, то надо передать всего лишь 2 параметра: идентификатор песни id и тип контента type=audio
www.weborama.ru/modules/player/index_xspf.php?id=1c2afffc1fbf528f7993a6a3090af0eb&type=audio
По этой ссылке начнёт воспроизводиться песня с идентификатором 1c2afffc1fbf528f7993a6a3090af0eb
На данный момент мы экспортируем четыре типа плейлистов:
- M3U — www.weborama.ru/modules/player/index_m3u.php
- PLS — www.weborama.ru/modules/player/index_pls.php
- ASF — www.weborama.ru/modules/player/index_asf.php
- XSPF — www.weborama.ru/modules/player/index_xspf.php
Пример использования — наш генератор плейлистов для мобильных устройств.
Автор: necrosis