EPG pour middleware OTT

Le programme des émissions issu de la base de données EPG est fourni aux systèmes externes — boîtiers décodeurs, applications et middleware OTT — de deux manières : sous forme de document XMLTV complet distribué par le serveur EPG dédié, et sous forme de programme quotidien d’une chaîne en JSON distribué par l’API HTTP du nœud.

Distribution XMLTV

XMLTV est distribué par un serveur EPG intégré distinct. Il s’active sur l’écran « Serveur EPG » (Serveur EPG) : « Activer le serveur EPG », le port HTTP (43973 par défaut), le cas échéant HTTPS avec un certificat (port 43983 par défaut) et le « Nom d’hôte ».

L’accès s’effectue par comptes (onglet « Comptes » de l’écran « Paramètres EPG », Paramètres EPG) : identifiant et mot de passe, « Ensemble de chaînes », « Date d’expiration », « IP autorisée » et l’indicateur « En pause ». Le contenu distribué est déterminé par l’ensemble de chaînes :

  • les ensembles sont créés dans l’onglet « Ensembles de chaînes » ;

  • les chaînes sont incluses dans les ensembles depuis la base de données EPG (Base de données EPG) ; une chaîne peut appartenir à plusieurs ensembles ;

  • un seul ensemble est attribué à un compte — sans ensemble, la distribution est vide.

Le document est accessible au chemin /xmltv (et /xmltv.gz — le fichier compressé) ; l’autorisation s’effectue par HTTP Digest ou via les paramètres de requête. Les heures des émissions sont fournies avec le fuseau horaire de la chaîne ; seuls les événements en cours et à venir figurent dans le document. Si un même identifiant de chaîne provient de sources différentes, la chaîne n’est fournie qu’une seule fois et l’omission est signalée dans le journal.

Programme quotidien en JSON

Pour les interfaces middleware, le nœud fournit le programme d’une chaîne pour une journée par une seule requête à l’API HTTP au format JSON (l’autorisation est la même que pour les autres requêtes de l’API):

GET /data/epg/channel?src=<source>&ch=<chaîne>&lang=<langue>&t=<heure>

La réponse est la liste des événements de la journée (en UTC) qui contient l’heure t : début, fin, titre et description de chaque émission dans la langue demandée ; si la traduction est absente, la langue par défaut est utilisée, puis toute langue disponible. Une journée vide constitue une liste vide valide. Les réponses sont mises en cache par le serveur et actualisées automatiquement à l’arrivée de nouvelles données EPG.

Le cache intégré est prévu pour environ un millier de clients simultanés ; pour les installations plus importantes, il est recommandé de placer aussi bien la distribution XMLTV que la distribution JSON derrière un proxy inverse à cache ou un CDN.

La lecture de l’archive DVR à partir d’un événement du programme des émissions (paramètre epg dans l’URL de lecture) est décrite dans Lecture de l’archive (VOD).