Co to jest format pliku M3U8?
Pliki z rozszerzeniem .m3u8 to multimedialne playlisty zakodowane w UTF-8. Są to standardowe pliki tekstowe - nie zawierają rzeczywistych danych audio ani wideo, a jedynie odniesienia do plików multimedialnych lub podfolderów, w których są one przechowywane. Oprócz odniesień zawierają one również informacje o playliście w liniach komentarzy zaczynających się od #. Każda rozszerzona playlista musi zaczynać się od nagłówka #EXTM3U w pierwszej linii.
Odniesienia do multimediów zawarte w plikach .m3u8 mogą występować w trzech formach: jako ścieżka względna, ścieżka bezwzględna lub adres URL.
Strumieniowanie HLS. Obecnie pliki .m3u8 są najczęściej używane jako manifesty HTTP Live Streaming (HLS) - technologii wprowadzonej przez Apple w 2009 roku i później standaryzowanej jako RFC 8216. W tej roli plik opisuje, skąd pobierać krótkie segmenty wideo .ts (zazwyczaj 2-10 sekund każdy) oraz, w przypadku playlisty nadrzędnej (master), jakie warianty jakości są dostępne. Dyrektywy specyficzne dla HLS używają prefiksu #EXT-X- - na przykład #EXT-X-STREAM-INF deklaruje przepływność wariantu, a #EXT-X-ENDLIST sygnalizuje, że strumień jest kompletny.
Pliki .m3u8 można powszechnie spotkać w usługach streamingowych, odtwarzaczach IPTV i internetowych stacjach radiowych. Są one również używane do przechowywania playlist zawierających wielojęzyczne nazwy utworów, ponieważ standard kodowania symboli UTF-8 zapewnia poprawne wyświetlanie znaków spoza zestawu ASCII.
.m3u8 i .m3u to formaty bardzo do siebie podobne - są to pliki playlist rozpoznawane przez wiele odtwarzaczy multimedialnych. Jedyną rzeczą, która je różni, jest gwarancja kodowania: .m3u8 to jawnie UTF-8, podczas gdy pliki .m3u mogą używać dowolnego kodowania 8-bitowego w zależności od ustawień regionalnych systemu, co może powodować błędne wyświetlanie tytułów ze znakami akcentowanymi lub niełacińskimi.
Bezpieczeństwo
RYZYKO: LOWSam plik .m3u8 jest nieszkodliwym tekstem. Dwa praktyczne ostrzeżenia: (1) może wskazywać na zdalne adresy URL, więc złośliwa playlista może skierować odtwarzacz do niechcianych treści - najpierw sprawdź nieznane playlisty w edytorze tekstu. (2) Zapisywanie strumieniowanego wideo przez m3u8 może naruszać warunki serwisu lub prawa autorskie; pobieraj tylko te strumienie, do których masz prawo. Unikaj podejrzanych stron „m3u8 downloader”, które promują reklamy/PUP - używaj bezpośrednio yt-dlp lub ffmpeg.
Szczegóły formatu
w pigułceProgramy otwierające pliki M3U8
Szczegóły techniczne
specyfikacja| Typ pliku | Zwykły tekst UTF-8; czytelny dla człowieka i edytowalny w dowolnym edytorze tekstu bez specjalnego oprogramowania |
| Typy MIME | `application/vnd.apple.mpegurl` (HLS); `audio/x-mpegurl` (starsza lokalna playlista) |
| Nagłówek Magic | `#EXTM3U` musi pojawić się w pierwszej linii każdej rozszerzonej playlisty `.m3u8` |
| Kodowanie znaków | Ściśle UTF-8; cyfra `8` w rozszerzeniu jawnie to sygnalizuje, umożliwiając stosowanie tytułów utworów i ścieżek plików ze znakami spoza ASCII |
| Typy odniesień | Względne ścieżki plików, bezwzględne ścieżki plików oraz pełne adresy URL HTTP/HTTPS/RTSP |
| Format segmentu HLS | Pliki MPEG-2 Transport Stream (`.ts`) lub pofragmentowane MP4 (`.fmp4`) pobierane sekwencyjnie przez odtwarzacz |
| Prefiks dyrektywy HLS | Tagi `#EXT-X-` kontrolują zachowanie strumienia - np. `#EXT-X-TARGETDURATION`, `#EXT-X-STREAM-INF`, `#EXT-X-ENDLIST` |
| Czas trwania segmentu | Zazwyczaj 2-10 sekund na segment, deklarowany przez `#EXTINF` dla każdego wpisu i ograniczony przez `#EXT-X-TARGETDURATION` |
| Adaptacyjna przepływność | Nadrzędny plik `.m3u8` zawiera listę podrzędnych playlist o różnych przepływnościach i rozdzielczościach za pomocą `#EXT-X-STREAM-INF` |
| Szyfrowanie | Szyfrowanie AES-128 dla każdego segmentu deklarowane za pomocą `#EXT-X-KEY`; obsługuje dostarczanie kluczy przez serwer URI |
| Integracja DRM | Kompatybilność z Apple FairPlay, Google Widevine i Microsoft PlayReady poprzez `#EXT-X-SESSION-KEY` |
| Live vs. VOD | Strumienie na żywo pomijają `#EXT-X-ENDLIST`; zakończone playlisty VOD kończą się tym tagiem, aby odtwarzacz wiedział, że strumień dobiegł końca |
| Ścieżki napisów | Ścieżki WebVTT lub TTML przywoływane przez `#EXT-X-MEDIA TYPE=SUBTITLES` lub `TYPE=CLOSED-CAPTIONS` |
| Składnia komentarzy | Każda linia zaczynająca się od `#`, która nie jest rozpoznanym tagiem, jest traktowana jako komentarz; używana dla metadanych, takich jak artysta i tytuł |
| Wydano | M3U from Winamp (late 1990s); m3u8 = UTF-8 M3U; HLS use of m3u8 since 2009 (Apple), RFC 8216 in 2017 |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | datatracker.ietf.org |