Aller au contenu

Guide des programmes (EPG)

Un client qui appuie sur la touche guide s’attend à voir ce qui passe maintenant, ensuite et ce soir. Sans informations de programmes, le téléviseur affiche une grille vide, ce qui se remarque bien plus que la plupart des pannes de tête de réseau.

Castmux le renseigne à partir de XMLTV, le format d’échange courant des données de guide. Vous ajoutez une ou plusieurs sources XMLTV et associez chaque chaîne à son entrée dans le guide. Dès lors, l’appareil maintient les données du guide à jour et les envoie aux téléviseurs sous forme de tables d’information d’événements DVB (EIT), comme le fait un diffuseur. Un décodeur n’a besoin d’aucune configuration pour les afficher.

Tout se configure sur la page EPG de l’interface web.

Une source est l’URL d’un fichier XMLTV, tel que publié par un fournisseur de guide. Les guides compressés (.gz) sont acceptés tels quels.

Lorsqu’une source est ajoutée, Castmux la récupère et lit sa liste de chaînes : l’identifiant de guide de chaque chaîne (par exemple rtl.de) et son nom d’affichage. Il n’enregistre pas encore les programmes. Un fichier XMLTV peut peser des centaines de mégaoctets, et les programmes de chaînes que personne n’a associées ne valent pas l’espace de stockage.

Une source peut être renommée, pointée vers une nouvelle URL ou supprimée. Supprimer une source efface ses données de guide enregistrées. Les chaînes qui lui étaient associées conservent leur identifiant de guide jusqu’à ce que vous l’effaciez ; une source de remplacement utilisant les mêmes identifiants reprend donc là où l’ancienne s’était arrêtée.

Chaque chaîne est associée à un identifiant de guide issu des listes importées. La page EPG propose les identifiants au fil de la saisie. L’association est enregistrée sur la chaîne elle-même, sous epg_id dans le fichier de configuration ; elle est donc sauvegardée et restaurée avec les autres réglages de la chaîne.

Une chaîne sans association ne transporte aucune donnée de guide. L’association se fait chaîne par chaîne : un site peut associer les chaînes qui disposent de données de guide et laisser les autres de côté.

Chaque source est récupérée de nouveau toutes les heures. À chaque synchronisation, les programmes sont enregistrés uniquement pour les identifiants de guide auxquels au moins une chaîne est associée. Tout le reste du fichier est lu puis écarté sans toucher au disque. Les programmes terminés sont purgés, de sorte que le stockage ne contient que ce qui passe maintenant et ce qui est encore à venir.

Sync now sur une source la récupère immédiatement et rend compte du résultat réel : c’est le bouton à utiliser après avoir ajouté une source ou modifié une association. Cela peut prendre quelques minutes sur un guide volumineux.

Les données du guide sont enregistrées dans un petit fichier de base de données, epg.db, à côté du fichier de configuration.

Pour chaque chaîne associée, l’appareil écrit les programmes en cours et à venir sous forme d’EIT et les ajoute au transport stream de la chaîne. Cela couvre à la fois les informations « maintenant et ensuite » et la programmation plus lointaine. Cela fonctionne sur la sortie multicast et en DVB-C : une chaîne transportée dans un multiplex conserve son EIT, renumérotée vers son service dans ce multiplex.

Les détails à connaître :

  • Les horaires du guide proviennent de l’horloge de l’appareil. Maintenez l’heure de l’appareil exacte, par exemple avec NTP. Une horloge système fausse affiche le mauvais programme comme « en cours » sur chaque téléviseur.
  • Les mises à jour atteignent les chaînes en cours sans redémarrage. L’EIT est relue à mesure que les données du guide changent : une synchronisation horaire apparaît à l’écran en quelques secondes, sans interrompre aucune chaîne.
  • Une chaîne nouvellement associée commence à transporter l’EIT à son prochain démarrage. Associez la chaîne, lancez Sync now, puis redémarrez la chaîne : désactivez-la puis réactivez-la, ou appelez POST /api/channels/{id}/restart.
  • Une chaîne associée sans programmes affiche un créneau libellé. Si le guide n’a encore rien pour une chaîne, ou a cessé de la lister, le téléviseur affiche “No information available” par blocs de quatre heures au lieu d’un guide vide, et la chaîne continue d’être diffusée.
  • Les caractères accentués exigent le bon jeu de caractères. Par défaut, le texte du guide est encodé dans le jeu de caractères DVB par défaut, que certains récepteurs décodent mal, typiquement sous forme de trémas cassés. Réglez le jeu de caractères EPG dans Settings (epg_charset sous global.dvb) selon ce qu’attendent les récepteurs du site. ISO-8859-15 convient à l’Europe de l’Ouest, et un parc de récepteurs récents peut utiliser UTF-8.

La fiche de chaque chaîne associée sur la page Channels indique ce qui passe maintenant et ensuite, ce qui permet de vérifier une association sans téléviseur à portée de main. Une chaîne associée qui n’a rien à l’antenne en ce moment l’indique, et ce n’est pas une panne : les guides ont des trous.

La page EPG liste chaque source avec l’heure de sa dernière récupération et son succès ou non : c’est le premier endroit où regarder lorsque le guide sur les téléviseurs cesse d’avancer.