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:


8 comentarios:

gedas07 dijo...

Tengo una duda , como se hace despues para que una vez se reinicie la raspberry pi se arranque el programa , ya que yo lo he instalado pero cuando reinicia ya no funciona ?

Ricard Forner dijo...

Es necesario crear un fichero de arranque de demonio p.ej: /etc/init.d/tvheadend

A fin de que tengamos las opciones de start, stop, etc..

Espero en una nueva entrada del blog explicarlo con detalle.

gedas07 dijo...

Otra cosa yo lo que quiero que arranque es el tv_grab_es , el tvheadend ya me arranca perfectamente ,copie el script de arranque de tvheadend y se lo arregle para tv_grab_es , pero cuando lo ejecuto esta un rato pensando , luego en terminal se ven un monton de datos (que creo que son el EPG ) pero no funciona el epg en el tvheadend ?????
ni aun arrancandolo directamente con
/home/pi/xmltv/tv_grab_es
que me falla ????

jonathan dijo...

De dónde coge la señal de video del aire ? O cómo va eso

azlon dijo...

Hola. Estupendo manual, muchas gracias. Me pusieron imagenio hace una semana y por más que he instalado diferentes versiones de xbmc y tvheadend, no consigo que me reproduzca los canales de imagenio que sí que veo desde el VLC del PC. Creo que tvheadend tenía problemas para reproductir RTP en las últimas versiones. Yo tengo en las rasbperry la 3.4~wheezy. ¿Puedes decirnos de dónde descargar tu versión o alguna forma de evitar este problema? Gracias.
jun 01 22:04:12.044 subscription: "HTTP" subscribing on "Discovery Channel", weight: 100, adapter: "eth0", network: "", mux: "239.0.0.22", provider: "", service: "", quality: 100

jun 01 22:04:16.001 webui: Couldn't start streaming /stream/channelid//1, No input detected

Juanjo dijo...

El sitio linux.mjnet.eu no está disponible. Por favor, ¿Podrías publicar el enlace a otro grabber y comentar si habría alguna diferencia en la instalación?
Otra cosa, estoy intentando instalar el EPG para TV headend en una NAS synology. ¿La inslatalación es igual? ¿En que directorio deberia instalar el grabber?

Muchas gracias por toda la información que nos proporcionas. Un saludo

José Rodríguez dijo...

He conseguido que reconozca el modulo: XMLTV: Linux.mjnet.eu grabber tv_grabber_linux.mjnet.eu.2012.09.13.jar

pero cuando voy a asignarle a cada canal su epg no me sale nada -.-'
lo he hecho varias veces y sigue sin funcionar

Anónimo dijo...

Yo uso el AppleTV con el iPhone y la verdad es que va muy bien busco las películas con el iPhone en el google las abro y las paso al AppleTV con airplay.