M3U8/HLS
Apple to wymyśliło, każde urządzenie Apple to odtwarza i żadne z nich tego nie zapisze.
Plik .m3u8 to playlista, a nie wideo: kilka kilobajtów tekstu zawierającego listę tysięcy małych segmentów do pobrania w odpowiedniej kolejności. Dzięki temu rozwiązaniu HLS działa bezbłędnie na każdym urządzeniu Apple i dlatego polecenie „zapisz ten plik” powoduje utworzenie dokumentu tekstowego. Pobranie jednego oznacza pobranie każdego segmentu i odbudowanie pliku, który nigdy nie istniał.
30 lipca 2026
Otwierane bez pomocy przez
HLS jest własną specyfikacją Apple i zapewnia pierwszorzędne wsparcie wszędzie – Safari, AVPlayer, AirPlay. To, co nie jest obsługiwane nigdzie w systemie, to przekształcanie transmisji na żywo w plik na dysku. Gra i utrzymanie to zupełnie inne problemy.
Fakty
| Pełna nazwa | HTTP Live Streaming; playlista to plik M3U w UTF-8 |
|---|---|
| Rodzaj | Protokół strumieniowania, dostarczany jako tekstowa playlista |
| Rozszerzenia | .m3u8 (playlista), .ts lub .m4s (segmenty, na które wskazuje) |
| Opublikowany | 2009, Apple; ustandaryzowany jako RFC 8216 w 2017 |
| Typowa długość segmentu | Od 2 do 10 sekund każdy — godzina wideo to od setek do tysięcy plików |
| Manifest główny a medialny | Główny wymienia poziomy jakości; każdy z nich wskazuje na manifest medialny z rzeczywistymi segmentami |
| Wideo wewnątrz segmentów | H.264 lub HEVC, sporadycznie AV1 |
| Transmisje na żywo | Playlista jest pobierana ponownie co kilka sekund i rośnie wraz z trwaniem nadawania |
Spis treści, nie książka
Otwórz plik .m3u8 w edytorze tekstu, a znajdziesz kilkanaście linii: nagłówek, kilka parametrów i długą listę adresów. To cały plik. Wideo mieszka gdzie indziej, pocięte na kilkusekundowe segmenty, leżące na serwerze jako tysiące osobnych, małych plików.
Odtwarzacz czyta listę, pobiera pierwsze kilka segmentów, zaczyna odtwarzanie i cały czas pobiera z wyprzedzeniem. Gdy Twoje połączenie zwalnia, przełącza się na wariant niższej jakości wymieniony w manifeście głównym — inny zestaw segmentów, przy innej przepływności — i robi to między segmentami, więc widzisz zmianę jakości, a nie pauzę. To adaptacyjne przełączanie jest powodem, dla którego ten format wygrał.
Tłumaczy to też coś, co zaskakuje ludzi: nie ma jednego pliku do posiadania. Film, który oglądasz, nigdzie nie istnieje jako pojedynczy obiekt. To tysiąc kawałków i zestaw instrukcji.
Dlaczego zapisanie go daje plik tekstowy
Bo dokładnie to zapisałeś. Przeglądarka poprosiła o podany przez Ciebie adres, otrzymała cztery kilobajty playlisty i zapisała je na dysku. Wszystko, co faktycznie oglądałeś, dotarło przez tysiąc osobnych żądań, o których operacja zapisu nic nie wiedziała.
Poprawne pobranie HLS oznacza zrobienie tego, co robi odtwarzacz, ale na dysk: przeczytać playlistę, wybrać wariant jakości, pobrać każdy segment po kolei, a potem zszyć je w jeden kontener. Ten ostatni krok to remultipleksowanie — wideo i audio nie są kodowane na nowo, tylko zapisywane od nowa do jednego pliku MP4 z właściwym indeksem, dzięki czemu wynik da się przewijać.
Dwie rzeczy sprawiają, że to trudniejsze, niż brzmi. Adresy segmentów są często względne i zmieniają się z sesji na sesję, więc lista pobrana godzinę temu może być już martwa. A strumienie są często szyfrowane kluczem, do którego odniesienie znajduje się w playliście, dostarczanym osobno i rotowanym w trakcie odtwarzania.
Pobieranie jednego na urządzenie
Zawsze tylko w przypadku transmisji strumieniowych, które masz prawo zachować — własne nagranie, własną subskrypcję IPTV, nadawcę oferującego pobieranie. Poniżej przedstawiono działanie mechanizmu, a nie pozwolenie na wskazanie go w dowolnym miejscu.
- Niech silnik pobierania obsłuży segmenty
Pobieranie tysiąca plików i ponowne ich remuxowanie to dokładnie to samo zadanie, jakie downloader FoxDL wykonuje w przypadku źródła HLS: przegląda listę odtwarzania, ciągnie segmenty równolegle i zapisuje jeden plik MP4, który przewija jak normalny plik. To, co przychodzi, to plik, a nie folder z fragmentami.
- Weź plik bezpośredni, jeśli taki istnieje
Wiele witryn obsługuje zarówno HLS, jak i zwykły progresywny MP4. MP4 to jedno żądanie, jeden plik i brak konieczności przebudowy — zawsze jest lepszą opcją, jeśli jest w ofercie.
- Zaakceptuj fakt, że niektórych nie da się zachować
Strumienie chronione systemem DRM — FairPlay, Widevine — są szyfrowane od początku do końca i z założenia nie można ich pobrać. Żadne narzędzie tego nie zmieni, a takie, które twierdzi inaczej, kłamie w jakiejś sprawie.
Gdzie pobieranie HLS kończy się niepowodzeniem
Segmenty połączone bez remuxowania tworzą odtwarzalny plik bez indeksu. Gra od początku i nigdzie nie przeskakuje. Remuxing zapisuje indeks, który to naprawia.
Playlista na żywo nie ma końca — ciągle rośnie. Pobieranie jest nagrywaniem i kończy się w momencie zatrzymania, a nie w momencie zakończenia pliku.
Adresy list odtwarzania są zwykle podpisane i ograniczone czasowo. Plik .m3u8 zapisany dziś rano często po południu nie wskazuje na nic.
Pytania o ten format
Skąd wiemy to, co wiemy
- RFC 8216 — HTTP Live Streaming IETF
- HTTP Live Streaming Apple Developer
Pokrewne formaty
Twoja biblioteka, wreszcie w jednym miejscu.
Bezpłatne pobranie. Bez konta, bez rejestracji, bez niczego do oddania.