XMLTV IPTV : comprendre le guide EPG, les fichiers XMLTV et tvg-id

XMLTV est un format de données qui permet de décrire les programmes de télévision : noms des chaînes, titres des émissions, horaires et informations complémentaires. Dans un environnement IPTV, un lecteur compatible peut utiliser ces données pour construire un EPG (Electronic Program Guide), c’est-à-dire le guide électronique des programmes affiché à l’écran.

Il faut distinguer trois notions : XMLTV est le format des données, EPG est la fonction d’affichage et tvg-id est un identifiant utilisé dans certaines playlists M3U pour associer une chaîne à ses programmes.

Un fichier XMLTV ne contient pas les vidéos des émissions et ne fournit aucun droit d’accès aux chaînes. Il sert à décrire leur programmation.

Voici comment ces éléments fonctionnent ensemble, avec des exemples fictifs et des références techniques vérifiables.

À retenir

  • XMLTV : format XML décrivant des chaînes et des programmes.
  • EPG : guide des programmes affiché par un lecteur compatible.
  • M3U : playlist contenant notamment des références vers des ressources média.
  • tvg-id : attribut utilisé dans certaines playlists M3U pour faciliter la correspondance avec XMLTV.
  • Lecteur multimédia : application qui interprète les données et construit l’interface du guide.

XMLTV IPTV : à quoi sert ce format ?

XMLTV est un format basé sur XML (Extensible Markup Language), un langage servant à représenter des données structurées.

Dans le cas de XMLTV, ces données décrivent principalement des chaînes et des diffusions de programmes.

Un fichier peut indiquer qu’une émission fictive commence à 20 h, se termine à 21 h, possède un certain titre et appartient à une chaîne identifiée.

Le lecteur peut ensuite utiliser ces informations pour présenter une grille horaire.

Ce que contient un fichier XMLTV

Selon les données disponibles, un fichier XMLTV peut contenir :

  • les identifiants et noms des chaînes ;
  • les titres des programmes ;
  • leurs heures de début et éventuellement de fin ;
  • leurs descriptions ;
  • leurs catégories ;
  • des informations linguistiques ou d’autres métadonnées.

Tous ces éléments ne sont pas obligatoires.

La structure exacte est décrite par la DTD officielle du projet XMLTV. Une DTD, ou Document Type Definition, définit notamment les éléments et attributs autorisés dans un document XML.

Ce que XMLTV ne contient pas

Le format XMLTV n’est pas destiné à transporter directement les vidéos des chaînes.

Il ne garantit pas non plus qu’une ressource média fonctionne, qu’une émission est disponible à la lecture ou que son utilisateur dispose des droits nécessaires.

Une grille de programmes peut être présente alors que la ressource vidéo est inaccessible.

Inversement, un média peut être lisible sans qu’aucune donnée de programmation soit disponible.

XMLTV et EPG : deux notions distinctes

La différence peut être résumée ainsi :

TermeDéfinitionRôle
XMLTVFormat de données XMLDécrire les programmes et leurs métadonnées
EPGGuide électronique des programmesPrésenter les émissions et horaires à l’utilisateur
M3UFormat de playlist texteRéférencer des ressources média
tvg-idConvention d’attribut dans certaines playlists M3UFaciliter l’association avec une chaîne du guide
Lecteur IPTVLogiciel de lecture multimédiaInterpréter les ressources compatibles et afficher l’interface

Un EPG n’utilise pas nécessairement XMLTV. XMLTV est une manière courante de fournir des données de guide, mais la fonction EPG n’est pas limitée à ce seul format.

Comment M3U et XMLTV fonctionnent ensemble

Pour afficher une grille de programmes, le lecteur doit savoir à quelle chaîne correspondent les données reçues.

Cela nécessite de distinguer plusieurs composants.

Le rôle de la playlist M3U

Une playlist M3U décrit des entrées et les ressources auxquelles elles correspondent.

Dans une playlist étendue, une entrée peut également contenir des métadonnées comme un nom affiché ou un identifiant tvg-id.

La playlist ne contient pas nécessairement les horaires des émissions.

Pour approfondir les différents types de playlists, consultez notre article M3U vs M3U8 : différences, UTF-8 et HLS.

Le rôle du fichier XMLTV

Le document XMLTV constitue une source de données supplémentaire.

Il peut décrire une chaîne nommée « Chaîne Exemple A » ainsi que les programmes qui lui sont associés.

Chaque programme référence un identifiant de chaîne.

Le rôle du lecteur

Un lecteur compatible peut effectuer plusieurs opérations :

  1. Charger la playlist M3U.
  2. Charger les données XMLTV.
  3. Identifier les correspondances entre les chaînes et les programmes.
  4. Interpréter les horaires.
  5. Construire le guide affiché à l’utilisateur.

Le comportement exact dépend du logiciel. Certaines applications proposent une association manuelle des chaînes, tandis que d’autres utilisent des règles automatiques.

Schéma de fonctionnement :

Schéma du fonctionnement entre playlist M3U, fichier XMLTV, lecteur multimédia et guide EPG
Schéma du fonctionnement entre playlist M3U, fichier XMLTV, lecteur multimédia et guide EPG
          PLAYLIST M3U
      Nom de chaîne + tvg-id
                 │
                 │
                 ▼
       LECTEUR MULTIMÉDIA
                 ▲
                 │
                 │
          FICHIER XMLTV
    Chaînes + programmes + horaires
                 │
                 ▼
     CORRESPONDANCE DES DONNÉES
                 │
                 ▼
             GUIDE EPG
    Programmes affichés à l'écran

La source du média, le format du fichier et l’affichage du guide sont trois responsabilités distinctes.

Comprendre la structure d’un fichier XMLTV

La définition officielle utilise trois éléments essentiels :

<tv>

<channel>

<programme>

Ils ne remplissent pas les mêmes fonctions.

L’élément racine <tv>

Un document XMLTV possède un élément racine <tv>.

Il contient les données de chaînes et de programmes.

La DTD décrit sa structure par la règle :

tv (channel*, programme*)

Cela signifie qu’un document peut comporter zéro ou plusieurs déclarations de chaînes, suivies de zéro ou plusieurs déclarations de programmes.

Cette précision est importante : la structure XMLTV autorise un document sans programme.

L’élément <channel>

Une déclaration de chaîne peut ressembler à ceci :

<channel id="exemple.a.fr">
  <display-name lang="fr">Chaîne Exemple A</display-name>
</channel>

L’attribut id sert à identifier la chaîne dans les données XMLTV.

Lorsque l’élément <channel> est présent, cet attribut est obligatoire, tout comme la présence d’au moins un élément <display-name> dans la déclaration.

L’élément <programme>

Un programme associe une diffusion à une chaîne et à un horaire.

Exemple :

<programme
  start="20261023180000 +0000"
  stop="20261023190000 +0000"
  channel="exemple.a.fr">
  <title lang="fr">Journal fictif</title>
  <desc lang="fr">Émission pédagogique.</desc>
</programme>

Cet extrait signifie que le programme fictif commence à 18 h UTC le 23 octobre 2026 et se termine à 19 h UTC.

Il est associé à la chaîne exemple.a.fr.

Champs XMLTV : lesquels sont obligatoires ?

Voici les principaux éléments décrits dans la DTD XMLTV.

Élément ou attributFonctionStatut dans la DTD
<tv>Racine du documentObligatoire
<channel>Déclaration de chaîneFacultatif dans le document
id dans <channel>Identifiant de chaîneObligatoire si <channel> est présent
<display-name>Nom de chaîneAu moins un par <channel>
<programme>Programme diffuséFacultatif dans le document
startHeure de débutObligatoire dans <programme>
stopHeure de finFacultatif
channel dans <programme>Identifiant de la chaîne concernéeObligatoire
<title>Titre du programmeAu moins un par <programme>
<desc>Description du programmeFacultatif
lang dans <title>Langue du titreFacultatif

Deux détails sont souvent mal expliqués : l’attribut stop n’est pas systématiquement obligatoire, et un fichier peut être conforme à la structure XMLTV sans contenir de programme.

Ces règles proviennent de la DTD XMLTV officielle.

Exemple d’un fichier XMLTV complet

Structure d'un fichier XMLTV avec balises tv channel programme et horaires
Structure d’un fichier XMLTV avec balises tv channel programme et horaires

Voici un exemple entièrement fictif :

<?xml version="1.0" encoding="UTF-8"?>
<tv>
  <channel id="exemple.a.fr">
    <display-name lang="fr">Chaîne Exemple A</display-name>
  </channel>

  <programme
    start="20261023180000 +0000"
    stop="20261023190000 +0000"
    channel="exemple.a.fr">
    <title lang="fr">Journal fictif</title>
    <desc lang="fr">Émission pédagogique.</desc>
  </programme>

  <programme
    start="20261023190000 +0000"
    channel="exemple.a.fr">
    <title lang="fr">Documentaire fictif</title>
  </programme>
</tv>

Le deuxième programme ne contient pas d’attribut stop.

Cela est permis par la DTD. Le logiciel qui présente la grille doit ensuite gérer cette information de fin absente selon son implémentation.

À retenir : la validité structurelle du fichier et la manière dont un lecteur affiche ses données sont deux questions différentes.

tvg-id : comment les programmes XMLTV sont associés aux chaînes

Correspondance entre tvg-id M3U, identifiant channel XMLTV et programmes EPG
Correspondance entre tvg-id M3U, identifiant channel XMLTV et programmes EPG

Le champ tvg-id est particulièrement important dans l’écosystème des playlists M3U étendues.

Mais il faut éviter une confusion : tvg-id n’est pas un attribut XMLTV défini dans la DTD officielle.

C’est une convention utilisée dans certaines playlists pour faciliter l’association entre une entrée et les données du guide.

Étape 1 — L’identifiant dans la playlist M3U

Prenons cette playlist fictive :

#EXTM3U
#EXTINF:-1 tvg-id="exemple.a.fr",Chaîne Exemple A
https://media.example.com/chaine-a

Le lecteur peut identifier une entrée dont le tvg-id est :

exemple.a.fr

L’adresse est fictive et ne représente pas un flux réel.

Étape 2 — L’identifiant dans XMLTV

Le fichier XMLTV déclare :

<channel id="exemple.a.fr">
  <display-name>Chaîne Exemple A</display-name>
</channel>

La valeur de id correspond à celle de tvg-id.

Étape 3 — Le programme référence cette chaîne

L’élément suivant utilise le même identifiant :

<programme
  start="20261023180000 +0000"
  channel="exemple.a.fr">
  <title>Programme Exemple</title>
</programme>

On obtient donc trois niveaux :

M3U
tvg-id="exemple.a.fr"
          │
          ▼
XMLTV
<channel id="exemple.a.fr">
          │
          ▼
XMLTV
<programme channel="exemple.a.fr">
          │
          ▼
PROGRAMME ASSOCIÉ À LA CHAÎNE

Cette correspondance permet au lecteur de déterminer à quelle entrée de la playlist attribuer les horaires et les titres.

Que se passe-t-il si les identifiants diffèrent ?

Prenons cette fois :

Dans M3U :

tvg-id="exemple.a.hd"

Dans XMLTV :

id="exemple.a.fr"

Les valeurs ne sont pas identiques.

Un lecteur qui exige une correspondance exacte ne pourra pas associer directement ces deux identifiants.

Il peut cependant exister d’autres méthodes de correspondance.

La correspondance doit-elle toujours être exacte ?

Non, ce n’est pas une règle universelle.

La documentation de Kodi IPTV Simple Client décrit plusieurs mécanismes de recherche, notamment les identifiants et les noms des chaînes.

Kodi propose également une option permettant d’ignorer les différences de majuscules et minuscules lors de certaines correspondances EPG.

Source : Kodi IPTV Simple Client — documentation officielle.

Voici les distinctions utiles :

MéthodeExempleLimite
Identifiant exactexemple.a.fr = exemple.a.frNécessite des valeurs cohérentes
Correspondance sans distinction de casseEXEMPLE.A.FR et exemple.a.frDoit être prise en charge par le lecteur
Correspondance par nom« Chaîne Exemple A »Risque d’ambiguïté si plusieurs entrées portent des noms similaires
Association manuelleL’utilisateur choisit une chaîne du guideFonctionnalité dépendante de l’application

La présence de tvg-id améliore la précision de la correspondance lorsque cet identifiant est correctement utilisé.

Mais son absence n’empêche pas automatiquement tous les lecteurs d’afficher un guide.

Pourquoi les noms de chaînes ne suffisent pas toujours

Deux chaînes distinctes peuvent partager un nom affiché très proche.

Par exemple :

« Chaîne Exemple »

et

« Chaîne Exemple HD ».

Si un lecteur s’appuie sur les noms plutôt que sur des identifiants précis, il peut rencontrer une ambiguïté.

L’utilisation d’identifiants stables permet de réduire ce risque, à condition que les données restent cohérentes entre les deux fichiers.

Comment XMLTV représente les horaires

Les dates XMLTV sont indispensables à la construction d’une grille de programmes.

Elles permettent d’identifier le début et, lorsqu’elle est fournie, la fin d’une diffusion.

Lire l’attribut start

Considérons :

start="20261023180000 +0000"

Cette valeur représente :

  • le 23 octobre 2026 ;
  • à 18 h 00 ;
  • avec un décalage UTC de +0000.

Pour la France métropolitaine, cet instant correspond à 20 h 00, car le 23 octobre 2026 se situe encore dans la période d’heure d’été.

Heure d’hiver et heure d’été en France

En France métropolitaine, le fuseau Europe/Paris suit deux décalages principaux :

  • UTC+1 en hiver ;
  • UTC+2 en été.

Le passage à l’heure d’hiver en 2026 intervient le 25 octobre.

Voici quelques conversions pour comprendre le principe :

DateHeure indiquée en UTCHeure locale à Paris
15 janvier 202618:0019:00
15 juillet 202618:0020:00
23 octobre 202618:0020:00
26 octobre 202618:0019:00

Les règles de fuseaux horaires sont documentées dans la Time Zone Database de l’IANA.

Ces conversions concernent la France métropolitaine. Les territoires français situés dans d’autres fuseaux ne suivent pas tous les mêmes règles.

Et si aucun fuseau horaire n’est précisé ?

La documentation de la DTD XMLTV indique que lorsqu’une date ne comporte pas de fuseau explicite, UTC est supposé.

Par exemple :

20261023180000

est interprété, selon cette règle, comme 18 h UTC.

Il ne faut donc pas automatiquement le lire comme 18 h à Paris.

Si une source écrit une heure locale sans son décalage approprié, le guide peut apparaître décalé.

Pourquoi il ne faut pas corriger les horaires au hasard

Un lecteur peut aussi proposer des paramètres de décalage horaire.

Ces paramètres interviennent à un autre niveau que les timestamps fournis dans XMLTV.

Pour comprendre l’origine d’un décalage, il faut distinguer la date enregistrée dans le fichier, sa conversion vers le fuseau local et les éventuelles corrections du lecteur.

Si votre grille présente effectivement un décalage, consultez notre guide spécialisé : EPG IPTV ne fonctionne pas : guide vide et horaires incorrects.

XMLTV, XML et XML.GZ : quelles différences ?

Les appellations peuvent sembler proches, mais elles ne désignent pas exactement la même chose.

XML est le langage de représentation

XML fournit les règles de syntaxe utilisées pour organiser les éléments et les attributs.

XMLTV utilise cette syntaxe pour représenter des données de programmes télévisés.

Un fichier XML quelconque n’est donc pas automatiquement un fichier XMLTV.

.xml désigne habituellement un document XML

Par convention, une source XMLTV peut être disponible sous un nom comme :

guide.xml

Mais l’extension ne suffit pas, à elle seule, à démontrer que le contenu respecte la structure XMLTV.

.xml.gz correspond à des données compressées

Un fichier :

guide.xml.gz

contient généralement un document XML compressé avec Gzip.

Après décompression, les données peuvent conserver exactement la même structure XMLTV.

La compression vise principalement à réduire la quantité de données à transférer ou stocker.

Tous les lecteurs acceptent-ils XMLTV compressé ?

Non, cela dépend du logiciel.

La documentation de Kodi IPTV Simple Client indique explicitement la prise en charge des données XMLTV compressées avec Gzip et XZ.

Cela ne garantit pas que chaque lecteur multimédia accepte ces formats de compression.

Avant d’utiliser une ressource compressée, vérifiez la documentation de votre application.

Une URL XMLTV doit-elle terminer par .xml ?

Pas nécessairement.

Une ressource distante peut être fournie par une URL sans extension apparente.

L’important est le document effectivement récupéré, son éventuelle compression et sa prise en charge par le lecteur.

Un fichier XMLTV valide garantit-il un EPG utilisable ?

Non. C’est une distinction technique essentielle.

Il existe plusieurs niveaux de vérification :

  1. Le document respecte-t-il la syntaxe XML ?
  2. Sa structure respecte-t-elle les règles XMLTV ?
  3. Contient-il des programmes pour les chaînes et horaires concernés ?
  4. Le lecteur peut-il associer et afficher correctement ces données ?

Un succès à la première étape ne garantit pas les suivantes.

Exemple A — XMLTV avec programmes

<?xml version="1.0" encoding="UTF-8"?>
<tv>
  <channel id="exemple.a.fr">
    <display-name>Chaîne Exemple A</display-name>
  </channel>

  <programme
    start="20261023180000 +0000"
    channel="exemple.a.fr">
    <title>Programme Exemple</title>
  </programme>
</tv>

Cet exemple contient une déclaration de chaîne et un programme.

Sa structure correspond aux éléments essentiels prévus par la DTD.

Cela ne garantit pas encore qu’un lecteur externe trouvera une entrée M3U correspondante.

Exemple B — XMLTV valide, mais sans programme

<?xml version="1.0" encoding="UTF-8"?>
<tv>
  <channel id="exemple.a.fr">
    <display-name>Chaîne Exemple A</display-name>
  </channel>
</tv>

Ce document respecte la structure prévue par la DTD XMLTV.

Pourtant, il ne contient aucune émission.

Un lecteur ne peut donc pas afficher de programmes à partir de ces seules données.

La validité du fichier n’est pas la même chose que la présence d’informations utiles.

La DTD permet même un élément <tv> sans aucune déclaration de chaîne ni de programme.

Exemple C — Document XML mal formé

<?xml version="1.0" encoding="UTF-8"?>
<tv>
  <channel id="exemple.a.fr">
    <display-name>Chaîne Exemple A</display-name>
</tv>

Ici, la balise <channel> n’est pas correctement fermée.

Le document ne respecte donc pas la syntaxe XML.

Ce problème est différent de l’absence de programmes dans un fichier correctement formé.

Un autre cas : XML valide, mais identifiants incohérents

Même lorsque XMLTV est correctement structuré, il peut exister des identifiants qui ne correspondent pas à ceux de la playlist.

C’est une erreur de cohérence entre les données, pas nécessairement une erreur de syntaxe XML.

La DTD indique comment représenter les références de chaînes, mais ne garantit pas à elle seule que les valeurs correspondent aux identifiants externes présents dans une playlist M3U.

Tableau des niveaux de validation

Résultat du contrôleCe qu’il confirmeCe qu’il ne garantit pas
XML correctement forméLe document respecte la syntaxe XMLConformité XMLTV
Structure conforme à la DTDLes éléments suivent les règles du formatProgrammes présents
Programmes présentsLe fichier contient des diffusionsProgrammes correspondant à la période recherchée
Identifiants cohérentsLes correspondances peuvent être établiesAffichage identique dans tous les lecteurs
Horaires exploitablesLes données peuvent être interprétées temporellementAbsence d’erreur de configuration dans le lecteur

Cette distinction évite de conclure trop rapidement qu’un XMLTV est entièrement opérationnel parce qu’il peut être ouvert.

Comment les lecteurs interprètent XMLTV

Le comportement d’un lecteur ne doit pas être confondu avec les obligations de la DTD XMLTV.

Un fichier peut respecter les règles du format et donner des résultats différents selon la façon dont l’application charge, associe ou présente les données.

Sources locales et distantes

Certains lecteurs peuvent utiliser un fichier XMLTV enregistré localement.

D’autres récupèrent une source distante.

Kodi IPTV Simple Client documente ces deux approches, ainsi que des possibilités de cache et d’actualisation.

Ces fonctions dépendent de la version et de la configuration.

Correspondance des identifiants

Kodi IPTV Simple Client documente le rapprochement entre tvg-id et les données XMLTV, ainsi que des mécanismes alternatifs reposant sur les noms.

Cela permet d’illustrer une chose importante : une règle d’association décrite par une application n’est pas une obligation universelle du format XMLTV.

Plusieurs sources de guide

Certaines applications peuvent prendre en charge plusieurs sources EPG ou plusieurs configurations.

Kodi IPTV Simple Client documente notamment plusieurs couples de configurations M3U/XMLTV dans les versions appropriées de Kodi.

La capacité à réunir plusieurs sources, à résoudre les doublons ou à sélectionner une source prioritaire dépend toutefois du lecteur.

Pourquoi deux lecteurs peuvent afficher des résultats différents

Les causes possibles comprennent :

  • des règles de correspondance différentes ;
  • une gestion différente des dates ;
  • une fenêtre temporelle d’affichage différente ;
  • des méthodes d’actualisation distinctes ;
  • des limitations liées aux données ou aux fichiers pris en charge.

Il faut éviter de présenter ces différences comme des comportements universels.

Comment vérifier un XMLTV sans exposer vos données

Vous pouvez examiner la structure d’un fichier XMLTV sans publier sa source ou son contenu complet sur Internet.

Les cinq vérifications essentielles

Cinq vérifications d'un fichier XMLTV : syntaxe structure programmes identifiants et horaires
Cinq vérifications d’un fichier XMLTV : syntaxe structure programmes identifiants et horaires
ÉtapeQuestionRésultat attendu
1 — SyntaxeLe document peut-il être analysé comme XML ?Aucune erreur de syntaxe
2 — StructureLes éléments correspondent-ils à XMLTV ?Structure conforme au format attendu
3 — ProgrammesExiste-t-il des <programme> ?Données de diffusion présentes
4 — CorrespondanceLes identifiants correspondent-ils à ceux de la playlist ?Association exploitable par le lecteur
5 — HorairesLes programmes couvrent-ils la période recherchée ?Dates et heures pertinentes

Si vous utilisez un outil de validation, vérifiez ce qu’il analyse réellement.

Un outil qui reçoit uniquement le fichier XMLTV ne peut pas confirmer les correspondances avec une playlist M3U qu’il n’a jamais consultée.

Privilégier une inspection locale

Pour les fichiers privés, il est préférable de travailler sur une copie locale et d’éviter les validateurs inconnus qui demandent d’envoyer l’ensemble des données à un serveur.

Les adresses de téléchargement peuvent contenir des paramètres sensibles, par exemple des jetons d’accès.

Ne partagez jamais publiquement ces valeurs.

La sécurité des fichiers XML

Un fichier XML provenant d’une source inconnue ne doit pas être considéré comme automatiquement sûr.

Certains parseurs XML mal configurés peuvent traiter des entités externes et créer des risques de divulgation ou d’accès indésirable à des ressources.

La documentation OWASP recommande notamment de désactiver la résolution des entités externes et de limiter les ressources consommées lors de l’analyse des documents XML non fiables.

Référence : OWASP — XML External Entity Prevention.

Cette précaution concerne surtout les outils qui analysent les fichiers, notamment lorsqu’ils sont développés pour un site Web.

Respecter les droits sur les données

Une source XMLTV accessible publiquement n’est pas automatiquement librement réutilisable ou redistribuable.

Les conditions de licence et les droits applicables aux données doivent être vérifiés séparément.

ParisIPTV privilégie les exemples fictifs et les sources auxquelles l’utilisateur dispose d’un accès légitime.

Quand faut-il passer au dépannage de l’EPG ?

Cet article explique comment XMLTV représente les programmes et comment un lecteur peut les associer aux chaînes.

Il ne remplace pas un diagnostic lorsqu’une installation présente une panne réelle.

Si vous rencontrez l’un de ces symptômes :

  • le guide est entièrement vide ;
  • certaines chaînes affichent « No Information » ;
  • les émissions sont attribuées aux mauvaises chaînes ;
  • les horaires sont décalés ;
  • les programmes ne s’actualisent plus ;

le problème nécessite des vérifications spécifiques sur les sources, les identifiants ou la configuration temporelle.

Utilisez alors le guide EPG IPTV ne fonctionne pas : corriger un guide vide, « No Information » ou des horaires décalés.

Si c’est la playlist M3U elle-même qui est refusée avant l’affichage des chaînes, consultez plutôt Playlist M3U ne se charge pas : diagnostic et solutions.

Questions fréquentes sur XMLTV IPTV

XMLTV et EPG sont-ils la même chose ?

Non. XMLTV est un format de données décrivant notamment les chaînes et leurs programmes. L’EPG est le guide électronique présenté à l’utilisateur. Un lecteur peut utiliser XMLTV pour alimenter son EPG, mais le guide n’est pas limité à ce seul format.

Un fichier XMLTV contient-il des vidéos ?

Non. XMLTV décrit des informations de programmation. Il ne fournit pas automatiquement des ressources vidéo, des chaînes ou des autorisations de lecture.

XMLTV fonctionne-t-il avec M3U et M3U8 ?

Oui, lorsqu’un lecteur compatible permet d’associer les entrées d’une playlist à des données XMLTV. L’extension de la playlist ne détermine pas à elle seule le fonctionnement du guide.

Le champ tvg-id est-il obligatoire ?

Il n’est pas obligatoire dans la DTD XMLTV, car il ne fait pas partie de ce format. tvg-id est une convention utilisée dans certaines playlists M3U. Certains lecteurs peuvent également rapprocher les chaînes par leur nom ou par une autre méthode.

Un fichier XMLTV peut-il être valide sans programme ?

Oui. La DTD XMLTV autorise un document ne contenant aucune entrée <programme>. Ce fichier peut être conforme à la structure du format, tout en n’apportant aucune émission à afficher dans le guide.

Pourquoi certains guides XMLTV utilisent-ils l’extension .xml.gz ?

Parce que le document XMLTV est compressé avec Gzip. Après décompression, il retrouve sa structure XML. Les lecteurs ne prennent pas tous en charge les mêmes formats de compression.

Peut-on utiliser plusieurs sources XMLTV ?

Cela dépend du lecteur. Certaines applications prennent en charge plusieurs configurations ou sources, mais la façon de les associer, de gérer les conflits et de prioriser les données relève de leur implémentation. Il faut consulter la documentation du logiciel concerné.

Sources consultées

1. XMLTV Project — DTD officielle xmltv.dtd
Référence principale pour la structure XMLTV, les éléments obligatoires et facultatifs, les attributs des programmes et les règles d’interprétation des dates.
https://github.com/XMLTV/xmltv/blob/master/xmltv.dtd

2. Kodi Wiki — PVR IPTV Simple Client
Documentation des relations entre playlists M3U, identifiants tvg-id, noms des chaînes et données XMLTV dans ce lecteur.
https://kodi.wiki/view/Add-on:PVR_IPTV_Simple_Client

3. Kodi — PVR IPTV Simple Client, dépôt officiel
Documentation technique complémentaire des configurations XMLTV, des mécanismes de correspondance et des formats compressés pris en charge.
https://github.com/kodi-pvr/pvr.iptvsimple

4. IANA — Time Zone Database
Référence relative aux fuseaux horaires et aux règles de conversion temporelle.
https://www.iana.org/time-zones

5. OWASP — XML External Entity Prevention Cheat Sheet
Recommandations de sécurité relatives à l’analyse de documents XML provenant de sources non fiables.
https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html

Méthodologie : les exemples XMLTV et M3U sont des exemples pédagogiques fictifs. Les règles de structure ont été confrontées à la DTD officielle et les affirmations propres à Kodi à sa documentation. Aucun essai manuel dans une application particulière n’est revendiqué.

Dernière vérification éditoriale : 23 octobre 2026.

Découvrez nos offres techniques

Explorez nos solutions techniques et trouvez les ressources adaptées à vos besoins.

Mises à jour de la newsletter

Saisissez votre adresse e-mail ci-dessous et abonnez-vous à notre newsletter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *