EPG para middleware OTT

A grelha de programação da base de dados EPG é fornecida a sistemas externos — set-top boxes, aplicações e OTT middleware — de duas formas: como documento XMLTV completo, através de um servidor EPG dedicado, e como grelha diária de um canal em JSON, através da API HTTP do nó.

Fornecimento de XMLTV

O XMLTV é distribuído por um servidor EPG incorporado separado. É ativado na tela «Servidor EPG» (Servidor EPG): «Ativar servidor EPG», a porta HTTP (43973 por predefinição), se necessário HTTPS com certificado (porta 43983 por predefinição) e o «Nome do anfitrião».

O acesso é concedido por contas (separador «Contas» da tela «Configurações EPG», Configurações EPG): login e senha, «Conjunto de canais», «Data de fim» de validade, «IP permitido» e o indicador «Suspensa». A composição do fornecimento é determinada pelo conjunto de canais:

  • os conjuntos são criados no separador «Conjuntos de canais»;

  • os canais são incluídos nos conjuntos na base de dados EPG (Base de dados EPG); um canal pode pertencer a vários conjuntos;

  • a cada conta é atribuído um único conjunto — sem ele o fornecimento fica vazio.

O documento está disponível no caminho /xmltv (e /xmltv.gz — arquivo comprimido); a autorização é feita por HTTP Digest ou através de parâmetros do pedido. As horas dos programas são fornecidas com o fuso horário do canal; apenas os eventos atuais e futuros são incluídos no documento. Se o mesmo identificador de canal tiver chegado de fontes diferentes, o canal é fornecido uma única vez e a omissão é comunicada no registro.

Grelha diária em JSON

Para as interfaces de middleware, o nó devolve a grelha de um canal referente a um dia com um único pedido à API HTTP em formato JSON (a autorização é a mesma dos restantes pedidos da API):

GET /data/epg/channel?src=<fonte>&ch=<canal>&lang=<idioma>&t=<hora>

É devolvida a lista dos eventos do dia (em UTC) em que se insere a hora t: início, fim, título e descrição de cada programa no idioma pedido; se não existir tradução, é utilizado o idioma predefinido e, em seguida, qualquer um disponível. Um dia sem eventos é uma lista vazia válida. As respostas são colocadas em cache pelo servidor e atualizadas automaticamente à chegada de novos dados EPG.

A cache incorporada está dimensionada para cerca de mil clientes em simultâneo; em instalações maiores, recomenda-se colocar tanto o fornecimento em XMLTV como o fornecimento em JSON atrás de um proxy inverso com cache ou de uma CDN.

A reprodução do arquivo DVR por evento da grelha de programação (o parâmetro epg no URL de reprodução) está descrita em Reprodução do arquivo (VOD).