Programar la descarga de Torrents

El problema del día consiste en poder descargar los episodios de las series favoritas a medida que van saliendo publicados los .torrents correspondientes.

La idea es hacerlo de la forma más automatizada posible, es decir que no nos tengamos que acordar que ayer se estrenó un capítulo y por tanto hay que buscarlo, bajarlo, agregarlo al cliente de torrent, etc.

Para solucionar esto recurrimos a los feeds RSS que ofrecen muchas páginas, donde listan los últimos programas subidos, a Deluge como cliente torrent y a FlexGet para bajar y filtrar los feeds.

Instalando Deluge

Primero que nada creamos un usuario para que corra el demonio:

$ sudo adduser --disabled-password --system --home /var/lib/deluge  --group deluge

Creamos los archivos de Log y le asignamos como dueño el usuario creado

$ sudo touch /var/log/deluged.log

$ sudo touch /var/log/deluge-web.log

$ sudo chown deluge:deluge /var/log/deluge*

Para la instalación de los paquetes de Deluge ingresamos la siguiente linea en la consola:

$ sudo apt-get install deluged deluge-gtk deluge-web

Con esto instalamos el demonio, la interfáz gráfica y la intrefaz web.

Creamos el script de inicio con el que vamos a iniciar el demonio en cada arranque

$ sudo vim /etc/init.d/deluge-daemon

El contenido del script podemos sacarlo desde este sitio.

Ahora le damos permisos de ejecución y lo agregamos a los scripts que corren al inicio

$ sudo chmod a+x /etc/init.d/deluge-daemon

$ sudo update-rc.d deluge-daemon defaults

En el siguiente reinicio el demonio debería estar corriendo sin problemas.

Sino también podemos probar iniciarlo con

$ /etc/init.d/deluge-daemon start

Instalando y configurando Flexget

rimero vamos a instalar un instalador de paquetes de Python:

$ sudo apt-get install python-pip

Luego pip nos permitirá instalar FlexGet

$ sudo pip install flexget

Verificamos que todo se instaló correctamente:

$ flexget -v

Si todo va bien creamos el directorio donde almacenar la configuración

$ mkdir ~/.flexget/

y dentro de este directorio creamos un archivo llamado config.yml

$ nano config.yml

Este es el contenido de mi config.yml

tasks:
  seriestv task:
    rss: http://www.ezrss.it/feed/

    series:
      - Game of Thrones:
          quality: 720p
      - Two and a half men

    deluge:
      path: /home/ernemir
      label: tv
      queuetotop: yes

Básicamente se definen tareas para que FlexGet ejecute. Dentro de cada tarea se definen tres cosas:

  • plugin de entrada: define la fuente de información (en este caso un feed rss)
  • un filtro: compuesto por el plugin series que filtra las series por su nombre, calidad, etc.
  • plugin de salida: que se conecta con el cliente torrent (deluge en este caso) para pasarle el torrent , decirle donde bajarlo y en que posición colocarlo en la cola

El secreto del archivo config.yml es la indentación de 2 espacios en blanco (no usar tab) entre las diferentes secciones y sub-secciones.

Sobre las opciones que pueden especificar en el config.yml hay mucha documentación disponible aquí.

Una vez que tienen el config.yml vamos a verificar que la sintaxis es correcta con

$ flexget --check

Y realizamos una prueba sin descargar nada con el fin de ajustar cualquier parámetro en el config.yml:

$ flexget --test -v

Programar la ejecución de FlexGet

El paso que nos queda es hacer que FlexGet se ejecute periódicamente buscando novedades, para lo cual recurriremos a cron.

El criterio en este caso va a depender de cuantas series tengamos agregadas, en que día salen los estrenos, etc. También hay que tener en cuenta que algunos sitios pueden llegar a banear nuestra IP si nos abusamos buscando actualizaciones muy frecuentemente.

Una buena opción en mi caso sería buscar actualizaciones los días lunes y viernes cada 3 horas aproximadamente.

Por lo tanto editamos el archivo cron con el siguiente comando:

$ crontab -e

e ingresamos la siguiente linea

* */3 * * 1,5 /usr/local/bin/flexget --cron

Para más información sobre cron consulten estas guías:

http://dns.bdat.net/documentos/cron/x50.html
http://usemoslinux.blogspot.com/2010/11/cron-crontab-explicados.html

3 pensamientos en “Programar la descarga de Torrents

  1. Yo utilizo Transmission, que es eficaz y tiene una interfaz web. Lo pongo a descargar desde la Raspberry Pi y lo controlo desde mi equipo de escritorio, permitiéndome tener este algo más libre de procesos.

  2. Muy interesante. No he tenido la oportunidad de jugar con esos dispositivos. Aquí por restricciones en las importaciones, se hace muy caro y/o arriesgado traer esos productos.

  3. Pingback: Descargar torrents por RSS con deluge y flexget | x-mint Blog

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s