Source setup

Что такое M3U-плейлист? Формат, примеры и настройка плеера

Что такое M3U-плейлист, как работают теги EXTM3U и EXTINF из RFC 8216, в чём разница M3U и M3U8, и как плеер вроде IPTV Expert загружает такой файл.

Ноутбук и кофе на столе — техническая, «текстовая» сторона создания M3U-плейлиста
IPTV Expert 8 минута чтения

M3U-плейлист — это обычный текстовый файл. На этом определение, по сути, заканчивается. Путаница вокруг него возникает из-за того, что два разных сообщества развивают один и тот же простой формат в разных направлениях.

Инженеры стриминга используют M3U8 так, как его описывает RFC 8216: как формат плейлиста для HLS-видеостриминга. IPTV-провайдеры используют обычный M3U неформально, добавляя собственные теги для названий и логотипов каналов, которые никогда не входили ни в одну официальную спецификацию. Оба варианта использования формата корректны. Этот гайд чётко разделяет их, показывает аннотированный пример каждого и объясняет, где файл оказывается на пути к загрузке в плеер.

Ключевые выводы

  • M3U-плейлист — это текстовый список записей о потоках, начинающийся с тега #EXTM3U.
  • M3U8 конкретно означает, что файл закодирован в UTF-8, согласно разделу 4.1 RFC 8216. Это и есть практическая разница с обычным M3U.
  • Теги в стиле IPTV, такие как tvg-id и group-title, — это широко распространённое соглашение, а не часть официальной спецификации HLS.

Что такое M3U-плейлист на самом деле?

M3U-плейлист — это текстовый файл, который сообщает медиаплееру, что и в каком порядке воспроизводить, по одной записи на строку. В расширенной форме файл начинается со строки #EXTM3U — это требование определено в RFC 8216, раздел 4.3.1.1.

Перед каждой записью может стоять тег #EXTINF, который тот же RFC определяет в разделе 4.3.2.1 как #EXTINF:<длительность>,[<название>]: значение длительности, за которым следует необязательное название. Это и есть весь базовый формат: строка заголовка, а затем пары «метаданные плюс URL». Всё остальное, что вы увидите в реальном плейлисте, — это надстройка поверх этой минимальной структуры.

M3U и M3U8: в чём реальная разница?

M3U8 конкретно означает, что плейлист закодирован в UTF-8 — это требование RFC 8216 прямо указывает в разделе 4.1. Обычный M3U, напротив, не имеет фиксированного соглашения о кодировке. Он появился раньше любых формальных требований и исторически трактовался как Latin-1 или как системная кодировка по умолчанию.

M3U M3U8
Кодировка Не фиксирована (исторически Latin-1 или системная по умолчанию) UTF-8, обязательно по RFC 8216 §4.1
Регулируется спецификацией? Нет единого владеющего стандарта Да, RFC 8216 (для использования в HLS)
Типичное расширение файла .m3u .m3u8
Типичный симптом несовпадения кодировки «Кракозябры» вместо букв с диакритикой или нелатинских символов Отсутствует при корректной кодировке

Разницу в кодировке заметнее всего видно, если название канала содержит буквы с диакритическими знаками или символы не из латиницы. Если плеер ожидает UTF-8, а получает файл в другой кодировке, эти символы могут отображаться в виде «кракозябр», даже если сам плейлист в остальном работает нормально. Если вы видите испорченные символы в названиях каналов, но всё при этом воспроизводится, причина обычно в кодировке, а не в структуре плейлиста.

Аннотированный пример — стандартный HLS-плейлист M3U8

RFC 8216 напрямую определяет этот формат: плейлист, состоящий из ссылок на сегменты, каждый со своей длительностью #EXTINF, используемый для доставки одного потока частями. Это именно тот формат, за которым в самой спецификации закреплено название «M3U8».

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:9.009,
segment-000.ts
#EXTINF:9.009,
segment-001.ts
#EXTINF:9.009,
segment-002.ts
#EXT-X-ENDLIST

Здесь важна каждая строка. #EXT-X-VERSION и #EXT-X-TARGETDURATION — это теги, специфичные для HLS, из того же RFC, а каждый файл .ts — короткий видеосегмент, который плеер загружает по порядку. Это формат, на котором фактически работает вся веб-видеоинфраструктура. Именно в таком виде IPTV-провайдер редко отдаёт вам плейлист напрямую, но именно его ваш плеер часто загружает в фоне, когда источник уже воспроизводится.

Реальные HLS-развёртывания обычно добавляют ещё один уровень: мастер-плейлист с тегом #EXT-X-STREAM-INF, который перечисляет несколько версий одного и того же потока с разным битрейтом или разрешением и позволяет плееру переключаться между ними в зависимости от состояния сети. Единственный URL, который вам выдали, может вести именно на такой мастер-плейлист, а не напрямую на список сегментов из примера выше; всё остальное плеер разрешает автоматически.

Большинство материалов про IPTV вообще пропускают эту многоуровневую структуру, поскольку IPTV-плейлисты редко её используют. Тем не менее это важно: именно такую структуру видеоплеер и создан понимать, даже если выданный вам файл M3U выглядит совершенно иначе.

Аннотированный пример — типичный IPTV-плейлист M3U

IPTV-провайдеры неформально расширяют базовый формат, добавляя к каждой записи атрибуты вроде tvg-id, tvg-logo и group-title. Ни один из них не определён в RFC 8216. Это сложившееся на практике соглашение, которое распространилось среди IPTV-плееров и провайдеров, потому что оно полезно, а не потому что его установил какой-то орган стандартизации.

#EXTM3U
#EXTINF:-1 tvg-id="channel.one" tvg-logo="https://example-provider.test/logo1.png" group-title="News",Channel One
https://example-provider.test/stream/CHANNEL_TOKEN_1
#EXTINF:-1 tvg-id="channel.two" tvg-logo="https://example-provider.test/logo2.png" group-title="Sports",Channel Two
https://example-provider.test/stream/CHANNEL_TOKEN_2

URL-адреса и токены выше — это условные заглушки: никогда не публикуйте и не передавайте реальную ссылку на плейлист. Тот, у кого есть настоящая ссылка, может воспользоваться вашим источником — так же, как тот, у кого есть пароль, может войти в чужой аккаунт.

Обратите внимание на длительность -1: это соглашение для прямых эфиров, означающее «без фиксированной длины», в отличие от конечных длительностей сегментов в примере HLS выше. Один и тот же тег, но с разным практическим значением в зависимости от того, какая из двух традиций породила файл.

При чём тут EPG?

Некоторые файлы M3U содержат заголовок url-tvg=, указывающий на отдельный файл программы передач, но сами данные программы находятся вне плейлиста. Плейлист сообщает плееру, какие потоки существуют, а отдельный файл XMLTV — что и когда выходит в эфир на каждом из них.

Это осознанное разделение, а не ограничение. Провайдеры могут обновлять данные программы по собственному расписанию, по несколько раз в день при изменении сетки вещания, не трогая при этом сам плейлист. Список каналов и расписание — это два независимо обслуживаемых файла, которые просто работают вместе.

Если ваш M3U содержит заголовок url-tvg=, плеер с поддержкой этой функции может подхватить данные программы автоматически, без ручного ввода второй ссылки. Если заголовка нет, программу передач приходится добавлять отдельно — это отдельный шаг настройки, отличный от добавления самого плейлиста, и он выходит за рамки этой статьи.

Как плеер вроде IPTV Expert использует файл M3U?

Плееру нужны только две вещи, чтобы использовать источник M3U: название, которое вы придумываете сами, и сам URL плейлиста. Именно это и запрашивает форма добавления источника в IPTV Expert — ничего больше, и никакого отдельного шага для ручного разбора тегов вроде tvg-logo.

Человек держит телефон — момент, когда ссылка на плейлист вводится в форму настройки плеера

После сохранения этих двух полей приложение загружает файл по указанному URL и разбирает его, прежде чем считать источник активным. Оно считывает записи #EXTINF, попутно подхватывает метаданные group-title и tvg-logo и строит список каналов на основе найденного. Если нужны точные пошаговые инструкции для вашего устройства, статья Как добавить M3U-плейлист в IPTV Expert отдельно разбирает Android, iOS, Windows, Mac, Linux, Android TV и Fire TV.

Если вы ещё не установили IPTV Expert, начните с полного списка загрузок и выберите версию для своего устройства, либо посмотрите Лучшие бесплатные IPTV-плееры в 2026 году, если всё ещё сравниваете варианты.

Заключение

Три момента объединяют всё сказанное выше: M3U-плейлист — это простой текст, построенный вокруг тегов #EXTM3U и #EXTINF; M3U8 конкретно означает кодировку UTF-8; а IPTV-теги, которые вы увидите в реальных плейлистах — tvg-id, tvg-logo, group-title — это широко принятое соглашение, надстроенное поверх формата, а не то, что определяет RFC 8216. Когда это понятно, настройка источника в плеере сводится всего к двум полям: названию и URL.

IPTV Expert

Смотрите на экране

Загрузите IPTV Expert для предпочитаемой вами платформы.

Скачать

IPTV Expert не предоставляет, не размещает и не продает каналы, плейлисты или подписки.