L'EPG IPTV XMLTV est probablement la couche la plus mal comprise de tout l'ecosysteme IPTV grand public. Tout le monde la veut, peu de gens savent comment elle marche, et la moitie des incidents support qui arrivent sur le WhatsApp d'Abonnement IPTV au +44 7853 730 142 concernent une grille horaire vide ou decalee. Ce guide d'ingenieur 2026 retrace l'histoire de l'EPG du DVB-SI EIT broadcast jusqu'au fichier xmltv.xml.gz parse par IPTV Smarters Pro ou TiviMate, decortique la DTD xmltv.dtd, explique le mapping tvg-id vs channel id, et donne les bons reflexes pour ne plus jamais avoir une grille a moitie vide.
1. EPG, DVB-SI EIT et naissance du standard XMLTV
L'EPG (Electronic Program Guide) est ne avec le DVB (Digital Video Broadcasting) au milieu des annees 1990. Dans le standard DVB-SI (Service Information, normalise ETSI EN 300 468), un multiplex broadcast TNT, satellite ou cable porte plusieurs tables SI sur des PID reserves. La table EIT (Event Information Table), transmise sur le PID 0x12, contient deux variantes : EIT now/next (le programme en cours et le suivant pour chaque chaine du multiplex) et EIT schedule (la grille complete sur 7 a 14 jours selon l'operateur). C'est exactement ce qui peuple la grille horaire de votre vieux decodeur TNT.
En IPTV, il n'y a pas de multiplex DVB, donc plus de table SI sur PID 0x12. L'industrie a alors invente un equivalent portable : le format XMLTV, specifie sur wiki.xmltv.org, un simple fichier XML conforme a la DTD xmltv.dtd qui decrit la meme information (chaines + programmes + horaires) mais sous forme texte. Le serveur IPTV genere ce fichier, le compresse en gzip, l'expose sur une URL HTTP type http://serveur:port/xmltv.php, et l'application client (Smarters, TiviMate, MyTVOnline) le telecharge puis le parse en memoire pour reconstruire la grille EPG.
2. XMLTV vs JSON guides vs DVB-SI streams : pourquoi XMLTV domine
Trois formats EPG coexistent en 2026 :
- DVB-SI EIT reste le standard hertzien et satellite. Inutilisable en IPTV pur (pas de multiplex).
- JSON guides (utilises par les apps OTT type Netflix, myCanal) sont propres et compacts mais proprietaires, chaque editeur a son schema, aucune compatibilite inter-app.
- XMLTV est universel, libre, documente publiquement depuis 2003, parseable par Smarters, TiviMate, MyTVOnline, Kodi, VLC, et toute la chaine open-source.
XMLTV gagne en IPTV pour trois raisons. Il est autonome (un seul fichier contient tout), compressible (gzip divise le poids par 4 a 8), et lisible humainement (vous pouvez ouvrir l'XML dans Sublime Text pour debugger). C'est aussi le seul format que les operateurs IPTV peuvent generer simplement depuis une base de programmes interne sans negocier avec un fournisseur tiers.
3. Format XMLTV technique : DTD, noeuds channel et programme
La DTD xmltv.dtd definit la structure du fichier. La racine est <tv> avec des attributs optionnels (source-info-url, source-info-name, generator-info-name). En dessous, deux types de noeuds enfants :
<channel> avec un attribut obligatoire id (chaine unique, ex. id="TF1.fr"), et des enfants <display-name> (nom lisible humainement, possible en plusieurs langues via l'attribut lang), <icon src="..."> (URL du logo, equivalent du tvg-logo M3U), et optionnellement <url> (page web de la chaine).
<programme> avec trois attributs obligatoires : start, stop, channel (qui doit matcher un channel/@id). Les attributs start et stop suivent un format ISO 8601 condense : YYYYMMDDhhmmss suivi d'un offset, ex. 20260614200000 +0200 pour 20h00 le 14 juin 2026 a Paris en heure d'ete (CEST). Les enfants typiques : <title>, <sub-title>, <desc>, <date> (annee de production), <category>, <icon> (affiche du programme), <rating system="CSA"> (-10, -12, -16, -18), <star-rating> (note critique), et l'extension Gracenote <episode-num system="xmltv_ns">.
Le namespace Gracenote ajoute des champs propres comme <episode-num system="gracenote_xmltvid"> ou <icon system="gracenote"> pour les apps qui exploitent les metadata commerciales TMS. C'est rare dans le monde IPTV grand public.
L'encodage du fichier doit etre UTF-8 strict, declare dans l'XML prologue <?xml version="1.0" encoding="UTF-8"?>. Tout fichier publie en ISO-8859-1 (Latin-1) cassera les accents francais dans Smarters Pro sous Android 14.
4. Sources EPG XMLTV publiques et commerciales
Avant de plonger dans l'URL fournie par votre operateur, voici l'ecosysteme public :
- Schedules Direct (schedulesdirect.org), commercial US, environ 35 USD/an. Couverture US/CA, partiellement UK. Donnees enrichies Gracenote/TMS. Inadapte aux chaines FR exclusives IPTV.
- epg.pw, freemium multilingue. Couverture EU (FR, DE, IT, ES, PT) et Amerique latine. Bon fallback pour les chaines hertziennes.
- xmltv.net, communautaire, qualite variable selon les pays.
- Gracenote/TMS (Tribune Media Services), commercial premium B2B, utilise par les chaines elles-memes et les telcos.
Aucune de ces sources publiques ne couvre les 22 000 chaines d'un bouquet IPTV multi-pays. Elles servent au mieux a depanner sur 200 a 500 chaines hertziennes.
5. La source EPG XMLTV chez votre fournisseur
Votre operateur Abonnement IPTV publie une URL XMLTV dediee generee a partir de sa base interne, synchronisee avec les ID des chaines de son M3U. Format typique :
http://votre-cdn.exemple.tv:8080/xmltv.php?username=xxx&password=yyy
L'endpoint xmltv.php est une convention Xtream Codes : il sert un fichier xmltv.xml.gz compresse pour les 22 000 chaines sur 4 a 7 jours de grille selon le forfait. Le poids varie entre 5 Mo gzippe pour 1000 chaines sur 3 jours et 22 Mo gzippe pour 22 000 chaines sur 7 jours, decompresses respectivement vers 50 Mo et 180 Mo d'XML brut en RAM. C'est ce volume qui explique pourquoi les Smart TV bas de gamme avec 512 Mo de RAM peinent a afficher autre chose que le EIT now/next (programme en cours et suivant).
Pour comprendre comment cette URL s'integre dans un setup Xtream Codes complet, lisez notre guide IPTV Smarters Pro qui detaille la chaine player_api.php + xmltv.php cote Smarters.
6. Parsers EPG par application : Smarters, TiviMate, MyTVOnline, Kodi
Les performances de parsing varient enormement selon l'app et le SoC :
- IPTV Smarters Pro 3.1.x (Android) : parser DOM Java, charge 4 a 7 jours de grille. 38 secondes sur Amlogic S905X4, 22 secondes sur S922X, 18 secondes sur Tegra X1+ Shield TV Pro pour 22 000 chaines.
- TiviMate Premium 5.x : parser SAX streaming natif C++, le plus rapide du marche. 12 secondes sur S905X4, 8 secondes sur S922X, 6 secondes sur Tegra X1+. Compatible Android TV uniquement.
- MyTVOnline 3 sur boitier Formuler Z11 Pro Max (Hisilicon optimise) : 9 secondes, parser maison ultra-leger.
- Kodi PVR IPTV Simple Client : indexation SQLite locale, 55 secondes initiale puis quasi-instantanee sur les rafraichissements. Plus lent au demarrage, plus rapide en navigation longue.
Pour le tuning matériel cote Fire OS 8, le Fire TV Stick 4K Max gen 2 parse l'EPG XMLTV en environ 22 secondes — un bon compromis. L'Apple TV 4K A15 Bionic descend a 8 secondes grace au parser Swift natif de Smarters Player.
7. Auto-refresh EPG : intervalles et fenetres de cache
Le rafraichissement automatique evite que la grille n'expire. Recommandations 2026 :
- IPTV Smarters Pro : Settings > General Settings > Automation > EPG Auto Update Interval = 12 heures. Deux refresh par jour, suffisant pour rattraper les modifications de derniere minute (sport, JT speciaux).
- TiviMate : Settings > EPG > Auto-update = 6 hours (Premium uniquement). Plus agressif, utile pour les chaines sport a programmation tardive.
- MyTVOnline 3 : 24 heures par defaut, modifiable a 8 heures.
- Kodi PVR IPTV Simple : 24 heures recommandee pour menager le SQLite.
Au-dela de 24 heures, vous risquez d'avoir une grille decalee si l'operateur ajuste son fichier. Au-dela de 4 refresh/jour, vous saturez inutilement le serveur du fournisseur.
8. Configurer EPG XMLTV dans IPTV Smarters Pro
Procedure exacte pour ajouter manuellement une URL XMLTV externe en mode M3U (en Xtream Codes API, c'est automatique).
- Lancez Smarters Pro. Depuis l'ecran d'accueil, ouvrez le menu Settings (icone roue dentee).
- Choisissez General Settings.
- Selectionnez la rubrique EPG.
- Tapez Add EPG.
- Champ Name : libre (ex.
EPG Abonnement IPTV). - Champ EPG URL : collez l'URL XMLTV recue par WhatsApp au +44 7853 730 142. Format type
http://serveur:port/xmltv.php?username=xxx&password=yyy. Aucun slash final, pas de.xmlajoute manuellement. - Champ Time Shift : laissez 0 si les timestamps sont en UTC pur. Mettez +1 pour CET hiver, +2 pour CEST ete si le serveur publie en heure locale Paris sans offset.
- Validez Add. Le telechargement commence, vous voyez une barre de progression de 0 a 100 %.
- Une fois charge, Settings > General Settings > Automation > EPG Auto Update Interval = 12 hours.
Le premier parse prend entre 18 et 38 secondes selon le SoC. La grille s'affiche ensuite dans Live TV avec les programmes par chaine.
9. Mapping channel-id : tvg-id M3U vs id XMLTV
Le piege le plus frequent. Votre playlist M3U porte sur chaque chaine un attribut tvg-id, ex. :
#EXTINF:-1 tvg-id="TF1.fr" tvg-logo="..." group-title="France",TF1 HD
Votre fichier XMLTV declare une chaine ainsi :
<channel id="TF1.fr">
<display-name lang="fr">TF1</display-name>
<icon src="https://.../tf1.png"/>
</channel>
Et chaque programme reference cette chaine :
<programme start="20260614200000 +0200" stop="20260614210000 +0200" channel="TF1.fr">
<title lang="fr">Journal de 20h</title>
</programme>
Si tvg-id du M3U et channel/@id du XMLTV sont strictement identiques (sensible a la casse), l'app fait le rapprochement automatiquement. Si l'un dit TF1.fr et l'autre tf1.fr ou TF1HD.fr, aucun mapping, la grille reste vide pour cette chaine. Smarters Pro et TiviMate ne font pas de fuzzy matching.
Solution dans Smarters : Live TV > long-press sur la chaine > Select EPG. La liste des channel/@id du XMLTV s'affiche, vous selectionnez celui qui correspond. Le mapping est sauvegarde localement.
Solution dans TiviMate : Edit Group > EPG ID > selection manuelle.
C'est exactement pour ca que l'EPG XMLTV fourni par votre operateur est meilleur que les sources publiques : le tvg-id du M3U et le channel/@id du XMLTV sont generes ensemble, donc parfaitement aligned.
10. Catchup TV via EPG : timestamp + URL stream historique
Un EPG XMLTV complet permet aussi le catchup TV (rejouer un programme passe). L'app utilise le timestamp start du noeud programme, construit une URL stream historique via une convention Xtream Codes :
http://serveur:port/streaming/timeshift.php?username=xxx&password=yyy&stream=ID&start=2026-06-14:20-00&duration=60
Le serveur renvoie alors le flux du programme demande comme s'il etait en live, avec un buffer de 60 minutes. Smarters Pro affiche un bouton Catchup sous le programme passe quand l'operateur supporte cette fonctionnalite. La fenetre de catchup varie entre 24 heures et 7 jours selon le forfait. La grille EPG XMLTV est indispensable pour declencher cette fonction — sans elle, l'app n'a aucun timestamp a passer au serveur.
11. Now/Next vs full grid : compromis RAM
Sur une Smart TV bas de gamme avec 512 Mo de RAM (modeles entry-level), l'app ne peut pas charger 180 Mo d'XML decomprime. Le firmware fallback est alors le mode EIT now/next : seuls le programme en cours et le suivant sont demandes au serveur via une endpoint dediee. C'est le comportement par defaut de Smarters Lite sur LG Smart TV webOS anciens modeles, et de certaines Samsung Tizen 6.
Sur un Fire TV Stick 4K Max gen 2 (2 Go RAM), un Apple TV 4K gen 3 (4 Go RAM) ou une boite Android Amlogic S922X (4 Go RAM), aucun probleme pour charger la grille complete 7 jours. Si vous utilisez encore un decodeur a 512 Mo de RAM, basculez sur un dongle moderne — la difference est radicale.
12. Depannage EPG XMLTV : check-list operationnelle
Cinq cas vus quotidiennement cote support Abonnement IPTV.
XMLTV URL expiree. Si votre abonnement a expire, l'URL renvoie un 401 ou 403. Verifiez en collant l'URL dans un navigateur depuis votre PC : un fichier xmltv.xml.gz doit se telecharger. Si erreur, contactez WhatsApp.
Encoding casse. Caracteres accentues francais affiches en é ou à au lieu de e et a : le fichier est en ISO-8859-1 et non en UTF-8. Cote serveur, le bug doit etre signale. Cote app, aucun fix client viable.
Timezone offset manquant. Programmes decales d'une heure : voir la FAQ ci-dessus, ajustez Time Shift dans Smarters ou TiviMate.
Channel-id mismatch. Grille vide pour 30 % des chaines : faites le mapping manuel via long-press Live TV.
Parser timeout sur SoC faible. Sur Amlogic S905 (gen 1, 2017) avec 1 Go de RAM, le parser DOM Java de Smarters peut timeout au-dela de 40 Mo gzippe. Solution : demandez a votre operateur une version "EPG light" (3 jours x chaines FR seulement, environ 8 Mo gzippe).
Pour les diagnostics reseau et serveur plus larges, consultez notre guide IPTV France et la page test IPTV pour valider votre acces avant de creuser cote EPG.
13. Tarifs Abonnement IPTV avec EPG XMLTV France complet
Tout abonnement chez Abonnement IPTV inclut systematiquement l'URL XMLTV France 4-7 jours pour les 22 000 chaines du bouquet, livree dans le meme message WhatsApp que vos codes Xtream Codes :
- 3 mois — 22 euros (~ 7,33 euros/mois)
- 6 mois — 39 euros (~ 6,50 euros/mois)
- 12 mois — 49 euros (~ 4,08 euros/mois) — formule la plus populaire
- 24 mois — 79 euros (~ 3,29 euros/mois)
Inclus : EPG XMLTV France 7 jours, mapping channel-id parfait avec le M3U, encodage UTF-8 strict, timestamps ISO 8601 avec offset explicite +0100 (CET) / +0200 (CEST), refresh serveur toutes les 6 heures cote backend, support technique francophone 7j/7 au +44 7853 730 142, garantie 7 jours satisfait ou remboursé.
Pour comparer les formules et choisir, consultez IPTV Premium et la page d'accueil /. Pour les guides d'installation par app, voyez application IPTV. Les references techniques externes : la specification XMLTV sur wiki.xmltv.org, le miroir officiel Smarters Pro sur iptvsmarters.com, et le site editeur de TiviMate sur tivimate.com.
En 2026, l'EPG IPTV XMLTV reste la colonne vertebrale invisible d'un bon setup IPTV. C'est elle qui transforme une simple liste de chaines en grille TV navigable, qui declenche le catchup, qui peuple les widgets recommandation. Maitriser la DTD xmltv.dtd, le mapping tvg-id, le bon parser pour votre SoC et les bons reflexes de timezone change un "ca marche a moitie" en "ca marche partout". Couplez une URL XMLTV serieuse a une app moderne (Smarters Pro, TiviMate, MyTVOnline 3), et vous obtenez une experience plus polie que la plupart des box operateur historiques.



