domingo, 21 de octubre de 2012

Grabar IPTV (Imagenio) con la Raspberry Pi

Un uso para nuestra Raspberry Pi  puede ser para grabar la transmisión digital de televisión de nuestro operador de TV de Pago, a fin de poder reproducirla posteriormente. Mediante la tecnología de IPTV de transmisión de televisión sobre redes IP (como Movistar Imagenio) podemos acceder a un canal determinado (que tengamos suscrito) y almacenar dicha transmisión para después poderlo reproducir a posteriori con la aplicación VideoLAN por ejemplo, y todo esto, sin tener que movernos del entorno de la Raspberry Pi.

Requisitos
Antes de todo, debemos estar suscritos al operador de IPTV para poder acceder a los canales desde la Raspberry Pi  y utilizar la grabación para uso y disfrute personal.

Software requerido
Para la grabación del canal, usaremos el conocido programa VideoLAN (o VLC) que tanto nos puede servir como para la reproducción como para la grabación, así pues, si no lo tenemos en la Raspberry Pi lo descargamos del repositorio:
sudo apt-get install vlc

Empecemos
Lo primero que hay que hacer es crear un par de ficheros, uno será el encargado de la grabación, y otro el de la planificación (schedule) de los programas que queramos grabar.

Script genérico de grabación.
Si no tenemos un carpeta para almacenar los ejecutables para el usuario, la creamos con el nombre bin:
mkdir ~/bin/

Creamos una carpeta de descarga, como la sentencia siguiente:
mkdir ~/imagenio/

Abrimos el editor para crear el script: 
nano ~/bin/grabarImagenio.sh

cuyo contenido debería ser el siguiente:


Podéis apreciar que en este caso el script de la captura adjunta es auto-explicativo.

Script de planificación.
Una manera rápida de programar nuestras grabaciones (schedule) es utilizar el cron de la Raspberry Pi a fin de poder indicar el día y hora de la grabación.

Este sistema permite indicar, (entre otras cosas) el día, mes, hora y minuto en que queremos que empiece a grabar y cuando queremos que finalice. Lo que haremos será utilizar el propio cron del usuario que lo definimos mediante un fichero:
nano ~/.cron

El contenido del fichero puede variar, pero es bastante auto-explicativo.

NOTA: Se aprecia en la captura mi planificación para la grabación de dos películas de los próximos días en que no estaré en casa. Destacar que se especifica el canal (en ambos casos es el canal MGM HD) y el fichero en que se guardará. (las IP de los canales y el formato TS no es objetivo de explicación en este blog)

Ahora, debemos añadir la planificación al cron del usuario de la siguiente manera:
crontab ~/.cron

Y por último, recordar dos instrucciones más sobre el cron/crontab; para saber que tiene planificado nuestro usuario:
crontab -l

y para borrar la planificación:
crontab -r

Y ya está, la grabación empezará y terminará en base a la planificación, y podremos reproducirla cuando queramos tranquilamente en casa.