domingo, 8 de junio de 2008

XMLTV

El segundo proyecto en el que colaboro se llama xmltv

xmltv consiste en un conjunto de "grabbers", que generan un fichero XML.

¿Pero para qué sirven esos ficheros?

Seguramente ya tengáis un aparatito TDT y en el mando habéis visto un botón que pone "EPG" (guía electrónica de programas), donde os muestra que están emitiendo (nombre, duración entre horas y una descripción), y los programas que se emitirán a continuación y sus horarios correspondientes.

Esto es la nueva era digital, poder saber que emitirán, en que horas y poder ponerlo a grabar.

Pero en España realmente se pasan a la torera el actualizar la guía de canales a través de TDT, o algunos canales no lo utilizan, o ponen las horas mal, etc..

XMLTV hace el mismo trabajo que EPG en la TDT, genera un fichero donde contiene información de lo que echa la televisión, por título, horario, descripción e incluso se puede organizar por distintos tipos de canales (deportes, cines, etc). Una vez generado ese fichero se puede utilizar cualquier frontend para visualizar:
- si tienes un media center: MythTV o Freevo (del que he hablado en este mismo blog), podréis acceder a la guía y programar vuestras grabaciones) o
- una aplicacion tipo freeguide

El formato del fichero es bastante simple:

<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv source-info-url="http://www.miguiatv.com/todos-los-canales.html" source-data-url="http://www.miguiatv.com/todos-los-canales.html" generator-info-name="XMLTV" generator-info-url="http://membled.com/work/apps/xmltv/">
<channel id="CLa-20Sexta.miguiatv.com">
<display-name>La Sexta</display-name>
</channel>

<programme start="20080608071000 +0200" channel="CLa-20Sexta.miguiatv.com">
<title lang="es">Apuesta en 20'</title>
<desc lang="es">Programa presentado por Javier Mart<ED>n.</desc>
<category lang="es">CONCURSO</category>
</programme>
</tv>


No creo que haya que explicar mucho: primero se pone la cabecera indicando de donde se genera los datos e información del generador. Luego van los donde se indica un id y el nombre de cada canal. Luego directamente se establecen los programas con , la fecha de inicio y al canal que corresponda. Dentro de se indica el título, la descripción y opcionalmente la categoría. Es importante saber que un programa acaba cuando empieza el otro. Es decir, no se establece su duración.

En freevo luce tal que así:




La instalación de XMLTV tampoco tiene mucho misterio, en debian:

apt-get install xmltv


Si quereis utilizar el que he creado yo (coge datos de miguiatv)


tv_grab_es_miguiatv --configure


Luego elegís los canales que os interesa, y luego ya cada noche sólo teneis que generar el fichero .xml para poder utilizarlo.

0 0 * * * tv_grab_es_miguiatv > /tmp/TV.xml


Para decirle a FreeVO de dónde coger la gúia de televisión, editamos /etc/freevo/local_conf.py y establecemos:

XMLTV_FILE = '/tmp/TV.xml'

3 comentarios:

Rdos dijo...

Hola:

hace tiempo que utilizo Mythtv y, aunque al principio utilizaba el grabber de la página de El País, últimamente decidí configurar el de miguia.tv. El caso es que llevo bastante tiempo con un problema, y no sé si sabrás solucionármelo. Al actualizar la guía, me aparece siempre un error, y solamente consigo la programación completa de un par de días. Te copio la salida por si te sirve:


2009-01-09 18:19:35.263 FAILED: xmltv returned error code 65280.
2009-01-09 18:19:35.271 Error in 110:15: unexpected end of file
2009-01-09 18:19:35.271 Updating icons for sourceid: 1
2009-01-09 18:19:35.273 New DB connection, total: 4
2009-01-09 18:19:35.274 Connected to database 'mythconverg' at host: xx.xxx.xxx.xxx
2009-01-09 18:19:35.276 No programs found in data.
2009-01-09 18:19:35.276 Grabber is no longer returning program data, finishing
2009-01-09 18:19:35.277 Failed to fetch some program info
2009-01-09 18:19:35.277 Adjusting program database end times.
2009-01-09 18:19:35.363 0 replacements made
2009-01-09 18:19:35.363 Marking generic episodes.
2009-01-09 18:19:35.442 Found 0
2009-01-09 18:19:35.442 Marking repeats.
2009-01-09 18:19:35.522 Found 0
2009-01-09 18:19:35.522 Unmarking new episode rebroadcast repeats.
2009-01-09 18:19:35.523 Found 0
2009-01-09 18:19:35.684 Marking episode first showings.
2009-01-09 18:19:37.647 Found 2777
2009-01-09 18:19:37.647 Marking episode last showings.
2009-01-09 18:19:38.986 Found 2777


Buscando por la red, encontré este sitio, de los pocos que comentan algo sobre miguiatv. Gracias por anticipado por la atención.

Rdos

Rdos dijo...

El comienzo del mensaje del error es:

Can't use an undefined value as an ARRAY reference at /usr/bin/tv_grab_es_miguiatv line 450

Se quedó fuera del copia y pega anterior :-()

Aemco dijo...

Hola, yo uso el tv_grab para generar el xml, pero ahora me gustaría saber si existe alguna opción para generarlo en el formato de Windows7, o algun programilla para convertir el xml en mxf (formato de Windows 7)