Guia de programação¶
O guia de programação da Catena chega em arquivos XMLTV: o operador cadastra uma fonte, o servidor baixa o arquivo conforme um calendário e guarda os programas dos canais que estiverem vinculados a streams. Dali o guia chega a todos os consumidores de uma vez — a vitrine do espectador, a ficha do canal no console e a exportação XMLTV para reprodutores externos.
A seção do console é Guia de programação.
Cadastre uma fonte¶
Clique em Adicionar fonte e preencha os campos:
- Nome — como a fonte se chama no console; precisa ser único na instalação.
- URL do arquivo — de onde a exportação XMLTV é baixada. Um arquivo comprimido com gzip também serve: a compressão é detectada pelo conteúdo, não pela extensão do endereço.
- Atualizar a cada, horas — o intervalo da atualização programada.
- Manter histórico, dias — por quanto tempo os programas passados ficam no banco.

Uma fonte costuma cobrir muitos canais: num provedor é um único arquivo para um pacote inteiro.
Vincule os streams aos canais do arquivo¶
Enquanto nenhum stream estiver vinculado, a importação guarda o catálogo de canais do arquivo, mas não os programas: não faz sentido armazenar a programação de quatro mil canais quando duzentos vão ao ar.
A vinculação vive nas configurações do stream, bloco Guia de programação:
- Fonte do guia — de qual fonte vem a programação. Um stream tem apenas uma.
- Canal EPG — o identificador do canal dentro daquele arquivo.

Um canal EPG pode ser vinculado a muitos streams: a versão SD e a HD de uma mesma transmissão dividem a programação. O contrário não acontece: um stream nunca tem duas programações, e guias de fontes diferentes não são fundidos.
Se um canal some do arquivo novo, a vinculação permanece e fica marcada como Este canal EPG não está no catálogo da fonte. É um estado exibido, não uma falha de integridade: resolve-se escolhendo outro canal ou devolvendo o anterior à exportação.
Uma vinculação nova não espera a descarga programada: o servidor reimporta a fonte por conta própria, juntando numa só descarga as edições feitas em sequência. Essa reimportação usa o arquivo já guardado; nada é baixado de novo.
O catálogo de canais do arquivo¶
A aba Catálogo de canais mostra tudo o que o arquivo declara, inclusive os canais que nenhum stream usa ainda: o identificador, os nomes, o número de programas e as transmissões vinculadas. A busca cobre nomes e identificadores ao mesmo tempo — os provedores dão vários apelidos por canal.

Atribuição em massa¶
Associar pelo nome associa streams a canais do catálogo e mostra o resultado como proposta. Uma proposta não é uma decisão: só as linhas marcadas são gravadas, e cada linha pode ser corrigida antes de Atribuir.

Esse é o jeito prático de trazer o guia para uma instalação existente: ninguém vincula duzentos streams à mão.
O que uma importação faz¶
Atualizar agora dispara a descarga imediatamente. Tanto a atualização programada quanto a manual baixam o arquivo de novo: «atualizar» nunca importa em silêncio a cópia de ontem.
A importação substitui uma janela: o conteúdo do intervalo que o arquivo descreve é posto em correspondência exata com o arquivo. Um programa que mudou de horário muda, um cancelado some, e o histórico fora da janela fica intacto. O leitor vê ou o guia anterior ou o novo, nunca uma mistura.
Um elemento defeituoso do arquivo é ignorado com um aviso e não derruba a descarga inteira; só interrompe a análise um XML que não dá para ler — por exemplo, a página de erro do provedor no lugar da exportação. Nesse caso o guia guardado antes não muda.
Disparar uma importação da mesma fonte enquanto outra está em andamento é recusado: a que está rodando não é interrompida nem duplicada.
Histórico de descargas¶
Cada fonte mostra a sua Última descarga, e a aba Histórico de descargas guarda as anteriores. Os status são:
- nunca baixada — a fonte acabou de ser cadastrada;
- em andamento — há uma descarga em curso, e a mensagem nomeia a etapa atual;
- sucesso — o arquivo foi analisado e gravado;
- com erro — a mensagem explica a causa.
Ao lado do status ficam os contadores: Programas (encontrados no arquivo), Armazenados, Canais no arquivo, Vinculados. É aí que está a resposta para «por que a grade está vazia»: uma descarga com sucesso, centenas de canais e zero vinculados significa que o arquivo está bem e faltam as vinculações.
Onde o guia aparece¶
- A vitrine do espectador — a grade no botão amarelo e o catch-up de programas do arquivo (Vitrine).
- A ficha do canal no console — o bloco Guia de programação com o dia seguinte.
- A exportação XMLTV — o mesmo catálogo para um reprodutor externo (Lista M3U e XMLTV).
O guia é sempre lido por janela: os dois limites são obrigatórios, e o intervalo e o tamanho da lista têm teto — no máximo 7 dias e 200 transmissões por requisição. Uma requisição mais ampla é recusada com o limite dito por extenso, em vez de ser cortada em silêncio.
O espectador recebe só os seus canais: a fórmula de acesso é aplicada antes da leitura do guia, e um canal fora dos pacotes dele não aparece na resposta nem quando é nomeado explicitamente.
Logotipos de canal¶
A exportação declara para um canal não só um nome, mas também um ícone. A Catena o baixa ela mesma e guarda os bytes: o endereço do provedor não aparece na resposta; caso contrário, cada leitor — inclusive a TV do espectador, que não tem saída para nenhuma outra rede — teria de buscar essa imagem fora.
Na ficha do canal o logotipo e o nome são propostos, não aplicados sozinhos: o nome e a imagem do próprio operador não são sobrescritos por uma importação. Se o canal não tem stream atribuído, não há o que propor: o logotipo é encontrado pela cadeia «stream → vinculação → canal do arquivo».
Como ler uma grade vazia¶
De cima para baixo:
- A descarga terminou com erro — leia a mensagem: em geral o endereço serve uma página de erro ou pede autorização em vez da exportação.
- A descarga teve sucesso e há zero vinculados — vincule os streams, à mão ou com a atribuição em massa.
- Há vinculação e não há programas — verifique se o canal no catálogo tem número de programas diferente de zero: o provedor pode ter entregado o arquivo sem esse canal.
- Há programas e a vitrine está vazia — verifique se o canal da catena aponta para aquele stream: o guia é endereçado por transmissão, e um canal sem stream não tem programação.
O que vem a seguir¶
- Vitrine — o guia como o espectador o vê.
- Lista M3U e XMLTV — o guia exportado para reprodutores externos.
- Canais — como um canal da catena se liga a um stream.