Generar epg Xml en enigma2 webgrabplus

Pulsar para soporte en grupo telegram
Pulsar para soporte en grupo telegram

Por el equipo jungle-team os traemos como generar nuestro propio epg en formato xmltv para la plataforma movistar+ desde nuestro receptor enigma2 (valido para receptores arm, es decir todos los modelos 4k)

¿ Que es la epg ?

Es lo que se llama guía electrónica de programas, conocido como EPG (Siglas en ingles de electronic programm guide), de esta manera podemos acceder a toda la programacion de los canales que nos facilita saber que eventos va a retransmitir un determinado canal, asi como informacion del mismo tipo sipnosis, actores, fecha, etc….

En el caso de movistar+ a traves del transpondedor satelite solo muestra la programacion actual y siguiente de un canal.

¿ Que es epg xml ?

Como hemos mencionado anteriormente el epg de un canal se puede obtener a traves del propio satelite desde un transpondedor, otra manera de obtenerlo es la forma que vamos a tratar a lo largo de este manual, que consiste a traves de diferentes script descargar la  la programacion de los canales de las diferentes web que la introducen como el caso de la propia web oficial de movistar+ :

  • http://www.movistarplus.es/programacion-tv

Esa programacion capturada de las diferentes web luego es tratada mediantes diferentes script, en la que se puede ordenar en categorias, distribucion de la informacion personalizada, obteniendo como resultado final el epg de los diferentes canales en formato .xml, y una vez obtenido a traves de plugin enigma2 como crosspeg o epg import es convertido a epg.dat compatible con nuestros receptores.

En este manual vamos a explicar como generar nosotros nuestro propio epg xml usando para ello nuestro receptor enigma2, para ello usando la utilidad webgrabplus (pagina oficial http://webgrabplus.com/)

Instalacion webgrab+plus

Webgrab+plus es un programa que permite la gestion de los script para la obtencion del epg, diseñado para windows y linux.

El equipo Jungle-team lo que ha realizado a traves de este manual es:

  • Adaptacion e instalacion en receptores enigma2 de webgrab+plus
  • Adaptacion a receptores enigma2 de mono-runtime necesario para el funcionamiento de webgrab+plus
  • Preparacion y modificacion de script (llamados ini) para obtener el epg de movistar+ de diferentes web
  • Modificacion de script (post procesamiento de la informacion llamados rex para obtener epg personalizado)
  • Añadir script para insertar en el epg valoracion de los programas  mediante estrellas, basado en votaciones de la gente en la web movistar epg100
  • Realizar configuracion de los archivos webgrab+plus para el funcinamiento correcto del programa enigma2
  • Realizar archivo de parcheo de canales para asociarlo al epg
  • Creacion de chanel epg necesario para el visionado del epg

En definitiva desarrollar todo lo necesario para que sea facil para los usuarios noveles el generar su propio epg.

Instalar webgrab+plus en enigma2

Para realizar la instalacion en nuestro receptor enigma2 de webgrab+plus preparado con todo lo necesario mencionado anteriormente se ha realizado un script de instalacion para que sea lo mas facil posible.

Requisitos

  • Necesario tener un pendrive o disco duro insertado en nuestro receptor montado como /media/hdd o /media/usb
  • Descarga del script python realizado para automatizar la instalacion, lo podeis descargar del siguiente enlace:

Por el equipo Jungle-team se ha realizado script para realizar la instalacion de webgrab+plus, para ello descargarlo del siguiente enlace

Una vez descargado vamos a realizar los siguientes pasos:

Paso 1: Descomprimir el archivo en nuestro pc, y a continuacion introducirlo en el directorio /usr/bin de nuestro receptor enigma2

Paso 2: Accedemos al receptor mediante consola terminal y nos situamos en el directorio /usr/bin para ello ejecutamos:

cd /usr/bin

Paso 3: Ahora ejecutamos el script para ello:

python jungle_epg_webgrabplus.py

epg1

Paso 4: Tras el paso anterior nos aparecera la interfaz grafica del script pues simplemente introducimos 1 y damos a enter para proceder a la instalacion

epg2

Tras la ejecucion se instala todo el source webgrab+plus y mono-runtime, saliendo mensaje de que esperemos a que finalize

epg3

Al finalizar pues nos aparecera mensaje

epg4

El script reconoce automaticamente si tenemos montada unidad como media/hdd o media/usb, dando preferencia a /media/hdd en caso que tengamos los dos montajes, por lo tanto al finalizar la instalacion ya sea en /media/hdd o en /media/usb se habra creado una carpeta llamada epg, la cual contiene todo lo necesario para la creacion del epg que desarrollameremos a continuacion

Generar EPG xml en receptor enigma2

Una vez realizada la instalacion vamos a ver como realizar el proceso de creacion de epg xml en nuestro receptor enigma2.

Configuracion de Archivos

En primer lugar, aunque como mencionemos os lo hemos dejado todo configurado, vamos a ver como realizar unas configuraciones basicas y necesarias antes de generar el egp.

Configurar directorios

Los archivos estan preparados para /media/hdd, pero como hemos mencionado el script reconoce si existe ese montaje, y si no existe lo instala en /media/usb, por lo tanto vamos a repasar como cambiar los directorios en los archivos de configuracion.

  • Es necesario tener activado el visionado de archivos ocultos en las opciones de carpeta del pc o programa que usemos para acceder al receptor.

Paso 1: Abrimos el archivo denominado run.sh ubicado en segun el montaje que tuvieramos:

  • /media/hdd/epg/.wg++
  • /media/usb/epg/.wb++

Buscamos la linea:

/media/hdd/epg/.wg++/mono/bin/mono "$DIR/bin/WebGrab+Plus.exe" "$DIR"

Y si nuestro montaje es en /media/usb pues modificamos y deberia quedar asi:

/media/usb/epg/.wg++/mono/bin/mono "$DIR/bin/WebGrab+Plus.exe" "$DIR"

  • Ese directorio es donde esta ubicado mono-runtime que hemos añadido especial para enigma2 necesario para ejectuar webgrabplus

Paso 2: Abrimos el archivo denominado WebGrab++.config.xml ubicado en segun el montaje que tuvieramos:

  • /media/hdd/epg/.wg++
  • /media/usb/epg/.wb++

Buscamos:

/hdd/epg/.wg++/guide/guide.xml

Y si nuestro montaje es media/usb pues modificamos y deberia quedar asi:

/media/usb/epg/.wg++/guide/guide.xml

  • Ese directorio es donde se guarda el epg tipo xml generado

Ahora podemos seleccionar en este mismo archivo los dias que queremos generar de epg, para ello buscamos:

timespan>1</timespan

Por defecto hemos puesto 1, en ese caso seria descarga de epg del dia actual y siguiente, si introducimos 2 pues aumentariamos un dia mas de epg, si ponemos 3 aumentariamos otro dia de epg y asi sucesivamente…

  • A mas dias mas tarda en generar el epg, normalmente la primera vez que se genera 2 dias tarda mas o menos 1 hora, 7 dias ronda las 4 horas, esto es solo la primera vez, en las siguientes veces que se genera tardaria menos.

Ahora vamos a explicar, en nuestro caso existe en este archivo de configuracion, al xml generado poduna funcion de poder hacerle un post-procesamiento para personalizar nuestro epg, que se denomina rex, en nuestro caso esta activado mas adelante explicaremos su funcionamiento, la linea de activacion en el archivo de configuracion es:

postprocess run="y" grab="y" rex

Y por ultimo dentro de este mismo archivo al final del mismo observamos la configuracion de cada canal del que vamos a generar el epg, en ese sentido jungle-team os lo ha dejado preparado no es necesario que editeis nada en esa opcion, pero vamos a explicar sobre un canal:

update="i" site="plus.es" site_id="MV3" xmltv_id="#0">#0

  • Update: Tipo de generacion del epg para el canal, lo mas normal es usar i que es incremental es decir actualiza lo nuevo sobre un xml ya generado.
  • site: Es el script usado para la descarga del egp en ese canal
  • Site_id: Es el id del canal en la web para la descarga del epg en ese canal, ejemplo mv3 es por que es el id de la pagina de movistar+ donde se realiza la descarga:

http://www.movistarplus.es/guiamovil/MV3

  • xmltv_id: es el id del canal en el archivo xml que vamos a generar, esto es importante mas tarde como veremos por que es el nombre que deberemos asociar a los service reference de los canales en enigma2.

Paso 3: Abrimos el archivo denominado rex.config.xml ubicado en segun el montaje que tuvieramos:

  • /media/hdd/epg/.wg++/rex
  • /media/usb/epg/.wb++/rex

Buscamos:

/hdd/epg/.wg++/guide/epgjungle/guide.xml

Y lo sustituimos en el caso que usemos montaje en /media/usb por

/media/usb/epg/.wg++/guide/epgjungle/guide.xml

  • Es el directorio donde se va a grabar el epg xml personalizado, en el archivo se explica como poder configurar de diferentes modos la personalización del epg.

Ahora vamos a ver una forma de personalizar nuestro epg en este archivo rex.config.xml, por defecto nosotros hemos dejado el orden realizado para koala, pero si quereis jugar, es esta parte de codigo:

{‘episode’ }
{\nArgumento: (‘productiondate(, )’)} {(‘writer’) } {| ‘starrating’ | } {‘description’ }{\nEdad: ‘rating’. }{\nCategoría: ‘category(, )’. }{\nActores: ‘actor(, )’}{\nDirector: ‘director(, )’}{\nPresentador: ‘presenter(, )’}

‘category’
{Ratings: ‘rating(, )’.}

Y sobre todo vamos a tener en cuenta esta parte de codigo:

{\nArgumento: (‘productiondate(, )’)} {(‘writer’) } {| ‘starrating’ | } {‘description’ }{\nEdad: ‘rating’. }{\nCategoría: ‘category(, )’. }{\nActores: ‘actor(, )’}{\nDirector: ‘director(, )’}{\nPresentador: ‘presenter(, )’}

Esta parte de codigo se corresponderia visualmente en el receptor con la descripcion del programa que marcamos en la siguiente captura:

En la parte de codigo descrita pues simplemente podemos cambiar el orden o saltos de linea o nombres de lo enmarcado en verde en la captura de imagen.

Paso 4: Para terminar editamos el script introducir estrellas de votaciones en el epg, para ello debemos editar el archivo estrellas.sh ubicado en el directorio segun nuestro punto de montaje

  • /media/hdd/epg/.wg++/scripts
  • /media/usb/epg/.wg++/scripts

Lo abrimos con un editor de textos y observaremos:

#!/bin/sh
perl -pi -e "s[1/5][★☆☆☆☆]g" /hdd/epg/.wg++/guide/epgjungle/guide.xml
perl -pi -e "s[2/5][★★☆☆☆]g" /hdd/epg/.wg++/guide/epgjungle/guide.xml
perl -pi -e "s[3/5][★★★☆☆]g" /hdd/epg/.wg++/guide/epgjungle/guide.xml
perl -pi -e "s[4/5][★★★★☆]g" /hdd/epg/.wg++/guide/epgjungle/guide.xml
perl -pi -e "s[5/5][★★★★★]g" /hdd/epg/.wg++/guide/epgjungle/guide.xml

donde observamos que /hdd/epg/.wg++/guide/epgjungle/guide.xml es la ruta que tenemos en el archivo rex para generar el epg personalizado, en caso de usar montaje /media/usb pues simplemente cambiamos la ruta.

Y con esto finalizamos la configuracion de archivos.

Generar Epg de forma manual

Para generar el epg xml de forma manual vamos a ver paso a paso como realizarlo.

Paso 1: En primer lugar debemos ejecutar el script para webgrabplus llamado run.sh, pues por consola terminal nos situamos en el directorio .wg++ ejecutamos:

sh run.sh

Una vez ejecutado el comando comenzara la creacion del epg, dependiendo los dias que hallamos elegido para descargar tardara mas o menos:

Una vez halla terminado el proceso quedara la terminal como muestra la imagen:

Una vez terminado la generacion del epg, tendremos dos epg.xml creados uno normal y otro personalizado por el rex en los directorios y con el nombre que vimos en los archivos de configuracion.

  • epg normal

  • epg personalizado con rex

Paso 2: Ahora para terminar vamos a ejecutar el script para añadir las estreallas de valoracion, el script se realiza sobre el epg xml que ha realizado rex ya que es el que tiene añadido el valor numerico de las votaciones, es un script realizado en perl por lo que en primer lugar es necesario instalar perl en nuestro receptor enigma2 para ello ejecutamos:

opkg install perl

Una vez instalado perl nos situamos en el directorio  /epg/.wg++/scripts y ejecutamos el script:

sh estrellas.sh

Generar epg automatico con crontab

Una vez hemos realizado el proceso manual por primera vez para ver errores que nos hallan podido surgir, podemos automatizar el proceso para no tener que hacer manualmente la ejecucion.

Para automatizar vamos a generar un script que va a unir la ejecución de run.sh y estrellas.sh para luego posteriormente añadirlo al cron de nuestro deco.

Vamos a crear un nuevo script generar_epg.sh en la siguiente ruta: (dependiendo de nuestro caso)

  • /media/hdd/epg/.wg++/scripts/generar_epg.sh
    ó
  • /media/usb/epg/.wg++/scripts/generar_epg.sh

Y el contenido del script deberá ser:

#!/bin/sh
sh /media/hdd/epg/.wg++/run.sh
sh /media/hdd/epg/.wg++/scripts/estrellas.sh

NOTA: también hay que tener las rutas en cuenta para poner hdd o usb según sea el caso.

Ahora dotamos de permisos de ejecución al script generar_epg.sh: (hdd o usb según nuestro caso)

chmod +x /media/hdd/epg/.wg++/scripts/generar_epg.sh

Vale ahora probamos a lanzar el script y ver que funciona: (hdd o usb según nuestro caso)

sh /media/hdd/epg/.wg++/scripts/generar_epg.sh

Una vez probado pasamos a incorporarlo al cron mediante herramienta visual de temporizadores de nuestro deco o vía comando que es lo que explica a continuación: (tener en cuenta dónde está guardado el script, hdd ó usb)

echo "00 0 * * * /media/hdd/epg/.wg++/scripts/generar_epg.sh >> /media/hdd/epg/.wg++/scripts/generar_epg.log 2>&1" > /etc/cron/crontabs/root

Podemos adaptar el horario de ejecución a la hora deseada, ya que en el ejemplo está a las 0:00h. El primer parámetro son los minutos (00) y el segundo la hora (0).

Para cambiar el horario una vez ejecutado el comando anterior, se podría hacer desde los temporizadores de la imagen o a través del comando:

crontab -e

Uso epgimport para el epg

Una vez que tenemos el epg.xml necesitamos un programa que convierta el archivo a epg.dat compatible con nuestros receptores enigma2, para ello vamos a usar en este ejemplo el plugin epgimport.

Instalacion epgimport

Paso 1: Instalamos epgimport en nuestro receptor, para ello por terminal podemos ejecutar:

enigma2-plugin-extensions-epgimport

Insertar source epg xml

Paso 2: Una vez instalado el plugin accedemos al receptor a la carpeta /etc/epgimport y abrimos el archivo rytec.sources.xml e introducimos despues de mapping el siguiente code

		
		
			Vudo4k epg normal
			/media/hdd/epg/.wg++/guide/guide.xml
		
		
			Vudo4k epg rex
			/media/hdd/epg/.wg++/guide/epgjungle/guide.xml
		
  • sourcecatname podemos poner el nombre identificativo que deseemos
  • En description podemos poner una identificacion para diferencias el epg xml normal del rex
  • Url introducimos el directorio donde se hallan los epg xml
  • Channels debemos poner un archivo xml donde asociamos el service reference de los canales con el id xml que expliquemos en los archivos de configuracion del webgrab+plus, un ejemplo del canal:

channel id="LA 1 HD">1:0:19:7863:41A:1:C00000:0:0:0

Para facilitar este proceso jungle-team os deja preparado este archivo que lo podeis descargar del siguiente enlace: epg.channels.xml, una vez descargado:

  1. Lo descomprimimos e introducimos en nuestro receptor, por ejemplo en el directorio de nuestra unidad montada epg/.wg++

2. Una  vez introducido editamos el archivo xml de rytec añadiendo el directorio de los channel, por lo que finalmente nos quedaria:

		
		
			Vudo4k epg normal
			/media/hdd/epg/.wg++/guide/guide.xml
		
		
			Vudo4k epg rex
			/media/hdd/epg/.wg++/guide/epgjungle/guide.xml
		

Generar epg con epgimport

Como paso final vamos a ver ya el convertir el epg xml a epg data para verlo en nuestro receptor, para ello, accedemos al plugin epgimport en el menu del receptor

paso 1: Accedemos al plugin epg import

Paso 2: Boton azul para seleccionar la fuente:

Paso 3: Boton amarillo para descarga epg:

Agradecimentos

Para terminar el manual agradecer a los usuarios de la comunidad libre que todavia quedan que realizan o ayudan a realizar proyectos sin animo de lucro, sin sorteos previo pago, sin enlaces amazon  que les reporta beneficios por la compra a través de ese enlace, sin ventas de receptores, sin patrocinios de tiendas que a través de ellos realizan publicidad…

En ese sentido quiero agradecer por las horas perdidas para hacerlo todo mas facil a usuarios que ayudan a que salga adelante un proyecto totalmente alejado del animo de lucro y que han sido importantes en el desarrollo de este manual como:

  • @jala89
  • @EA4GNQ
  • @txolo99

 

A %d blogueros les gusta esto: