Что такое формат файла M3U8?
Файлы с расширением .m3u8 представляют собой мультимедийные плейлисты в кодировке UTF-8. Это стандартные текстовые файлы - они не содержат реальных аудио- или видеоданных, а только ссылки на мультимедийные файлы или папки, в которых они хранятся. Помимо ссылок, они также включают информацию о плейлисте через строки комментариев, начинающиеся с #. Каждый расширенный плейлист должен начинаться с тега заголовка #EXTM3U в первой строке.
Ссылки на мультимедиа внутри файлов .m3u8 могут быть представлены в трех формах: в виде относительного пути, абсолютного пути или URL-адреса.
HLS-стриминг. Сегодня файлы .m3u8 чаще всего используются в качестве манифестов HTTP Live Streaming (HLS) - технологии, представленной Apple в 2009 году и позже стандартизированной как RFC 8216. В этой роли файл описывает, где получить короткие видеосегменты .ts (обычно по 2-10 секунд каждый) и, в случае мастер-плейлиста, какие варианты качества доступны. Директивы, специфичные для HLS, используют префикс #EXT-X- - например, #EXT-X-STREAM-INF объявляет вариант битрейта, а #EXT-X-ENDLIST сигнализирует о завершении потока.
Файлы .m3u8 часто встречаются в стриминговых сервисах, IPTV-плеерах и интернет-радиостанциях. Они также используются для хранения плейлистов с многоязычными названиями песен, так как стандарт кодировки символов UTF-8 гарантирует корректное отображение символов, отличных от ASCII.
.m3u8 и .m3u - это очень похожие форматы плейлистов, распознаваемые множеством мультимедийных плееров. Единственное, что их отличает, - это гарантия кодировки: .m3u8 явно использует UTF-8, в то время как файлы .m3u могут использовать любую 8-битную кодировку в зависимости от системной локали, что может привести к некорректному отображению названий с диакритическими знаками или нелатинскими символами.
Безопасность и защита
РИСК: LOWСам файл .m3u8 - это безвредный текстовый файл. Два практических предостережения: (1) он может указывать на удаленные URL-адреса, поэтому вредоносный плейлист может направить плеер на нежелательный контент - сначала проверяйте незнакомые плейлисты в текстовом редакторе. (2) Сохранение потокового видео через m3u8 может нарушать условия использования сайта или авторские права; скачивайте только те потоки, на которые имеете право. Избегайте подозрительных сайтов «m3u8 downloader», которые навязывают рекламу или ПНП - используйте yt-dlp или FFmpeg напрямую.
Детали формата
в двух словахПрограммы, открывающие файлы M3U8
Технические подробности
глубокая спецификация| Тип файла | Обычный текст UTF-8; читаем и редактируем в любом текстовом редакторе без специального ПО |
| MIME-типы | `application/vnd.apple.mpegurl` (HLS); `audio/x-mpegurl` (устаревший локальный плейлист) |
| Магический заголовок | `#EXTM3U` должен присутствовать в самой первой строке каждого расширенного плейлиста `.m3u8` |
| Кодировка символов | Строго UTF-8; цифра `8` в расширении явно указывает на это, позволяя использовать не-ASCII заголовки треков и пути к файлам |
| Типы ссылок | Относительные пути к файлам, абсолютные пути и полные URL-адреса HTTP/HTTPS/RTSP |
| Формат сегментов HLS | Файлы MPEG-2 Transport Stream (`.ts`) или фрагментированные MP4 (`.fmp4`), загружаемые плеером последовательно |
| Префикс директив HLS | Теги `#EXT-X-` управляют поведением потока - например, `#EXT-X-TARGETDURATION`, `#EXT-X-STREAM-INF`, `#EXT-X-ENDLIST` |
| Длительность сегмента | Обычно 2-10 секунд на сегмент, объявляется через `#EXTINF` для каждой записи и ограничивается `#EXT-X-TARGETDURATION` |
| Адаптивный битрейт | Мастер-плейлист `.m3u8` перечисляет дочерние плейлисты с разными битрейтами и разрешениями через `#EXT-X-STREAM-INF` |
| Шифрование | Посегментное шифрование AES-128, объявляемое с помощью `#EXT-X-KEY`; поддерживает доставку ключей через сервер по URI |
| Интеграция DRM | Совместимость с Apple FairPlay, Google Widevine и Microsoft PlayReady через `#EXT-X-SESSION-KEY` |
| Live vs. VOD | В прямых трансляциях (Live) отсутствует `#EXT-X-ENDLIST`; завершенные плейлисты VOD заканчиваются этим тегом, чтобы плеер знал об окончании потока |
| Дорожки субтитров | Дорожки WebVTT или TTML, на которые ссылаются через `#EXT-X-MEDIA TYPE=SUBTITLES` или `TYPE=CLOSED-CAPTIONS` |
| Синтаксис комментариев | Любая строка, начинающаяся с `#` и не являющаяся распознанным тегом, считается комментарием; используется для метаданных, таких как исполнитель и название |
| Выпущен | M3U from Winamp (late 1990s); m3u8 = UTF-8 M3U; HLS use of m3u8 since 2009 (Apple), RFC 8216 in 2017 |
| Открыть стандартное | Да · без роялти |
| Спецификация | datatracker.ietf.org |