Torrents por RSS con deluge y flexget

flexgetEsta entrada es de un blog que visito normalmente “pollo sin cabeza” y me pareció interesante añadirla  ya que muchas veces por tiempo o pereza siempre nos olvidamos de descargar nuevos capítulos de nuestras series favoritas. 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 interfaz 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

Primero 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:
  task name:
    rss: http://feeds2.feedburner.com/newpctorrent
 
    series:
      720p: 
      - sleepy hollow
      - the blacklist
      - 12 monkeys
      - Better call saul
      - Helix
      - shameless
      - arrow
      1080p:
      - The Walking Dead 
    content_filter:
      reject: 'V.O.'
    download: ~/Descargas/
 

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

Si nos da algún error podemos intentar actualizar flexget

$ sudo pip install --upgrade flexget

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

Si queremos lanzar el flexget para comprobar si hay algún capítulo nuevo

flexget execute

Sacado de https://pollosincabeza.wordpress.com

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