Si ton fournisseur IPTV t'a envoyé un identifiant Xtream (serveur, identifiant, mot de passe) mais que le lecteur que tu veux utiliser ne prend qu'une URL M3U unique — ou l'inverse — tu n'es pas coincé. Les deux, c'est la même chose. En dessous, un identifiant Xtream n'est qu'une façon propre de noter tout ce qu'une URL M3U contient déjà.
Ce guide explique la conversion dans les deux sens, ce à quoi faire attention, et comment la faire sans taper tes identifiants quelque part où un inconnu pourrait les lire. Le convertisseur d'URL Xtream ↔ M3U de ce site fait la conversion entièrement dans ton navigateur — il n'y a aucun endpoint serveur derrière cette page.
L'URL M3U est un gabarit fixe ; un identifiant Xtream, ce sont juste les trois informations glissées dedans.
Pourquoi la question se pose
Le même fournisseur prend presque toujours en charge les deux formes, mais le lecteur que tu vas installer ne te demandera qu'une seule. Les apps divergent sur quelques points précis :
- Les vieux lecteurs M3U-only (VLC, apps de Smart TV basiques, boîtiers IPTV dédiés) prennent une URL unique. Ils ignorent les endpoints d'API Xtream ; ils téléchargent un fichier de playlist à plat et lisent les flux qu'il contient.
- Les lecteurs qui parlent Xtream (la plupart des apps IPTV modernes, dont Klipa) préfèrent le trio d'identifiants. Ils s'en servent pour récupérer la liste des chaînes en direct, la bibliothèque VOD, le catalogue de séries et l'EPG comme autant de documents séparés — meilleur classement, rafraîchissement dynamique, sections à la demande que l'export M3U ne sait pas représenter.
Si ton fournisseur t'a donné l'un et que le lecteur veut l'autre, la conversion est l'affaire de 30 secondes. Pas besoin de demander « l'autre format » au fournisseur — il te donne déjà les deux, juste sous une forme.
La formule Xtream vers M3U
Tous les fournisseurs Xtream utilisent le même gabarit d'URL. Une fois que tu le connais, tu peux construire l'URL M3U à la main à partir des identifiants :
http://<serveur>:<port>/get.php?username=<IDENTIFIANT>&password=<MOT_DE_PASSE>&type=m3u_plus&output=mpegts
Trois exemples concrets, avec les identifiants serveur : http://serveur.example:8080, identifiant : ABC, mot de passe : XYZ :
M3U : http://serveur.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus&output=mpegts
EPG : http://serveur.example:8080/xmltv.php?username=ABC&password=XYZ
player_api : http://serveur.example:8080/player_api.php?username=ABC&password=XYZ
Les morceaux :
get.phpest l'endpoint de playlist. Il s'appelle toujoursget.php— il n'y a pas de convention de nommage propre à chaque fournisseur ici.type=m3u_plusdemande le format M3U étendu qui inclut les logos de chaînes et les titres de groupes.type=m3utout court marche aussi mais produit une playlist plus pauvre ; tu veux presque toujoursm3u_plus.output=mpegtsdemande des flux qui se lisent en MPEG-TS brut. L'autre option courante estoutput=hls, qui produit des URLs HLS (.m3u8) — utile pour les navigateurs et certains appareils Apple, moins universellement gérée sur les boîtiers TV. Si ton lecteur est tatillon, basculeroutputest la première chose à essayer.xmltv.phpest l'endpoint EPG. Mêmes identifiants, document séparé. La plupart des lecteurs prennent cette URL dans un autre champ (« URL EPG » ou « URL XMLTV »).player_api.phpest l'API JSON. Les lecteurs qui « parlent Xtream nativement » s'en servent pour récupérer les arbres live/VOD/séries et les logos de chaînes.
L'inverse : extraire les identifiants d'une URL M3U
À partir d'une URL M3U qui ressemble à la formule ci-dessus, tu peux relire directement les trois champs Xtream :
http://serveur.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus
└────┘ └────┘
identifiant mot de passe
- Le serveur, c'est tout ce qui précède le premier slash après l'hôte :
http://serveur.example:8080. Retire/get.phpet tout ce qui suit. - L'identifiant, c'est la valeur du paramètre
username. - Le mot de passe, c'est la valeur du paramètre
password.
S'il manque un paramètre de query, l'URL n'est pas au format Xtream standard. Certains fournisseurs servent des URLs M3U simples qui ne contiennent aucun identifiant — typiquement des playlists statiques ou à base de token où l'URL elle-même est le secret. Il n'y a rien à en extraire ; tu l'utilises telle quelle dans n'importe quel lecteur capable de M3U.
Pièges classiques
Quelques détails piègent régulièrement les gens.
L'encodage URL des caractères spéciaux
Si ton mot de passe contient des caractères comme &, =, +, #, % ou /, ils doivent être percent-encodés dans l'URL. Un & littéral au milieu du mot de passe casse le parse de l'URL — le lecteur traiterait tout ce qui suit comme un paramètre de query distinct.
La plupart des panels de fournisseurs le font pour toi. Si tu construis l'URL à la main et que ton mot de passe a des bizarreries dedans, passe-le d'abord dans n'importe quel outil « URL encode ». Ou évite carrément et laisse le convertisseur dans le navigateur le faire pour toi.
Le port
Les fournisseurs Xtream tournent très rarement sur les ports par défaut 80 ou 443. Les plus courants sont 8080, 25461, 8000, ou un port aléatoire élevé. Le port fait partie de l'URL du serveur, il n'est pas optionnel. Si tu vois http://serveur.example/get.php?… sans port, soit ça tourne sur le port 80 (rare), soit le fournisseur a un reverse proxy devant (rare aussi). La plupart du temps, le port est juste manquant parce que quelqu'un a copié l'URL à la main et l'a oublié.
http ou https
La plupart des fournisseurs Xtream servent en HTTP, pas en HTTPS. La forme https:// renvoie souvent une erreur de certificat ou un 404 parce que le serveur ne fait pas du tout de TLS. Si on t'a donné une URL de serveur en https:// et qu'elle ne marche pas, essaie http:// tout simple. Le compromis, c'est que ton mot de passe voyage désormais en clair ; c'est malheureusement la norme chez les fournisseurs IPTV.
Chemin personnalisé sur l'URL M3U
Certains fournisseurs personnalisent leur routage — au lieu de /get.php, tu verras /playlist.m3u, /m3u.php, voire /index.php?type=m3u. Les identifiants contenus dans ces URLs correspondent toujours à ce qu'attend l'API Xtream, donc le convertisseur les extraira correctement, mais l'URL de playlist qu'utilise le fournisseur, elle, n'est pas standard. Si tu construis ta propre URL M3U avec le chemin standard /get.php, le fournisseur peut la refuser. Dans ces cas-là, garde l'URL d'origine qu'il t'a donnée — ne cherche pas à la « corriger ».
Espace invisible à la fin des identifiants
Coller depuis un mail ou un post de forum traîne régulièrement un espace, un saut de ligne ou une espace insécable invisible à la fin de l'identifiant. L'API Xtream traite ABC et ABC comme deux identifiants distincts ; tu obtiens une réponse d'authentification échouée identique à celle d'un mot de passe faux. Le convertisseur trimme automatiquement les espaces de l'identifiant et te prévient quand il a dû le faire. Si tu construis l'URL à la main, colle d'abord chaque champ dans un éditeur de texte brut et regarde visuellement la fin.
Faire la conversion en sécurité
Plusieurs sites proposent cette conversion en ligne. La plupart sont corrects ; certains sont louches. Le risque est simple — des identifiants collés dans le formulaire d'un inconnu peuvent être journalisés, récoltés, ou rejoués. Même un opérateur honnête sans intention malveillante a des logs d'accès.
Le convertisseur de ce site est conçu pour ne pas pouvoir avoir de logs d'accès sur tes identifiants, parce qu'il n'a aucun endpoint serveur derrière. La conversion tourne entièrement dans ton navigateur, en JavaScript. Les identifiants vivent dans les éléments input du DOM jusqu'à la fermeture de la page ; ils ne sont pas dans la barre d'URL, ils ne sont pas dans le localStorage, et ils ne sont envoyés nulle part. Si tu ouvres l'onglet réseau du navigateur pendant une conversion, tu verras exactement zéro requête sortante qui transporte les identifiants.
C'est le standard à attendre de n'importe quel outil qui te demande des identifiants IPTV. Si une interface de convertisseur envoie une requête réseau quand tu cliques sur « convertir », elle a, par définition, transmis tes identifiants quelque part.
Après la conversion : vérifie avant d'importer
Une URL construite avec succès ne veut pas dire une URL qui marche. Les deux sens de conversion sont des transformations de chaînes déterministes — elles sont correctes en tant que transformations, mais elles ne te disent pas si les identifiants sont valides, si l'abonnement est à jour ou si le serveur est joignable.
Deux vérifications peu coûteuses avant de t'engager dans l'import :
- Pour les URLs M3U, colle le résultat dans le testeur de playlist M3U. Il récupère la playlist, la parse, et sonde les 100 premiers flux. Tout ce qui est vert signifie que l'URL est bonne ; tout ce qui est rouge te dit précisément quel est le mode de défaillance (réponse HTML, 404, flux morts).
- Pour les identifiants Xtream, colle le trio dans le vérificateur d'identifiants Xtream. Il appelle l'API côté serveur, renvoie le statut d'auth, l'expiration, les limites de connexions et le nombre de chaînes. Il distingue « mot de passe faux » de « abonnement expiré » de « serveur injoignable ».
Lancer l'un de ces deux outils avant de t'embêter à installer un lecteur fait économiser une vingtaine de minutes de debug quand quelque chose cloche avec les identifiants eux-mêmes.
Quand l'URL M3U ne contient pas d'identifiants
Une petite portion des URLs M3U que tu croiseras n'est pas du Xtream du tout. Ce sont des playlists à plat hébergées sur un serveur statique, ou des URLs porteuses d'un token où le secret est inclus dans le chemin plutôt que dans la query string :
https://serveur.example/playlists/9c1f4a8b3e/stream.m3u8
Il n'y a rien à extraire — l'URL elle-même est l'identifiant. Elles fonctionnent dans les lecteurs M3U-only telles quelles. Elles n'ont pas d'équivalent Xtream parce qu'elles ne sont pas générées par le panel Xtream Codes ; elles viennent d'une autre stack IPTV (plus ancienne). Si ton fournisseur ne t'a donné que ça et que ton lecteur exige des identifiants Xtream, c'est qu'il n'a pas d'identifiant Xtream à te donner. Demande au fournisseur, ou choisis un lecteur qui accepte les URLs M3U.
À quoi ça ressemble dans Klipa
Klipa accepte les deux formats dans la même bibliothèque, côte à côte. Tu peux ajouter une URL M3U et un identifiant Xtream du même fournisseur comme des sources séparées ; l'appli utilise celle qui est en bonne santé. Si l'export M3U se met à renvoyer du HTML un beau jour, l'appel API Xtream maintient ta liste de chaînes en vie jusqu'au rafraîchissement suivant, et inversement.
C'est la réponse simple à « quel format dois-je utiliser » — les deux. Si tu n'en prends qu'un, la comparaison Xtream vs M3U détaille lequel privilégier selon le cas.