Entrée glossaire · Format de fichier
M3U8 (Fichier playlist HLS)
Un fichier playlist en texte brut encodé UTF-8. M3U8 est le format de manifeste qui maintient HLS, listant les URLs des segments, leurs durées et les métadonnées du flux.
Définition
Un fichier M3U8 est une playlist en texte brut encodée UTF-8. Chaque ligne est soit une directive (une ligne qui commence par #EXT), soit une URI pointant vers un élément média. La première ligne de toute playlist HLS valide est la chaîne littérale #EXTM3U. Tout le reste est en principe optionnel, mais les playlists HLS bien formées contiennent suffisamment de métadonnées pour alimenter un lecteur de streaming adaptatif sans information complémentaire hors-bande.
La partie "M3U" vient du format de playlist de l'ère Winamp, baptisé d'après MPEG audio layer 3. Le "8" final indique l'encodage UTF-8, devenu nécessaire dès que les playlists ont commencé à référencer des URLs internationalisées et des métadonnées de sous-titres. Le format est documenté dans le RFC 8216.
Master playlist vs media playlist
HLS utilise M3U8 dans deux rôles distincts, et la distinction compte quand vous debuggez un flux.
Une master playlist liste les variantes de qualité disponibles. Chaque entrée associe une balise EXT-X-STREAM-INF à l'URL d'une media playlist. La master playlist est ce qu'un lecteur charge en premier pour découvrir les bitrates existants.
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:BANDWIDTH=540000,RESOLUTION=640x360
360p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1500000,RESOLUTION=1280x720
720p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4500000,RESOLUTION=1920x1080
1080p/index.m3u8
Une media playlist liste les URLs réelles des segments. C'est le fichier qu'un lecteur télécharge après avoir choisi une variante, et le fichier que ffmpeg ou yt-dlp ira chercher si on leur passe une URL M3U8.
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.96,
seg-0001.ts
#EXTINF:6.00,
seg-0002.ts
#EXT-X-ENDLIST
Si vous sauvegardez une master playlist et tentez de la lire sans les media playlists, le lecteur semblera ne rien faire car il n'y a pas de segments à récupérer. C'est la confusion la plus fréquente quand on récupère une URL M3U8 depuis les DevTools.
Balises que vous y trouverez
HLS définit des dizaines de balises mais une poignée fait presque tout le travail. Les connaître transforme un fichier M3U8 d'ASCII cryptique en spec lisible.
#EXTM3U: première ligne obligatoire. Marque le fichier comme playlist M3U étendue.#EXT-X-VERSION: version du protocole (typiquement 3 à 9). Les versions supérieures débloquent les segments fMP4, les requêtes byte-range et d'autres fonctionnalités modernes.#EXT-X-TARGETDURATION: borne supérieure de la durée d'un segment en secondes. Les lecteurs s'en servent pour dimensionner leur buffer initial.#EXT-X-MEDIA-SEQUENCE: index du premier segment dans la playlist. Critique pour les flux live où la playlist est une fenêtre glissante.#EXTINF: précède chaque URL de segment avec la durée exacte du segment en secondes.#EXT-X-KEY: déclare que les segments suivants sont chiffrés, avec l'URI du fichier clé. Voir l'entrée glossaire AES-128 pour la mécanique complète.#EXT-X-STREAM-INF: seulement dans les master playlists. Déclare un flux variant avec sa bande passante, sa résolution et sa liste de codecs.#EXT-X-MEDIA: seulement dans les master playlists. Déclare une piste audio ou sous-titres alternative.#EXT-X-ENDLIST: marque une playlist VOD. Son absence indique un flux live que le lecteur doit continuer à interroger.#EXT-X-BYTERANGE: permet aux segments d'être des plages d'octets d'un fichier sous-jacent unique, courant avec fMP4.#EXT-X-MAP: pointe vers le segment d'initialisation (la boîte moov) pour les flux fMP4.
Comment ouvrir un fichier M3U8
Double-cliquer sur un fichier M3U8 ne fait presque jamais rien d'utile. Le fichier est un manifeste texte, pas une vidéo. Pour le lire, il vous faut un lecteur compatible HLS qui lira la playlist et récupérera les segments. Les options réalistes sont :
- VLC : Fichier → Ouvrir un flux réseau, coller l'URL. Marche sur tous les OS desktop.
- mpv :
mpv playlist.m3u8en ligne de commande. - Safari : coller l'URL dans la barre d'adresse. Safari est le seul navigateur avec lecture HLS native.
- hls.js : injecter la playlist dans n'importe quelle page web qui utilise la bibliothèque open-source hls.js pour alimenter l'élément vidéo HTML5 standard.
Si la playlist est une master playlist avec des URLs relatives, vous devez la servir depuis l'hôte d'origine (ou réécrire les URLs en absolues), sinon le lecteur échouera à charger les media playlists.
Pourquoi un M3U8 seul n'est pas une vidéo lisible
Un fichier M3U8 pèse quelques kilo-octets. La vidéo réelle peut peser des centaines de méga-octets. La playlist ne porte que des pointeurs, pas des pixels. Quand vous faites clic droit "Enregistrer sous" sur une page de streaming, vous sauvegardez presque toujours le fichier texte M3U8 plutôt que la vidéo. C'est pour cela que la sauvegarde naïve échoue.
La manière propre de "sauvegarder une vidéo M3U8" consiste à récupérer chaque segment listé dans la playlist, à les déchiffrer éventuellement avec la clé AES-128 référencée par EXT-X-KEY, et à les muxer dans un conteneur MP4 unique. Nous détaillons le pipeline de conversion complet dans notre guide pratique sur la conversion M3U8 vers MP4 et sur la recherche de l'URL M3U8 d'une page.
Si vous voulez une solution en un clic qui gère la récupération des segments, le déchiffrement AES-128 et le muxing dans le navigateur, nos outils dédiés détecteur M3U8 et convertisseur M3U8 vers MP4 couvrent les deux moitiés du workflow sans quitter le navigateur.
Lectures liées
- HLS (le protocole qui utilise M3U8)
- AES-128 (chiffrement des segments pour HLS)
- DASH MPD (l'alternative XML à M3U8)
- Comment trouver l'URL M3U8 d'une vidéo
- M3U8 vers MP4 : le guide complet de conversion
- Télécharger un M3U8 chiffré AES-128
- Outil gratuit : détecteur M3U8
- Outil gratuit : convertisseur M3U8 vers MP4