Tutoriel · HLS · DevTools
Trouver l'URL M3U8 d'un flux vidéo (Guide DevTools 2026)
Workflow DevTools de 60 secondes pour capturer l'URL M3U8 de tout flux HLS, y compris les flux privés qui demandent cookies ou Referer. Chrome, Edge, Firefox.
Trouver l'URL M3U8 d'un flux vidéo est la première étape de tout workflow de téléchargement HLS manuel. ffmpeg, yt-dlp, VLC, tous les outils CLI commencent par cette URL. La bonne nouvelle : la capturer prend environ 60 secondes avec DevTools, et le même workflow marche sur Chrome, Edge, Brave, Vivaldi, Opera et Firefox. La mauvaise : certains lecteurs rendent ça un peu plus dur, et l'URL peut expirer silencieusement. Ce guide couvre les deux.
Si vous n'avez jamais ouvert DevTools ou si vous n'êtes pas sûr de ce qu'est un fichier M3U8, notre explainer M3U8 (en anglais) couvre le format de bout en bout. Le reste de cet article suppose que vous savez ouvrir DevTools.
1. Pourquoi vous voulez l'URL M3U8
La plupart des lecteurs arrivent ici pour une de ces trois raisons :
- Pour télécharger la vidéo avec ffmpeg ou yt-dlp. Les deux prennent une URL M3U8 en entrée et téléchargent les segments. Voir notre guide M3U8 vers MP4 pour les commandes complètes.
- Pour lire le flux dans VLC, mpv ou un autre lecteur desktop. Drag and drop d'une URL M3U8 copiée dans VLC et ça lit. Pratique quand la page source est lourde ou pénible.
- Pour debugger un lecteur custom ou un LMS. Les devs qui construisent des lecteurs HLS ou debuggent des problèmes de lecture doivent vérifier que le manifeste est bien formé.
Pour les trois, le workflow est le même : capturer l'URL depuis le Network tab, puis agir.
2. Méthode 1 : Chrome DevTools (recommandé)
Chrome couvre environ 65 pour cent des navigateurs desktop et le même workflow marche sur Edge, Brave, Opera, Vivaldi. Le Network tab est l'endroit le plus fiable pour capturer les URLs de playlist.
Étape par étape
- Ouvrez la page qui héberge la vidéo. Ne cliquez pas Play encore.
- Ouvrez DevTools : F12 sur Windows ou Linux, Cmd + Opt + I sur Mac. Vous pouvez aussi clic droit n'importe où sur la page et choisir Inspecter.
- Allez sur l'onglet Network en haut de DevTools.
- Dans la barre de filtre (juste sous la toolbar), tapez
m3u8. Ça filtre toutes les requêtes dont l'URL contient m3u8. - Maintenant cliquez Play sur la vidéo. En une seconde, une ou plusieurs requêtes M3U8 apparaissent dans la liste filtrée. La première est généralement la master playlist.
- Cliquez sur la requête pour l'inspecter. L'onglet Headers montre l'URL, l'onglet Response montre le contenu de la playlist.
- Clic droit sur la requête et choisissez Copy > Copy link address. L'URL complète avec ses query parameters est dans votre presse-papiers.
Capturer cookies et headers (pour les flux privés)
Si l'URL M3U8 demande une authentification, copier juste l'URL ne suffit pas. ffmpeg ou yt-dlp recevront un 403 Forbidden quand ils la demanderont sans vos cookies de session. Le fix : capturer la requête entière en cURL :
- Clic droit sur la requête M3U8 dans le Network tab.
- Choisissez Copy > Copy as cURL (ou Copy as cURL (bash) sur Windows).
- Collez dans votre terminal. Vous avez maintenant une commande qui inclut l'URL, le header Cookie, le Referer et tout autre header custom utilisé par le lecteur.
Pour transformer cette commande cURL en commande ffmpeg, remplacez curl 'URL' par ffmpeg -headers $'Header1: value\r\nHeader2: value\r\n' -i 'URL' -c copy output.mp4. Fastidieux mais fiable.
3. Méthode 2 : Firefox Developer Tools
Les outils dev Firefox suivent le même workflow avec un naming légèrement différent.
- Ouvrez la page (sans lancer la lecture).
- F12 ou Cmd + Opt + I sur Mac.
- Cliquez sur l'onglet Network.
- Tapez
m3u8dans le filtre URL en haut de la liste de requêtes. - Cliquez Play sur la vidéo. La requête playlist apparaît.
- Clic droit sur la requête et choisissez Copy > Copy URL pour l'URL nue, ou Copy > Copy as cURL pour la requête complète avec headers.
Firefox étiquette parfois les playlists HLS comme application/x-mpegurl ou application/vnd.apple.mpegurl. La colonne Type montre le MIME, ce qui permet de confirmer rapidement la bonne requête. Les types MIME officiels pour HLS sont documentés sur MDN.
4. Le raccourci par extension navigateur
Si vous capturez des URLs M3U8 plus d'une fois par mois, une extension navigateur automatise tout le workflow. Au lieu d'ouvrir DevTools, filtrer, copier l'URL et la coller dans ffmpeg, l'extension détecte la playlist au démarrage de la lecture, capture les headers de votre session active, et propose un téléchargement en un clic.
Pourquoi c'est le bon move pour la majorité
- L'extension tourne dans votre session authentifiée. Cookies, Referer et tout header custom sont hérités automatiquement.
- La détection M3U8 est automatique. Pas de filtre, pas de scrolling dans 200 requêtes sur une page lourde.
- L'extension peut aussi gérer la conversion en MP4, y compris le déchiffrement AES-128 si le flux est chiffré.
Vidora est l'option qu'on développe, optimisée pour Vimeo, Bunny.net, flux HLS et MP4. Pour une comparaison plus détaillée des méthodes de détection, voir le guide Bunny.net (en anglais) et le guide Vimeo (en anglais), qui couvrent les spécificités de chaque plateforme.
5. Lire le M3U8 pour choisir la bonne qualité
Une fois que vous avez l'URL M3U8, l'ouvrir dans un onglet de navigateur (ou la passer dans curl en terminal) montre le contenu de la playlist. Deux structures sont courantes.
Master playlist
Une master playlist liste plusieurs renditions de qualité, chacune pointant vers une media playlist séparée. Ça ressemble à ça :
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=2425000,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2"
720p/playlist.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4585000,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2"
1080p/playlist.m3u8
Chaque ligne EXT-X-STREAM-INF décrit une qualité, et la ligne suivante est l'URL de la media playlist correspondante. Passez l'URL de la master playlist à ffmpeg ou yt-dlp et ils choisissent la qualité la plus haute automatiquement. Passez l'URL spécifique du 1080p si vous voulez forcer cette résolution.
Media playlist
Une media playlist contient les URLs réelles des segments :
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:9.96,
seg-001.ts
#EXTINF:9.92,
seg-002.ts
...
#EXT-X-ENDLIST
La balise #EXT-X-ENDLIST en bas indique une playlist VOD complète. Les flux live omettent cette balise et continuent à mettre à jour la playlist au fur et à mesure que de nouveaux segments arrivent. ffmpeg et yt-dlp gèrent les deux cas.
6. Pièges courants
L'URL M3U8 change à chaque rechargement
La majorité des CDN utilisent des URLs signées avec un token à courte durée de vie. Le token est dans l'URL ou en query parameter, et il expire en quelques minutes à quelques heures. Si vous sauvegardez une URL M3U8 aujourd'hui, elle peut ne plus marcher demain. Capturez des URLs fraîches à chaque fois, ou utilisez un outil qui re-fetch la playlist au besoin.
Le Network tab est vide après avoir cliqué Play
Soit la page utilise des Service Workers qui interceptent les requêtes (rare), soit la requête s'est tirée avant que vous ouvriez DevTools. Rechargez la page avec DevTools déjà ouvert et la requête est capturée dès le début.
L'URL M3U8 marche en navigateur mais échoue dans ffmpeg
Le CDN exige un Referer. Capturez la requête en cURL pour avoir les headers, puis transmettez-les à ffmpeg avec -headers. C'est la cause numéro un de "l'URL marche dans VLC mais pas en CLI".
L'URL capturée est pour un seul segment, pas la playlist
Votre filtre a attrapé une requête .ts ou .m4s avant que la playlist apparaisse. Rechargez, filtrez strictement par m3u8, et capturez la première requête qui matche.
La page ne demande jamais de M3U8
La vidéo est peut-être servie comme un fichier MP4 unique (téléchargement progressif) plutôt que HLS. Filtrez par .mp4 dans le Network tab. Si vous trouvez une requête MP4 qui renvoie un flux vidéo, copiez son URL de la même manière. Certains sites utilisent aussi DASH (.mpd), un format différent couvert dans notre explainer M3U8.
7. Questions fréquentes
Qu'est-ce qu'une URL M3U8 ?
C'est l'adresse d'un fichier playlist qui liste les segments vidéo d'un flux HLS. Le navigateur la récupère une fois au démarrage de la lecture, puis télécharge les segments. Capturer cette URL est la première étape de tout workflow HLS manuel.
Pourquoi je ne vois pas le M3U8 dans le Network tab ?
Soit le lecteur ne l'a pas encore demandé (cliquez Play pour déclencher), soit la playlist a été chargée comme un data URI inline en JavaScript (rare). Pour le second cas, cherchez la chaîne m3u8 dans le source de la page.
Master playlist vs media playlist, quelle différence ?
Une master playlist liste plusieurs renditions de qualité, chacune pointant vers sa propre media playlist. Une media playlist contient les URLs des segments. ffmpeg accepte les deux : avec la master, il choisit la qualité la plus haute disponible automatiquement.
Puis-je utiliser l'URL M3U8 hors du navigateur ?
Parfois. Les URLs publiques non authentifiées marchent partout. Les URLs signées avec token marchent jusqu'à expiration (souvent 30 minutes à quelques heures). Les URLs qui demandent cookies ou Referer ont besoin de ces headers passés explicitement. Copy as cURL capture tout.
Pourquoi mon URL M3U8 ne marche plus après un moment ?
Les CDN utilisent des URLs signées à durée de vie courte pour empêcher le hotlinking. Une fois le token expiré, l'URL renvoie 403. Re-capturez depuis une lecture fraîche. Les extensions navigateur contournent ça en re-fetchant au besoin.
Ça marche sur navigateur mobile ?
Les DevTools mobile sont limités. Le workflow fiable : ouvrir la même page sur desktop avec le même login, capturer là, puis utiliser l'URL depuis la session desktop. iOS Safari a un mode debugging distant qui se connecte à un Mac, ça marche mais c'est tordu.
À propos
RGC Digital LLC développe Vidora, une extension Chrome Pro de téléchargement vidéo pour Vimeo, Bunny.net, flux HLS et MP4. Basée à Albuquerque, NM. Nous écrivons sur l'outillage vidéo, les protocoles de streaming et le développement d'extensions Chrome.