Инструкция по формату M3U
Данный раздел описывает общие аспекты формата Extended M3U, не являющиеся уникальными для нашего приложения. Также вы можете ознакомиться с дополнительными параметрами, введенными для расширения возможностей SS IPTV и используемыми только им.

Плей-лист в формате M3U - это обычный текстовый документ в кодировке UTF-8. Его можно редактировать, например, используя приложение Блокнот из стандартного набора утилит Windows. Любой файл M3U начинается с первой строки в которой содержится надпись #EXTM3U. Далее, файл представляет собой набор парных строк, первая из которых всегда начинается с #EXTINF:, а вторая представляет собой ссылку на контент.

Пример файла в формате M3U:

#EXTM3U
#EXTINF:0 tvg-name="BBC" audio-track="eng" tvg-logo="http://mylogos.domain/BBC.png", BBC World
http://server.name/stream/to/video2
#EXTINF:0 tvg-name="CNN" audio-track="jap" group-title="Fav", CNN International
http://server.name/stream/to/video2
#EXTINF:0, Arirang
http://server.name/stream/to/video3

Как видно из примера файл представляет собой набор парных строк обозначающих обозначающих источник потока или сигнала с дополняющим описанием. В примере приведено 3 канала: BBC World, CNN International и Arirang. Первая строка из парных всегда начинается с #EXTINF:(длительность) (атрибуты), (название канала). Обязательные параметры: длительность и название канала. Причем, длительность всегда должна быть равна нулю для Live TV.

Атрибуты являются необязательными параметрами, вот список атрибутов которые используются во время загрузки плей-листа:

  • tvg-shift - смещение во времени телепрограммы
  • tvg-name - идентификатор телепрограммы канала
  • tvg-logo - логотип канала
  • audio-track - языковой код (ISO 639-2) аудио дорожки канала, например: eng, rus. Допускается указание нескольких аудио дорожек через запятую: "rus, ukr, eng". Дорожкой по умолчанию устанавливается первая указанная в списке.
  • aspect-ratio - определяет пропорции экрана (может быть недоступно для некоторых моделей телевизоров). Допустимые значения: 16:9, 3:2, 4:3, 1,85:1, 2,39:1 (наиболее распространенное значение для фильмов)

Внимание! Значение атрибута всегда должно указываться в двойных кавычках, например: tvg-shift="3".
В данном разделе описываются директивы и атрибуты, применимые только в SS IPTV, сторонние приложения могут интерпретировать эти параметры некорректно

В SS IPTV помимо традиционных директив и атрибутов формата Extended M3U предусмотрены дополнительные. Использование описанных здесь атрибутов позволяет очень гибко настраивать внешний вид плейлистов на главном экране, манипулируя отображением отдельных тайлов.

Директивы формата M3U всегда начинаются с новой строки и имеют первым символом – решетку “#”, атрибуты вписываются в строку с директивой (как правило #EXTINF) и представлены в виде пары атрибут = "значение". Значение атрибута всегда должно быть заключено в двойные кавычки

 

Дополнительные директивы:

#EXTBG определяет фон тайла, относящегося к описываемому элементу плейлиста. После директивы может быть указана ссылка на изображение, либо цвет в формате #rrggbb или rgba

#EXTSIZE определяет размер тайла, относящегося к описываемому элементу плейлиста. Возможные значения: small, medium, big

#EXTCTRL после директивы может быть указан url по которому будет осуществлен запрос при нажатии на тайл, относящийся к описываемому элементу. Запрос отправляется до загрузки контента. Данная функция может быть полезна владельцам спутниковых ресиверов, при ее использовании приложение будет отправлять ресиверу команду на переключение канала. 

 

Дополнительные атрибуты директивы #EXTINF:

description – определяет описание, отображаемое на тайлах размера medium и big

content-type – позволяет указать приложению тип описываемого контента. Возможные варианты значений: stream, video, playlist. В большинстве случаев приложение автоматически определяет тип контента и в использовании данного параметра нет необходимости.

 

Дополнительные атрибуты директивы #EXTM3U

Директива #EXTM3U в качестве атрибутов может содержать атрибуты description, size и background. В этом случае значения, заданные для перечисленных атрибутов применяются для всех элементов плейлиста, если они не переопределены в директивах #EXTINF


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

#EXTM3U
#EXTINF:-1, MTV Dance
#EXTSIZE: Big
#EXTBG: #11609e
http://example.com/stream1
#EXTINF:-1,MTV Hits
#EXTSIZE: Medium
#EXTBG: #046f55
http://example.com/stream1
#EXTINF:-1,Россия 24
#EXTSIZE: Medium
#EXTBG: #046f55
dtv://cabel:11/dvb/8
#EXTINF:-1,Первый канал
#EXTSIZE: Medium
#EXTBG: #046f55
dtv://cabel:11/dvb/2
#EXTINF:-1, MTV Live HD
#EXTSIZE: Small
http://example.com/stream3
#EXTINF:-1,MTV Rocks
#EXTSIZE: Small
http://example.com/stream4

 Пример плейлиста