Формат файлов *.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 -- значения параметра.