M3U8 / HLS
Apple heeft het bedacht, elk Apple-apparaat speelt het af — en geen enkel slaat het op.
Een .m3u8-bestand is een playlist, geen video: een paar kilobyte tekst met duizenden kleine segmenten die om de beurt worden opgehaald. Precies daarom speelt HLS op elk Apple-apparaat prima — en “dit bestand opslaan” levert een tekstdocument. Downloaden betekent: elk segment ophalen en een bestand samenstellen dat nooit heeft bestaan.
30 juli 2026
Zonder hulp geopend door
HLS is Apples eigen specificatie en heeft overal eersteklas support — Safari, AVPlayer, AirPlay. Wat het systeem nergens kan: een live-stream in een bestand op schijf veranderen. Afspelen en bewaren zijn totaal andere problemen.
De feiten
| Volledige naam | HTTP Live Streaming; de playlist is een M3U in UTF-8 |
|---|---|
| Soort | Streamingprotocol, geleverd als tekst-playlist |
| Extensies | .m3u8 (de playlist), .ts of .m4s (de segmenten waarnaar hij wijst) |
| Gepubliceerd | 2009, Apple; 2017 gestandaardiseerd als RFC 8216 |
| Typische segmentlengte | Elk 2 tot 10 seconden — een uur video zijn honderden tot duizenden bestanden |
| Master- vs. media-playlist | Een master lijst kwaliteitsniveaus; elk wijst naar een media-playlist met de echte segmenten |
| Video in de segmenten | H.264 of HEVC, af en toe AV1 |
| Live-streams | De playlist wordt elke paar seconden opnieuw opgehaald en groeit mee met de uitzending |
Een inhoudsopgave, geen boek
Open een .m3u8 in een teksteditor en je vindt een paar dozijn regels: een header, parameters en een lange lijst adressen. Dat is het hele bestand. De video ligt ergens anders, in segmenten van een paar seconden gesneden, op een server als duizenden kleine bestanden.
Afspelen leest de lijst, haalt de eerste segmenten op, begint en loopt vooruit. Wordt de verbinding trager, dan wisselt hij naar de lagere kwaliteitsvariant in de master-playlist — andere segmenten, andere bitrate — tussen de segmenten, zodat je een kwaliteitswijziging ziet in plaats van een pauze. Dat adaptieve omschakelen heeft het formaat gewonnen.
Het verklaart ook iets dat veel mensen verrast: er is geen enkel bestand dat je “kunt hebben”. De film die je bekijkt, bestaat nergens als object. Het zijn duizend stukjes en een instructie.
Waarom opslaan een tekstbestand oplevert
Omdat precies dat is opgeslagen. De browser heeft het adres opgevraagd, vier kilobyte playlist gekregen en naar schijf geschreven. Alles wat je echt hebt gezien, kwam via duizend aparte requests waarvan het opslaan niets wist.
HLS goed downloaden betekent doen wat afspelen doet — maar naar schijf: playlist lezen, kwaliteitsvariant kiezen, elk segment om de beurt ophalen en tot één container samenvoegen. Die laatste stap heet remuxen — video en audio worden niet opnieuw geëncodeerd, alleen in één MP4 met juiste index geschreven, zodat je erin kunt springen.
Twee dingen maken dit moeilijker dan het klinkt. Segmentadressen zijn vaak relatief en veranderen per sessie — een uur oude lijst kan dood zijn. En streams zijn vaak versleuteld met een sleutel uit de playlist, apart geleverd en tijdens afspelen geroteerd.
Hoe je er eentje op het apparaat krijgt
Alleen voor streams die je mag bewaren — je eigen opname, je eigen IPTV-abonnement, een zender die een download aanbiedt. Wat volgt beschrijft het mechanisme, geen toestemming om het overal op te richten.
- Een downloadmotor de segmenten laten ophalen
Duizend bestanden ophalen en remuxen is precies de job die FoxDLs downloader met een HLS-bron doet: hij loopt de playlist af, trekt segmenten parallel en schrijft een MP4 waarin je kunt springen als in een gewoon bestand. Wat aankomt, is één bestand — geen map vol stukjes.
- Het directe bestand nemen als dat er is
Veel pagina’s leveren HLS én een gewone progressieve MP4. De MP4 is één request, één bestand, geen samenstellen — altijd de betere optie als die wordt aangeboden.
- Accepteren dat sommige niet te bewaren zijn
Met DRM beschermde streams — FairPlay, Widevine — zijn end-to-end versleuteld en bewust niet downloadbaar. Geen tool verandert dat, en eentje die het beweert, liegt ergens.
Waar HLS-downloads misgaan
Segmenten zonder remux aan elkaar geplakt leveren een afspeelbaar bestand zonder index. Hij speelt vanaf het begin en springt nergens naartoe. Remuxen schrijft de index die dat oplost.
Een live-playlist heeft geen einde — hij blijft groeien. Er eentje downloaden betekent opnemen, en het eindigt als jij stopt, niet als het bestand eindigt.
Playlist-adressen zijn meestal ondertekend en tijdgebonden. Een vanmorgen opgeslagen .m3u8 wijst ’s middags vaak naar niks.
Vragen over dit format
Waar deze feiten vandaan komen
- RFC 8216 — HTTP Live Streaming IETF
- HTTP Live Streaming Apple Developer
Verwante formaten
Je bibliotheek, eindelijk op één plek.
Gratis te downloaden. Geen account, geen aanmelding, niets om af te geven.