Nada en particular






Croncap v0.01

Debido a la reciente adquisición de un sintonizador de DVB-T (televisión digital terrestre) que funciona a las mil maravillas en linux, he pensado que sería de utilidad tener un script para automatizar la captura de programas.

Las ventajas de la captura directa de un dispositivo DVB-T son obvias, con una óptima calidad de recepción tendremos un video de una calidad similar al DVD, sin problemas de pérdidas de frames, y con un consumo de CPU mínimo para la captura (el stream DVB-T ya viene convenientemente comprimido en MPEG-2).

La idea es añadir el script principal, que he llamado croncap a la tabla del cron del sistema con una planificación determinada, pasando como parámetros el directorio de trabajo, la cadena de la que se capturará y la duración del programa. El script hará el resto.


Instalación:
Para el correcto funcionamiento, tenemos que instalar el script croncap.sh en un directorio contenido en PATH que permita la ejecución (/usr/bin por ejemplo). El resto de scripts pueden situarse en ese directorio o en el que desee (mientras se tenga en cuenta su situación a la hora de invocarlos).

Por tanto, descargad el paquete y descomprimidlo con el siguiente comando:

ferran@debian:~$ tar -jxvf croncap001.tar.bz2

Podéis copiar los archivos a /usr/bin (siempre con los permisos adecuados) con:

ferran@debian:~$ mv croncap*.sh /usr/bin

El script emplea el programa meconder para la captura, así que es necesario tenerlo instalado y correctamente configurado para sintonizar DVB (es decir, con el respectivo fichero channels.conf en el directorio de configuración de mplayer). Si podéis visualizar canales de TDT con mplayer ya estáis listos para empezar a programar la captura,


Funcionamiento
Ahora daré una pequeña explicación del funcionamiento del script, si queréis saltaros el rollo pasad directamente a la sección de descarga.

El script está pensado para la captura automatizada de programas periódicos. Por poner un ejemplo, vamos a capturar "Aquí no hay quien viva" (Antena 3, miércoles 21:45-23:45).

Lo primero que necesitamos es crear un directorio dónde colocaremos las capturas. Supongamos que tenemos una carpeta "capturas" en nuestro directorio principal donde guardamos las series que pretendemos capturar.

Creamos la carpeta de capturas:

ferran@debian:~$ mkdir capturas
ferran@debian:~$ cd capturas
ferran@debian:~/capturas$ mkdir ANHQV

En este directorio, colocaremos un fichero episodes.list que contendrá los nombres de los episodios del programa que deseamos capturar.
Como no sabemos el nombre de los episodios, de momento grabaremos los 20 primeros y los numeraremos del 1 al 20:

ferran@debian:~/capturas/ANHQV$ cd ANHQV
ferran@debian:~/capturas/ANHQV$ for(( i=1; i=<20; i++ )); do echo $i >> episode.list; done;

Ahora tan solo tenemos que programar cron para que ejecute nuestro script en el momento adecuado.
Esto se puede hacer mediante la aplicación crontab. Para simplificar más las cosas, he preparado un script para automatizar la tarea(croncap-add.sh).

Es necesarios conocer la sintaxis de cron para la cadena de planificación de ejecución, simplemente consiste en una serie de campos numéricos que indican cuando se debe ejecutar una tarea según "minutos horas dia mes diadelasemana".

Por ejemplo, para el caso que nos ocupa la cadena sería: "45 21 * * 4". Notad que el asterisco significa "cualquiera" y que el dia de la semana 1 es domingo, el 2 el lunes, etc....
Es útil saber que se pueden especificar franjas horarias mediante el guión. Si el programa se emitiera todos los dias laborables de la semana tendríamos: "45 21 * * 2-6".

El script croncap-add.sh toma como parámetros la cadena de cron, el directorio de trabajo, la cadena y la duración del programa. En nuestro caso:

ferran@debian:~/capturas/ANHQV$ crocap-add.sh "45 21 * * 4" /home/ferran/capturas/ANHQV ANTENA3 2:00:00

Una vez hecho esto, cada miércoles a las 21:45 el script se ejecutará, y capturará lo que se esté emitiendo en ANTENA3 durante 2 horas.
El fichero de captura se alamcenará en el directorio "~/capturas/ANHQV" y se llamará 1.mpg el primer miércoles, 2.mpg el segundo, etc...

En ese mismo directorio se genera un fichero captures.log con información acerca de las capturas. Es muy importante no eliminarlo ya que sirve para llevar el control de los capítulos grabados hasta el momento. También se genera un log por cada programa capturado con información detallada del progreso de la captura.

De esta forma, cuando tengáis suficientes episodios para grabar un DVD, editáis los MPEGs para elimar los anuncios y ya podéis quemar el DVD con la serie en calidad casi-DVD. Si sois más perfeccionistas podéis crear menús y reeditar o recodificar el video.


Otros:
En el paquete se incluyen dos scripts más para la gestión de programas de caputra:

  • croncap-ls.sh: Lista los programas que tenemos instalados actualmente en nuestro fichero de cron. No toma parámetros.
  • croncap-del.sh: Elimina uno de los programas de captura de cron. Toma como parámetro el número del programa que se quiere eliminar según croncap-ls.sh.

Faltaría por añadir un script que permita "saltar" capítulos de la lista de episodios por si algún dia nos olvidásemos de encender el ordenador o fallara la ejecución de cron por algún motivo.


Descargas:
Croncap v0.01


Llicència 

de Creative Commons
Aquesta obra està sota una Llicència de Creative Commons.