Presque tous les signalements « mon EPG ne marche pas » sont en réalité des problèmes d'association. Le guide s'est téléchargé correctement. Il n'a simplement pas su à quelle chaîne de votre liste appartenait chaque programme. Une fois qu'on a vu comment cette décision se prend, la solution est généralement évidente — et prend souvent trente secondes.
Deux fichiers qui doivent s'accorder sur des noms
Une installation IPTV repose sur deux documents indépendants. La playlist liste vos chaînes et où les lire. Le guide XMLTV liste des chaînes et ce qui y passe. Rien ne relie les deux, sinon un identifiant commun — et les deux fichiers sont en général produits par des personnes différentes qui ne se sont jamais concertées.
Une entrée de playlist ressemble à ceci :
#EXTINF:-1 tvg-id="TF1.fr" tvg-name="TF1 HD" tvg-logo="https://…/tf1.png" group-title="France",TF1 HD
https://exemple.com/live/user/pass/12345.m3u8 Et le guide déclare ses chaînes ainsi :
<channel id="TF1.fr">
<display-name>TF1</display-name>
</channel>
<programme start="20260804203000 +0200" stop="20260804220000 +0200" channel="TF1.fr">
<title>Journal de 20h</title>
</programme>
Ici tvg-id="TF1.fr" et id="TF1.fr" sont identiques : le programme
atterrit sur la bonne chaîne. Changez un seul des deux côtés en TF1,
tf1.fr ou TF1.FR et, avec une association naïve, le guide devient
vide pour cette chaîne alors que les deux fichiers restent parfaitement valides.
Ce que fait vraiment chaque attribut M3U
-
tvg-id— l'identifiant censé correspondre à l'idXMLTV. C'est le seul champ conçu pour une association automatique. Quand il est juste, le reste n'a plus d'importance. -
tvg-name— un nom utilisé pour l'association quand l'identifiant est absent ou inconnu. C'est souvent lui qui porte le bruit :TF1 HD,TF1 FHD,|FR| TF1. -
tvg-logo— le logo de la chaîne. Aucun effet sur le guide, malgré la fréquence à laquelle on l'accuse. -
group-title— la catégorie d'affichage. Sans rapport non plus avec l'association du guide. - Le texte après la dernière virgule — le nom affiché dans la liste des
chaînes. Utilisé en dernier recours quand
tvg-nameest absent.
La chaîne d'association, étape par étape
OneTV Connect les parcourt dans cet ordre et s'arrête à la première réponse sûre.
- Identifiant exact. Le
tvg-idde la chaîne face à l'idXMLTV. Peu coûteux, sans ambiguïté, et c'est ainsi que la plupart des chaînes se résolvent. - Identifiant normalisé. La même comparaison, casse et séparateurs aplatis, de
sorte que
TF1.frettf1.FRcessent d'être deux chaînes distinctes. - Nom normalisé. Les deux côtés sont débarrassés des accents, de la
ponctuation, des préfixes de pays et des suffixes de qualité —
HD,FHD,UHD,4K,SD— puis comparés. C'est ce qui sauve une playlist totalement dépourvue d'identifiants exploitables. - Association manuelle. Tout ce que vous avez associé vous-même l'emporte sur tout le reste, définitivement.
Plusieurs sources EPG peuvent être actives en même temps, et elles s'empilent au lieu de se concurrencer : la première source qui possède un programme pour une chaîne et un horaire donnés est utilisée, les autres comblent les trous. Une source peut aussi être rattachée à des playlists précises, ce qui compte quand deux fournisseurs emploient les mêmes identifiants génériques pour des chaînes différentes.
Pourquoi une correspondance évidente est refusée
L'association par nom est l'étape où une implémentation naïve fait de vrais dégâts. Un mauvais programme affiché avec assurance est pire qu'une case vide : il fait rater ce qu'on voulait voir, et il empoisonne silencieusement tout ce qui se construit au-dessus du guide, comme le replay ou la détection de match.
L'étape par nom est donc volontairement prudente. Elle refuse une association quand :
- Les nombres ne coïncident pas. « Sport 1 » ne peut pas correspondre à « Sport 2 ». Les chiffres portent du sens dans un nom de chaîne et ne sont jamais traités comme du bruit.
- Le candidat n'est pas unique. Si deux entrées du guide se normalisent vers le même nom, aucune n'est retenue : impossible de savoir laquelle vous vouliez.
- Le meilleur candidat ne devance pas nettement le suivant. Quand les deux premiers se valent, c'est un tirage au sort — et un tirage au sort n'est pas une correspondance.
C'est pourquoi une chaîne évidente à vos yeux peut rester non associée : vous connaissez les conventions de nommage de votre fournisseur, l'algorithme n'a que deux chaînes de caractères.
Associer une chaîne à la main
Appui long sur la chaîne, puis Associer à l'EPG. Vous obtenez la liste consultable de toutes les chaînes déclarées par le guide chargé — le catalogue brut de la source, et pas seulement les entrées déjà associées à quelque chose, de sorte que vous puissiez retrouver celle que la passe automatique a écartée. Vous la choisissez et le guide se remplit immédiatement.
Modifier l'association EPG change un choix existant, Supprimer l'association EPG rend la chaîne à l'association automatique. Les associations se synchronisent entre vos appareils via iCloud : un Apple TV et un iPhone restent d'accord, et elles survivent aux rafraîchissements de playlist.
L'approche pragmatique : n'essayez pas d'associer deux cents chaînes. Associez les dix que vous regardez vraiment, laissez le reste à la passe automatique, et revenez-y si vous tombez régulièrement sur une chaîne non associée.
Garder une playlist associable
Si vous construisez ou modifiez votre M3U, trois habitudes évitent l'essentiel des ennuis :
- Mettez dans
tvg-idexactement ce qu'utilise votre source EPG. Copiez les valeursiddepuis le fichier XMLTV plutôt que d'inventer votre propre convention. - Pas de marqueur de qualité dans
tvg-id.TF1.fr, pasTF1.fr.HD. La qualité a sa place dans le nom affiché. - Choisissez la source EPG d'abord, la playlist ensuite. Il est bien plus simple d'aligner des identifiants sur un guide qu'on a choisi que de chercher un guide qui colle par hasard à une playlist générée par quelqu'un d'autre.
Questions fréquentes
Quelle différence entre tvg-id et tvg-name ?
tvg-id est censé être un identifiant stable partagé avec le fichier EPG, du type TF1.fr ou bbc-one.uk. tvg-name est un nom lisible, utilisé quand aucun identifiant ne correspond. L'association par identifiant est exacte et fiable ; l'association par nom est une approximation qui doit survivre aux suffixes HD, aux accents et aux variantes régionales.
Ma playlist n'a aucun tvg-id. Puis-je quand même avoir un guide ?
Oui. Sans identifiant, l'app compare les noms de chaînes normalisés aux noms déclarés dans le fichier XMLTV, ce qui résout la plupart des chaînes grand public. Tout ce qui reste ambigu est volontairement laissé non associé plutôt que rattaché à la mauvaise chaîne, et vous pouvez associer ces cas à la main.
Pourquoi une association qui me paraît évidente est-elle refusée ?
Parce qu'une mauvaise association est pire qu'aucune. « Sport 1 », « Sport 2 » et « Sports 1 » ne diffèrent que d'un caractère, et un guide qui affiche la mauvaise correspondance induit en erreur là où une case vide ne trompe personne. L'association exige que les nombres du nom coïncident et que le meilleur candidat devance nettement le suivant.
Les associations manuelles survivent-elles à un rafraîchissement de playlist ?
Oui. Une association manuelle est enregistrée sur la chaîne et synchronisée via iCloud : elle survit à un rafraîchissement, à une réinstallation et passe sur un second appareil. C'est pour cela qu'il vaut la peine de corriger une fois vos dix chaînes importantes.
Si votre guide reste vide après association, le problème se situe en amont : commencez par la check-list de chargement EPG. Choisir une source aux identifiants propres pour votre pays simplifie tout le reste : les sources XMLTV par pays. Et si votre fournisseur est en Xtream, vous n'avez peut-être pas besoin de fichier XMLTV du tout — comparez les deux approches.