M3U et M3U8 ne correspondent pas à deux niveaux de qualité vidéo. Ce sont des formats de playlist textuelle. L’extension .m3u8 est couramment utilisée pour signaler du texte M3U encodé en UTF-8 et elle est fortement associée à HLS, mais M3U8 ne veut pas automatiquement dire HLS.
Inversement, une playlist HLS n’est pas obligée de se terminer uniquement par .m3u8 : RFC 8216 autorise une identification par un chemin finissant en .m3u8 ou .m3u, ou par le Content-Type HTTP. En HLS, la playlist doit être en UTF-8 et ne doit pas contenir de BOM.
La méthode fiable consiste donc à regarder le contenu, notamment les balises #EXT-X-*, plutôt que de déduire le format à partir du nom du fichier.
Réponse rapide
.m3u: extension de playlist M3U ; elle ne suffit pas à déterminer son encodage ou son usage..m3u8: convention courante pour une playlist M3U en UTF-8 ; très utilisée avec HLS.#EXT-X-STREAM-INF: indice fort d’une playlist HLS multivariante.#EXT-X-TARGETDURATION: caractéristique d’une playlist média HLS.- Renommer
.m3uen.m3u8ne change ni les octets ni l’encodage du fichier.- Une playlist valide n’implique pas que les médias qu’elle référence soient disponibles.
M3U vs M3U8 : la différence en 30 secondes
La confusion vient du fait que trois notions sont souvent mélangées :
extension du fichier → encodage du texte → protocole de streaming.
Ce ne sont pas trois façons de dire la même chose.
| Point | M3U | M3U8 |
|---|---|---|
| Nature | Playlist texte | Playlist texte |
| Extension habituelle | .m3u | .m3u8 |
| UTF-8 garanti par l’extension seule ? | Non | C’est la convention attendue hors HLS |
Peut contenir #EXTINF | Oui | Oui |
| Peut référencer plusieurs médias | Oui | Oui |
| Associé à HLS | Possible | Très fréquent |
| Extension suffisante pour prouver HLS | Non | Non |
| Qualité vidéo déterminée par l’extension | Non | Non |
Le point important est donc : ne choisissez pas un diagnostic uniquement parce qu’une URL termine par .m3u8.
Il faut inspecter ce qu’elle contient.
Ce que signifie réellement le « 8 » de M3U8
M3U8 et UTF-8
Dans l’usage courant, M3U8 désigne une playlist M3U dont le texte est encodé en UTF-8.
Cela permet notamment de représenter sans ambiguïté des caractères comme :
é,è,à,ç;- des alphabets non latins ;
- des symboles Unicode.
Il ne faut cependant pas transformer cette convention en règle inverse du type :
« tout fichier
.m3uest forcément en Latin-1 ».
Cette conclusion n’est pas justifiée. L’extension .m3u ne permet pas, à elle seule, de déterminer comment les octets du fichier ont été encodés.
Pourquoi les accents deviennent parfois illisibles
Supposons qu’un nom correct soit :
Télévision Exemple
et qu’une application affiche quelque chose comme :
Télévision Exemple
Ce symptôme indique généralement un désaccord d’encodage : les octets ont été produits selon un encodage mais interprétés selon un autre.
Le problème n’est donc pas la qualité du flux, le réseau ou l’EPG. Il apparaît avant même la lecture du média : au moment où le logiciel interprète le texte de la playlist.
Pourquoi « M3U = Latin-1 » est trop simpliste
Pour diagnostiquer correctement un fichier .m3u, il vaut mieux demander :
- dans quel encodage le fichier a-t-il réellement été enregistré ?
- quel encodage le lecteur suppose-t-il ?
- les caractères sont-ils déjà corrompus dans le fichier ou seulement après importation ?
L’extension seule ne répond à aucune de ces trois questions.
Renommer .m3u en .m3u8 ne convertit rien
Un changement de nom :
playlist.m3u → playlist.m3u8
ne réencode aucun caractère.
Les octets restent identiques.
Pour convertir réellement un fichier texte vers UTF-8, il faut lire son encodage actuel correctement puis le réenregistrer en UTF-8.
Et si votre objectif est de transformer une playlist M3U ordinaire en HLS, le problème est encore différent : changer l’encodage ou l’extension ne crée pas les balises et la structure HLS nécessaires.
Pourquoi M3U8 est fortement associé à HLS

M3U/M3U8 est une playlist ; HLS est un protocole
HLS — HTTP Live Streaming — utilise des playlists textuelles basées sur la famille M3U.
RFC 8216 définit notamment #EXTM3U comme identifiant du format Extended M3U et impose ce marqueur en première ligne des playlists HLS décrites par le RFC.
Mais HLS ajoute ses propres règles et balises, notamment celles commençant par :
#EXT-X-
C’est cette structure qui apporte une information beaucoup plus forte que la simple extension .m3u8.
Playlist HLS multivariante
Une playlist multivariante décrit plusieurs variantes d’une même présentation : par exemple plusieurs débits, résolutions ou renditions.
Un marqueur essentiel est :
#EXT-X-STREAM-INF
La ligne suivante pointe normalement vers une playlist média correspondant à cette variante. RFC 8216 décrit précisément ce mécanisme.
Les lecteurs HLS peuvent ensuite choisir une variante adaptée aux conditions de lecture. Apple décrit également ce fonctionnement comme une sélection entre plusieurs variantes selon le débit réseau mesuré.
À retenir :
#EXT-X-STREAM-INF
→ variantes
→ autres playlists
→ médias.
Apple emploie aujourd’hui le terme Multivariant Playlist. Les textes plus anciens, dont RFC 8216, utilisent encore Master Playlist. La documentation Apple a adopté la nouvelle terminologie en 2021.
Playlist média HLS
Une playlist média se trouve au niveau suivant.
Elle référence une succession de segments média qui, lus dans l’ordre, constituent la présentation.
RFC 8216 définit précisément cette différence : une Media Playlist contient une liste de Media Segments.
Un marqueur particulièrement utile pour la reconnaître est :
#EXT-X-TARGETDURATION
Il indique la durée maximale attendue des segments de cette playlist et il est obligatoire dans une playlist média relevant de RFC 8216.
Pourquoi une playlist HLS peut aussi utiliser .m3u
C’est l’une des nuances que beaucoup de comparatifs ratent.
RFC 8216 exige qu’une playlist HLS soit identifiable soit par son URI, soit par son type HTTP.
Pour le chemin de l’URI, il accepte :
.m3u8
ou
.m3u.
Pour HTTP, le RFC reconnaît notamment :
application/vnd.apple.mpegurl
ou
audio/mpegurl.
La documentation Apple actuelle recommande plus précisément application/vnd.apple.mpegurl pour une playlist HLS et présente audio/mpegurl comme type associé à M3U.
Conclusion pratique : une extension fournit un indice, pas toujours une classification complète.
M3U, M3U8, Extended M3U et HLS : les quatre cas à ne pas confondre

Une comparaison à seulement deux colonnes cache une partie importante du problème.
| Type rencontré | Ce que c’est | Indices dans le contenu | Usage typique |
|---|---|---|---|
| M3U simple | Liste texte de chemins ou d’URI | principalement des chemins/URI | playlist locale ou liste de médias |
| M3U8 UTF-8 simple | M3U enregistré en UTF-8 | structure M3U, sans nécessairement #EXT-X-* | playlist contenant notamment du texte Unicode |
| Extended M3U | M3U enrichi de métadonnées | #EXTM3U, #EXTINF | catalogues et playlists structurées |
| HLS | Playlist respectant les règles HLS | #EXT-X-*, playlists de variantes ou segments | diffusion HTTP segmentée |
Une playlist utilisée dans un lecteur peut également référencer elle-même une URL HLS.
Par exemple :
playlist de catalogue
→ entrée « Chaîne Exemple »
→ URL HLS
→ playlist multivariante
→ playlist média
→ segments.
Cette hiérarchie explique pourquoi voir .m3u8 à l’intérieur d’un fichier .m3u n’a rien d’incohérent.
Comment savoir quel type de fichier ou d’URL vous avez
Voici une méthode plus fiable que regarder uniquement l’extension.
Étape 1 — Regarder l’extension comme un indice
.m3u indique une playlist M3U.
.m3u8 indique généralement une playlist M3U en UTF-8 et apparaît très souvent avec HLS.
Mais arrêtez-vous là : ne concluez pas encore que .m3u8 = HLS.
Étape 2 — Ouvrir les premières lignes
Vous n’avez généralement pas besoin de lire des milliers d’entrées.
Les premières lignes suffisent souvent à identifier la famille du document.
Cherchez notamment :
#EXTM3U
#EXTINF
#EXT-X-STREAM-INF
#EXT-X-TARGETDURATION
#EXT-X-MEDIA-SEQUENCE
Étape 3 — Chercher les balises #EXT-X-*
C’est la vérification la plus utile.
Une succession de lignes #EXTINF accompagnées d’URI indépendantes peut correspondre à une playlist Extended M3U.
La présence de balises HLS comme :
#EXT-X-STREAM-INF
ou
#EXT-X-TARGETDURATION
change l’interprétation.
Étape 4 — Regarder ce que les URI référencent
Posez-vous la question :
les URI représentent-elles plusieurs médias indépendants ou les morceaux/variantes d’une même présentation ?
C’est souvent la différence entre :
catalogue
et
manifeste HLS.
Étape 5 — Vérifier le Content-Type si nécessaire
Pour une ressource distante, la réponse HTTP peut fournir un indice supplémentaire.
En HLS, RFC 8216 prévoit l’identification par Content-Type lorsque le chemin lui-même ne suffit pas.
N’utilisez toutefois jamais cette information pour tenter de contourner un contrôle d’accès : une erreur d’autorisation appartient à la source, pas au format de la playlist.
Arbre de décision ParisIPTV
Vous avez un fichier ou une URL
│
├── L'extension est .m3u ou .m3u8 ?
│ │
│ └── Oui → c'est un indice, pas encore une preuve du contenu
│
└── Ouvrez les premières lignes
│
├── #EXT-X-STREAM-INF
│ └── HLS multivariant très probable
│
├── #EXT-X-TARGETDURATION
│ └── Playlist média HLS
│
├── #EXTINF + nombreuses entrées indépendantes
│ └── Extended M3U / catalogue probable
│
└── aucun marqueur clair
│
├── examiner les URI
└── vérifier éventuellement le Content-Type
Si vous souhaitez automatiser cette première inspection, un détecteur de format local est l’outil logique à utiliser, à condition que l’analyse reste locale lorsque votre fichier contient des adresses privées.
Le test des 10 premières lignes : trois exemples
Tous les domaines et médias ci-dessous sont fictifs.
Exemple A — Extended M3U
#EXTM3U
#EXTINF:-1 tvg-id="example.a",Chaîne Exemple A
https://media.example.com/a
#EXTINF:-1 tvg-id="example.b",Chaîne Exemple B
https://media.example.com/b
Ici, chaque #EXTINF décrit une entrée suivie de son adresse.
Il s’agit d’une structure de catalogue Extended M3U, pas d’une preuve de HLS.
Une adresse individuelle pourrait toutefois elle-même mener vers une playlist HLS.
Exemple B — HLS multivariant
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360
low/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2500000,RESOLUTION=1280x720
hd/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080
fullhd/index.m3u8
Le marqueur décisif est ici #EXT-X-STREAM-INF.
Chaque URI correspond à une variante de la même présentation.
Exemple C — Playlist média HLS
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:100
#EXTINF:6.0,
segment100.ts
#EXTINF:6.0,
segment101.ts
Cette fois, les URI désignent des segments média successifs.
La présence de #EXT-X-TARGETDURATION est un signal particulièrement fort : RFC 8216 l’impose dans une playlist média.
M3U/M3U8 et EPG/XMLTV : ce n’est pas la même chose
Une deuxième confusion fréquente consiste à traiter playlist et guide des programmes comme un seul fichier.
Ce sont deux couches différentes.
Ce que contient la playlist
Une playlist fournit essentiellement des entrées et les URI vers lesquelles elles pointent.
Elle répond à la question :
« que faut-il ouvrir ? »
Ce que contient XMLTV
XMLTV est un format XML destiné aux données de programmes.
Il contient notamment des déclarations de chaînes et des éléments de programme avec leurs métadonnées et horaires.
Il répond plutôt à :
« qu’est-ce qui est programmé et à quelle heure ? »
ParisIPTV documente déjà séparément XMLTV et le guide des programmes, ce qui est la bonne séparation architecturale : playlist et guide peuvent fonctionner ou échouer indépendamment.
Et tvg-id ?
Dans l’écosystème Extended M3U, tvg-id est couramment utilisé pour porter un identifiant destiné à rapprocher une entrée de playlist d’une chaîne décrite dans les données de guide.
Ce type d’attribut appartient aux conventions de playlists utilisées par certains lecteurs et services ; il ne fait pas partie de la syntaxe HLS définie par RFC 8216.
Le comportement exact d’une application face à ces attributs peut varier.
Pourquoi la vidéo peut fonctionner avec un EPG vide
Parce que ce sont deux problèmes distincts.
Vous pouvez avoir :
playlist correcte
→ média accessible
→ lecture correcte
mais :
XMLTV absent ou incorrect
→ association d’identifiant impossible
→ guide vide.
Dans ce cas, modifier l’extension .m3u ou .m3u8 ne réparera pas l’EPG.
M3U ou M3U8 : lequel utiliser ?
La bonne réponse dépend de ce que vous essayez réellement de faire.

Pour une playlist locale
Utilisez le format attendu par le logiciel qui doit l’ouvrir.
Ne supposez pas qu’une extension est universellement prise en charge : pour une application ou un appareil précis, vérifiez sa documentation officielle.
Pour des noms français ou des caractères internationaux
Privilégiez un fichier correctement enregistré en UTF-8.
Si votre environnement utilise la convention .m3u8 pour signaler UTF-8, elle rend l’intention plus explicite.
Pour un catalogue de médias
Extended M3U peut servir à associer des métadonnées aux entrées.
Cela ne transforme pas le catalogue en HLS.
Pour HLS
Utilisez une playlist conforme à la spécification HLS produite par la source autorisée.
Le protocole a sa propre syntaxe, ses playlists média ou multivariantes et ses contraintes d’encodage.
Pour un ancien lecteur
Ne choisissez pas aveuglément .m3u en supposant qu’il serait « plus compatible ».
La compatibilité est une propriété du lecteur et de son implémentation. Sans documentation du logiciel concerné, mieux vaut dire que la prise en charge peut varier.
Pourquoi une playlist M3U ou M3U8 ne fonctionne pas
Un fichier peut être parfaitement lisible comme texte et pourtant ne rien afficher.
Pour éviter de changer d’application, de réseau et de fichier en même temps, diagnostiquez les couches dans l’ordre.
| Symptôme | Couche à vérifier d’abord | Explication possible | Vérification utile |
|---|---|---|---|
Télévision au lieu de Télévision | Encodage texte | mauvais décodage des caractères | vérifier puis réenregistrer en UTF-8 |
| Le lecteur refuse le fichier | Syntaxe / encodage | fichier mal formé ou encodage non accepté | valider la playlist localement |
| La playlist apparaît mais rien ne démarre | Source / réseau | les URI référencées ne répondent pas | tester une entrée autorisée séparément |
| Vous attendiez plusieurs entrées mais obtenez un seul média | Type de document | manifeste HLS utilisé comme catalogue | chercher #EXT-X-* |
| HTTP 401 ou 403 | Autorisation | accès absent, expiré ou refusé par la source | vérifier l’URL auprès de la source autorisée |
| Des segments renvoient 404 | Ressource HLS | segments disparus ou manifeste devenu obsolète | recharger la playlist depuis sa source |
| Les médias fonctionnent mais pas le guide | XMLTV / correspondance | problème distinct de la playlist | contrôler XMLTV et ses identifiants |
| Lecture instable alors que format et URI sont corrects | Réseau | débit, pertes, latence ou variation | examiner les mesures réseau |
Ordre de diagnostic recommandé
1. Classifier le fichier.
M3U, Extended M3U ou HLS ?
2. Vérifier la syntaxe.
Le validateur de playlist M3U de ParisIPTV analyse le fichier localement sans contacter les adresses qu’il contient.
3. Vérifier l’encodage.
Les caractères sont-ils correctement interprétés en UTF-8 ?
4. Séparer l’EPG de la playlist.
Si les médias apparaissent mais pas les programmes, passez au diagnostic XMLTV plutôt que de modifier le fichier M3U.
5. Tester une seule URI autorisée.
Une playlist correctement analysée peut référencer une ressource indisponible.
6. Examiner le réseau seulement après le format et la source.
Si la lecture démarre mais coupe ou se dégrade, il devient pertinent d’interpréter les mesures réseau.
Cette méthode évite de confondre :
DEVICE → PLAYER → FORMAT → EXTERNAL SOURCE → CONTENT
Un lecteur est une application de lecture. Installer un lecteur ne fournit aucun contenu. La source et les droits d’accès existent indépendamment de l’application.
Comment convertir correctement un M3U en M3U8
Ne commencez pas par renommer le fichier
Changer :
liste.m3u
en :
liste.m3u8
ne fait que modifier son nom.
Cela ne change pas :
- l’encodage ;
- les caractères ;
- la structure ;
- les URI ;
- le type de playlist.
Identifier l’encodage actuel
Utilisez un éditeur capable d’indiquer l’encodage du fichier.
Avant toute conversion, vérifiez que le texte apparaît correctement.
Si les caractères sont déjà corrompus avant l’enregistrement, les sauvegarder à nouveau en UTF-8 ne reconstituera pas forcément les caractères d’origine.
Réenregistrer en UTF-8
Une conversion textuelle correcte suit cette logique :
encodage source correctement interprété
↓
texte Unicode correct
↓
enregistrement en UTF-8
↓
extension appropriée
Vérifiez ensuite des noms comportant :
é
à
ç
et, si votre playlist en contient légitimement, d’autres caractères internationaux.
Particularité HLS : aucun BOM
Pour HLS, RFC 8216 impose UTF-8 sans Byte Order Mark (BOM) et indique que les clients devraient refuser les playlists qui contiennent un BOM ou qui ne sont pas analysables en UTF-8.
Convertir vers UTF-8 n’est pas convertir vers HLS
C’est une distinction essentielle.
Vous pouvez transformer :
M3U dans un autre encodage → M3U en UTF-8
sans créer de HLS.
Pour produire du HLS, il faut une structure HLS conforme avec ses balises, playlists et ressources média correspondantes.
M3U8 n’est donc pas un bouton magique qui transforme un catalogue en flux adaptatif.
Protéger les URLs M3U et M3U8 privées
Une playlist peut contenir bien plus que de simples noms de médias.
Certaines adresses contiennent des valeurs sensibles, par exemple :
username=
password=
token=
auth=
sig=
expires=
Ne publiez pas ces valeurs dans :
- un forum ;
- une capture d’écran ;
- un ticket public ;
- un outil en ligne inconnu ;
- un dépôt de code.
Une URL fonctionnelle peut agir comme un secret si elle contient une autorisation ou un jeton d’accès.
Préférez une analyse locale
Pour une playlist privée, un outil qui analyse le fichier dans le navigateur sans l’envoyer à un serveur réduit le besoin de transmettre les URI à un tiers.
Le validateur M3U de ParisIPTV indique explicitement qu’il ne contacte aucune URL du fichier et n’envoie pas la playlist au serveur.
Pour demander de l’aide tout en masquant une adresse, ParisIPTV propose également un masqueur d’identifiants exécuté localement.
Utilisez uniquement des playlists et médias pour lesquels vous disposez d’un accès et d’une autorisation appropriés.
Ce que cela signifie en pratique
La bonne question n’est généralement pas :
« M3U ou M3U8, lequel est meilleur ? »
Mais :
« Quel type de document ai-je réellement, comment est-il encodé et vers quoi pointe-t-il ? »
Une extension ne détermine ni la qualité vidéo ni la légitimité d’une source.
Un lecteur ne fournit pas automatiquement les médias.
Une playlist n’est pas un EPG.
Une playlist syntaxiquement valide ne garantit pas que ses URI répondent.
Et une URL .m3u8 n’est pas suffisante, à elle seule, pour expliquer l’ensemble de ce qu’elle contient.
Pour la plupart des diagnostics, trois vérifications suffisent à orienter correctement la suite :
ouvrir les premières lignes → chercher #EXT-X-* → examiner le type des URI référencées.
Questions fréquentes sur M3U et M3U8
M3U8 est-il toujours du HLS ?
Non. .m3u8 est couramment utilisé pour une playlist M3U encodée en UTF-8 et il est très fortement associé à HLS, mais l’extension seule ne prouve pas qu’un fichier est un manifeste HLS. Inspectez les balises #EXT-X-*.
Peut-on simplement renommer .m3u en .m3u8 ?
Vous pouvez changer le nom du fichier, mais cela ne convertit pas son encodage. Pour obtenir réellement du UTF-8, le contenu doit être réenregistré dans cet encodage. Et cela ne transforme toujours pas une playlist ordinaire en HLS.
M3U8 offre-t-il une meilleure qualité vidéo que M3U ?
Non. L’extension de la playlist ne fixe pas la résolution, le codec ou le débit du média. En HLS, une playlist multivariante peut proposer plusieurs variantes de qualité, mais c’est la structure et les médias référencés qui rendent cela possible, pas les caractères « m3u8 ».
Une playlist .m3u peut-elle contenir des URL .m3u8 ?
Oui. Une playlist de catalogue peut référencer une URL HLS comme n’importe quelle autre ressource. Le format du catalogue et le format de la ressource référencée sont deux niveaux différents.
Une playlist HLS peut-elle utiliser une URL terminant en .m3u ?
Oui. RFC 8216 permet l’identification par un chemin se terminant par .m3u8 ou .m3u, ou par un Content-Type HTTP reconnu.
Pourquoi les accents sont-ils incorrects dans ma playlist ?
Parce que le logiciel qui lit le fichier n’interprète probablement pas ses octets avec le même encodage que celui utilisé lors de l’enregistrement. Vérifiez d’abord l’encodage réel puis réenregistrez proprement en UTF-8 si nécessaire.
M3U contient-il l’EPG ?
Une playlist et un EPG sont deux couches distinctes. Les données de programmes sont souvent fournies séparément en XMLTV. Une playlist peut donc fonctionner alors que le guide reste vide.
Sources techniques consultées
RFC 8216 — HTTP Live Streaming, RFC Editor.
Référence publiée utilisée ici pour les règles UTF-8, l’interdiction du BOM, les extensions/Content-Types reconnus, les playlists média et les balises HLS.
Apple Developer — HTTP Live Streaming.
Documentation actuelle utilisée pour la terminologie Multivariant Playlist, le fonctionnement des variantes et les recommandations de livraison.
HTTP Live Streaming 2nd Edition — draft-pantos-hls-rfc8216bis-22.
Consulté uniquement comme document d’évolution. Au moment de cette révision, il reste un Internet-Draft envoyé au RFC Editor et ne remplace donc pas encore RFC 8216 comme RFC publiée.
XMLTV Project — XMLTV File Format.
Référence utilisée pour distinguer le format des données de programmes de la playlist de lecture.
Dernière vérification éditoriale : 18 octobre 2026.
Limite de vérification : aucun test de compatibilité n’a été effectué dans des applications ou sur des appareils particuliers pour cet article. Les comportements d’un lecteur précis doivent être vérifiés dans sa documentation officielle.
Découvrez nos offres techniques
Explorez nos solutions techniques et trouvez les ressources adaptées à vos besoins.

[…] Pour une comparaison détaillée des formats, consultez notre article : M3U vs M3U8 : différences, UTF-8, HLS et comment reconnaître votre fichier. […]