Формат файлов *.m3u
(*.m3u8
)¶
Формат применяется для составления мультимедиа плейлистов, как оффлайн, так и онлайн.
Разница между m3u и m3u8 уже давно отсутствует, но исторически так сложилось, то m3u8 должен был быть только в формате UTF-8.
Директивы начинаются с новой строки и символа #
. У каждой директивы могут (не) быть атрибуты, которые следуют в одну строку.
После директив с новой строки указывается ссылка на канал (или путь к файлу).
В свою чередь, по этой ссылке может быть: * либо текстовое представление контента в формате m3u/m3u8/XMLTV/MPD с описанием непосредственно участки трансляции; * либо непосредственно сама потоковая трансляция mp4 или т. п.
Рассмотрим на выдуманном примере плейлиста IPTV:
#EXTM3U url-tvg="https://iptvx.one/EPG" catchup="append" catchup-days="3" catchup-source="?offset=-${offset}&utcstart=${timestamp}"
#EXTINF:-1 tvg-id="ntv" tvg-logo="http://epg.it999.ru/img2/2001.png",НТВ HD
#EXTGRP:🇷🇺 Эфирные
http://example.com/play-ntv.m3u
#EXTINF:-1 tvg-logo="http://tvoetv.space/tvoetv.png" tvg-id="tvoetv",Твоё ТВ HD v8 с VPN
http://example.com/play-tvoetv.m3u
#EXTINF:0 tvg-name="BBC" audio-track="eng" tvg-logo="http://mylogos.domain/BBC.png", BBC World
http://example.com/play-bbc.m3u
#EXTINF:-1 tvg-id="5TV.am" tvg-country="AM" tvg-language="Armenian" tvg-logo="https://i.imgur.com/yigw9dr.png" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148" group-title="General",5-րդ ալիք (480p)
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
#EXTVLCOPT:http-caching=1200
http://example.com/play-am.m3u8
Директива #EXTM3U
¶
Заголовок файла (обязателен).
Атрибут url-tvg
(он же x-tvg-url
)¶
Ссылка программу передач в формате *.xml
или *.xml.gz
.
Атрибуты catchup*
¶
Читай здесь: Архив телепрограмм (SS IPTV)
Директива #EXTGRP
¶
Название группы, к которой относится контент (звуковая дорожка или канал).
Указывается в формате #EXTGRP:XXX
, где: XXX
-- название группы.
Директива #EXTINF
¶
Описывает контент (звуковую дорожку или канал).
Указывается в формате #EXTINF:XXX YYY,ZZZ
, где: * XXX
-- длительность в секундах (обязательно, но может быть -1
или 0
); * YYY
-- атрибуты (см. ниже); * ZZZ
-- название контента;
Атрибут tvg-shift
¶
Cмещение телепрограммы в часах относительно указанного в программе.
Атрибуты tvg-id
и tvg-name
¶
Идентификатор телепрограммы канала. По нему телепрограмма привязывается к трансляции с учётом смещения времени.
Атрибут tvg-logo
¶
Ссылка на логотип канала.
Атрибут tvg-country
¶
Код Alpha-2 страны вещания согласно ISO 3166-1 или ОКСМ.
Атрибут tvg-language
¶
Название языка телепередачи согласно ISO 639-2.
Атрибут group-title
¶
Название группы. По функционалу идентичен директиве #EXTGRP
.
Атрибут user-agent
¶
Значение заголовка User-Agent
для обращения к контенту по http.
Атрибут audio-track
¶
Языковой код (ISO 639-2) аудио дорожки канала, например: "eng,rus".
Допускается указание нескольких аудио дорожек через запятую: "rus,ukr,eng".
Дорожкой по умолчанию устанавливается первая указанная в списке.
Атрибут aspect-ratio
¶
Определяет пропорции экрана (может быть недоступно для некоторых моделей телевизоров).
Допустимые значения: 16:9, 3:2, 4:3, 1,85:1, 2,39:1 (наиболее распространенное значение для фильмов)
Директива #EXTVLCOPT
¶
Специфична для VLC Player. Директив может быть множество для одной дорожки (канала).
Указывается в формате #EXTVLCOPT:XXX
или #EXTVLCOPT--XXX=YYY
, где: * XXX
-- параметр командной строки VLC Player (полный список); * YYY
-- значения параметра.