miércoles, 16 de enero de 2013

Descargando torrents desde un QNAP (I)

Hace tiempo conté mi estrategia de backup en casa. Tengo montado un servidor debian con un raid 1 y unos scripts personalizados de rsync para realizar la sincronización y copia de los datos.

Adicionalmente tenía un portátil un tanto antiguo con ubuntu con el que descargaba series por medio de bittorrent y alguna otra cosa con amule. Hace unos meses decidí que quería mejorar un poco toda esta infraestructura con un NAS. Así, después de mucho mirar compré un Qnap TS-412 y un par de discos de 2 TB. Con los dos discos he creado un raid 1 y ahora tengo ahí toda mi información, fotos, series, música,...

El qnap tiene un linux embebido con mucha funcionalidad y que es fácilmente ampliable y personalizable. Para las descargas utilizo Transmission que se puede instalar desde el gestor de software incluído. Transmission funciona perfectamente pero tiene un pequeño problema, no permite configurar un feed rss desde el que descargar los torrents. Esto es un gran problema para mí porque para descargar mis series favoritas utilizo Show RSS. Una vez registrado en la web eliges tu series de la lista y puedes generar un feed rss personalizado en donde se publicarán automáticamente los torrents de las series según estén disponibles.

Así que con este problemilla me puse a buscar una solución. Como no soy el único que tiene estos problemas estuve probando distintas alternativas que encontré en diversos foros, pero o no funcionaban correctamente o no me terminaban de convencer. Finalmente encontré TV Torrent RSS Downloader que casi cubre mis necesidades. Es una pequeña aplicación hecha en Java en la que configuras uno o varios feeds rss y unos filtros y descarga los archivos adjuntos. Después de hacer una pruebas en local todo funcionó a la perfección, pero hay había un problema ¿cómo instalo java en el qnap?

Después de bucear un poco por la web de Sun Oracle llegué a la web de descargas del JRE para Linux ARM y tras unas pruebas de ensayo-error descargué la versión correcta para mi arquitectura: ARMv5 Linux – Headless EABI, SoftFP, Little Endian. La instalación es tan sencilla como descomprimir el archivo y configurar el path correctamente y comprobar que el ejecutable funciona:
$ ./java -version
java version "1.6.0_38"
Java SE Embedded Runtime Environment (build 1.6.0_38-b05, headless)
Java HotSpot(TM) Embedded Client VM (build 20.13-b02, mixed mode)

Ahora con java instalado es tan sencillo como ejecutar:
$ java -jar tvrss.jar

Y los .torrents de cada serie se iran descargando automáticamente al directorio que hayamos especificado en el archivo de configuración. Una vez funcionando las descargas de los .torrents de cada serie, si configuramos la ruta de descarga al directorio watched de transmission, los archivos se añadirán y se pondrán a descargar automáticamente.

Con todo funcionando podemos configurar un script .sh que se ejecute a la hora que queramos y descargue automáticamente todos los torrents. Por ejemplo:

$ cat tvrss.sh 
#!/bin/bash

JAVA_HOME=/share/MD0_DATA/software/java/ejre1.6.0_38
APP_DIR=/share/MD0_DATA/software/transmission_scripts/tvrss
LOG_FILE=$APP_DIR/torrents.log

cd /share/MD0_DATA/software/transmission_scripts/tvrss
$JAVA_HOME/bin/java -jar $APP_DIR/tvrss.jar >> $LOG_FILE

Con esto solucionamos el problema de la descarga de los archivos .torrent y el añadirlos a Transmission, pero como comenté antes, la versión original de TV Torrent tiene un pequeño problema: los filtros. Por cada serie que queramos descargar es necesario añadir un filtro nuevo en el archivo de configuración para que ésta se descargue. Además, si en el feed rss publican una nueva versión, las típicas versiones PROPER o REPACK que corrigen problemas de sincronización o similar, éstas tampoco serán descargadas.

La solución en el siguiente artículo :-)

No hay comentarios:

Publicar un comentario