Stream HTTP Live Streaming

M3U8 / HLS

Apple heeft het bedacht, elk Apple-apparaat speelt het af — en geen enkel slaat het op.

Kort gezegd

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

iPhone · iPad Opent
Mac Opent
FoxDL Opent

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.

  1. 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.

  2. 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.

  3. 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

Een bestand zonder scrubbalk

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-stream die nooit klaar is

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.

Een link die gisteren nog werkte

Playlist-adressen zijn meestal ondertekend en tijdgebonden. Een vanmorgen opgeslagen .m3u8 wijst ’s middags vaak naar niks.

De lange versie Wat een downloadbeheerder doet en een webbrowser niet Waarom overdrachten stoppen als je van app wisselt, wat hervatten werkelijk vereist, en hoe streams bestanden worden.

Vragen over dit format

Waar deze feiten vandaan komen

Verwante formaten

Je bibliotheek, eindelijk op één plek.

Gratis te downloaden. Geen account, geen aanmelding, niets om af te geven.

Download in de App Store