domingo, 17 de febrero de 2013

EPG en PVR para Raspberry Pi

En una entrada previa vimos como instalar un PVR en la Raspberry Pi, pero encontrábamos a faltar un servicio más automatizado, en vez de nosotros programar manualmente horas de inicio, fin y cadena de emisión, podríamos obtenerlo en un servicio EPG y sencillamente hacer un clic a lo que queramos grabar.


En fuentes de datos como la TDT (DVB-T, DVB-T2) o Satélite (DVB-S) es la propia emisora quien envía la programación, pero si nos interesa a mas días vista o por ejemplo en IPTV (Imagenio) necesitamos de un servicio adicional que nos informe de la programación, es lo que se llama EPG (Guia Electrónica de Programación). Para tal proposito existe un estándar llamado XMLTV que proporciona dicha información, adaptada a los canales del país que uno desee. 

Veamos en esta entrada del blog como configurarlo y usarlo en la aplicación TVheadend vista anteriormente como sistema de PVR para la Raspberry Pi.

Prerequisitos
Es necesario disponer de una versión de java instalada en la Raspberry Pi, p.ej. OpenJDK, asi que comprobamos que tenemos una versión de java:
java -version

Descargamos el siguiente programa XMLTV grabber:
wget http://linux.mjnet.eu/wp-content/plugins/download-monitor/download.php?id=4 -O tv_grabber_linux.mjnet_.eu_.2012.09.13.zip

Una vez descargado lo descomprimimos con lo que obtenemos el .jar de la aplicación:
unzip tv_grabber_linux.mjnet_.eu_.2012.09.13.zip

En este momento tendremos las librerías java y ejecutable necesario en el fichero tv_grabber_linux.mjnet.eu.2012.09.13.jar

Instalación
Crearemos una carpeta en el directorio de usuario (en nuestro caso en el usuario pi).
mkdir /home/pi/xmltv

Copiaremos el fichero de la aplicación,
mv tv_grabber_linux.mjnet.eu.2012.09.13.jar /home/pi/xmltv/

Creamos el ejecutable,
nano /home/pi/xmltv/tv_grab_es

y añadimos el siguiente contenido:
#!/bin/bash
java -Xmx512M -jar /home/pi/xmltv/tv_grabber_linux.mjnet.eu.2012.09.13.jar $1 $2 $3 $4 $5 $6

Lo convertimos a ejecutable,
chmod +x /home/pi/xmltv/tv_grab_es

Por último, creamos los enlaces simbólicos
sudo ln -s /home/pi/xmltv/tv_grab_es /usr/bin/tv_grab_es

Configuración del grabber
La primera vez, deberemos de ejecutarlo desde la línea de comando para comprobar su funcionamiento.
/home/pi/xmltv/tv_grab_es

Esto produce la salida en pantalla de un xml. Dejamos que finalice y debería de habernos creado un fichero llamado xmltv.properties en la carpeta /home/pi/xmltv/

Editamos el fichero de propiedades xmltv para su configuración:
nano /home/pi/xmltv/xmltv.properties
y lo adaptamos a la configuración que queramos (el fichero es autoexplicativo).

Adjunto captura para la configuración para Imagenio en España tal como lo tengo yo en mi Raspberry Pi.

Configuración de TVHeadEnd
Ahora que tenemos un grabber, es cuestión de configurar en TVHeadEnd para que lo utilice. Lo primero es seleccionar el grabber en la pestaña de EPG Grabber dentro de Configuration como podemos apreciar en la imagen siguiente:

 Seleccionamos para cada canal que tengamos configurado el correspondiente EPG

Ahora, en la pestaña principal Electronic Program Guide ya aparece la programación actual y futura de nuestros canales.

Programación
En la pestaña Electronic Program Guide podremos filtrar por varios criterios, búsqueda por nombre, de canal, por tag de canal, etc.

Ahora, haciendo clic sobre un programa, nos aparece la información detallada, con la opción de programar directamente ("Record program"), por lo que ya tenemos un PVR + EPG en plenas condiciones.

Entre otras posibilidades se puede programar todos las emisiones de episodios del mismo programa, con la opción ("Aurorec").

Conclusión
Ya tenemos rápidamente la programación de grabaciones de canales desde el EPG descrito en esta entrada e integrado en TVHeadEnd.

En esta entrada del blog se ha utilizado el grabber de linux.mjnet.eu, pero existen muchos más y algunos incluidos en el propio repositorio de raspbian/debian.
Enlaces relacionados: