136 lines
6.6 KiB
Markdown
136 lines
6.6 KiB
Markdown
---
|
||
title: "*.m3u (*.m3u8)"
|
||
icon: material/playlist-play
|
||
tags: ["плейлисты", "каналы"]
|
||
---
|
||
|
||
# :material-playlist-play: Формат файлов `*.m3u` (`*.m3u8`)
|
||
|
||
Формат применяется для составления мультимедиа плейлистов, как оффлайн, так и онлайн.
|
||
|
||
Разница между m3u и m3u8 уже давно отсутствует, но исторически так сложилось, то m3u8 должен был быть только в формате UTF-8.
|
||
|
||
Директивы начинаются с новой строки и символа `#`.
|
||
У каждой директивы могут (не) быть атрибуты, которые следуют в одну строку.
|
||
|
||
После директив с новой строки указывается ссылка на канал (или путь к файлу).
|
||
|
||
В свою чередь, по этой ссылке может быть:
|
||
|
||
* либо текстовое представление контента в формате m3u/m3u8/XMLTV/MPD с описанием непосредственно участки трансляции;
|
||
* либо непосредственно сама потоковая трансляция mp4 или т. п.
|
||
|
||
Рассмотрим на выдуманном примере плейлиста IPTV:
|
||
|
||
```m3u
|
||
#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` { id="EXTM3U" }
|
||
|
||
Заголовок файла (обязателен).
|
||
|
||
#### Атрибут `url-tvg` (он же `x-tvg-url`) { id="url-tvg" }
|
||
|
||
Ссылка программу передач в формате `*.xml` или `*.xml.gz`.
|
||
|
||
#### Атрибуты `catchup*` { id="catchup" }
|
||
|
||
Читай здесь: [Архив телепрограмм (SS IPTV)](https://ss-iptv.com/ru/operators/catchup)
|
||
|
||
### Директива `#EXTGRP` { id="EXTGRP" }
|
||
|
||
Название группы, к которой относится контент (звуковая дорожка или канал).
|
||
|
||
Указывается в формате `#EXTGRP:XXX`, где: `XXX` — название группы.
|
||
|
||
### Директива `#EXTINF` { id="EXTINF" }
|
||
|
||
Описывает контент (звуковую дорожку или канал).
|
||
|
||
Указывается в формате `#EXTINF:XXX YYY,ZZZ`, где:
|
||
* `XXX` — длительность в секундах (обязательно, но может быть `-1` или `0`);
|
||
* `YYY` — атрибуты (см. ниже);
|
||
* `ZZZ` — название контента;
|
||
|
||
#### Атрибут `tvg-shift` { id="tvg-shift" }
|
||
|
||
Cмещение телепрограммы в часах относительно указанного в программе.
|
||
|
||
#### Атрибуты `tvg-id` и `tvg-name` { id="tvg-id" }
|
||
<a id="tvg-name"></a>
|
||
|
||
Идентификатор телепрограммы канала.
|
||
По нему телепрограмма привязывается к трансляции с учётом смещения времени.
|
||
|
||
#### Атрибут `tvg-logo` { id="tvg-logo" }
|
||
|
||
Ссылка на логотип канала.
|
||
|
||
#### Атрибут `tvg-country` { id="tvg-country" }
|
||
|
||
Код Alpha-2 страны вещания согласно ISO 3166-1 или ОКСМ.
|
||
|
||
#### Атрибут `tvg-language` { id="tvg-language" }
|
||
|
||
Название языка телепередачи согласно ISO 639-2.
|
||
|
||
#### Атрибут `group-title` { id="group-title" }
|
||
|
||
Название группы.
|
||
По функционалу идентичен директиве `#EXTGRP`.
|
||
|
||
#### Атрибут `user-agent` { id="user-agent" }
|
||
|
||
Значение заголовка `User-Agent` для обращения к контенту по http.
|
||
|
||
#### Атрибут `audio-track` { id="audio-track" }
|
||
|
||
Языковой код (ISO 639-2) аудио дорожки канала, например: "eng,rus".
|
||
|
||
Допускается указание нескольких аудио дорожек через запятую: "rus,ukr,eng".
|
||
|
||
Дорожкой по умолчанию устанавливается первая указанная в списке.
|
||
|
||
#### Атрибут `aspect-ratio` { id="aspect-ratio" }
|
||
|
||
Определяет пропорции экрана (может быть недоступно для некоторых моделей телевизоров).
|
||
|
||
Допустимые значения: 16:9, 3:2, 4:3, 1,85:1, 2,39:1 (наиболее распространенное значение для фильмов)
|
||
|
||
### Директива `#EXTVLCOPT` { id="EXTVLCOPT" }
|
||
|
||
Специфична для VLC Player.
|
||
Директив может быть множество для одной дорожки (канала).
|
||
|
||
Указывается в формате `#EXTVLCOPT:XXX` или `#EXTVLCOPT--XXX=YYY`, где:
|
||
* `XXX` — параметр командной строки VLC Player ([полный список](https://wiki.videolan.org/VLC_command-line_help/));
|
||
* `YYY` — значения параметра.
|
||
|
||
## Дополнительные материалы
|
||
|
||
* [Инструкция по формату M3U (SS IPTV)](https://ss-iptv.com/ru/users/documents/m3u)
|
||
* [Архив телепрограмм (SS IPTV)](https://ss-iptv.com/ru/operators/catchup)
|
||
* [VLC command-line help](https://wiki.videolan.org/VLC_command-line_help/)
|
||
* [ISO 639-2 Codes for the Representation of Names of Languages](https://www.loc.gov/standards/iso639-2/php/code_list.php)
|
||
* [ISO 3166-1 Wikipedia](https://en.wikipedia.org/wiki/ISO_3166-1)
|
||
* ОКСМ:
|
||
* [normativ.kontur.ru](https://normativ.kontur.ru/document?moduleId=1&documentId=22668#h1296)
|
||
* [classifikators.ru](https://classifikators.ru/oksm)
|
||
|