Automatizar las descargas de series con rTorrent, FlexGet y RSS

Desde hace ya unos años se ha puesto muy de moda la descarga de series de televisión. Yo descargo principalmente series americanas, pero también algunas inglesas y anime japonés, aunque el anime lo bajo de fansubs de toda la vida y no como voy a explicar aquí. Bajar las series de internet tiene muchas ventajas:

  • Inmediatez: tengo los episodios pocas horas después de su emisión en EEUU (por poner el ejemplo más común) y no tengo que esperar a que algún canal español los emita aquí.
  • Sin anuncios: no hay nada que me corte más el rollo cuando estoy viendo series o películas que las dichosas interrupciones publicitarias, que además son laaaaargas.
  • Versión original: llamadme friki, pero para mí no hay nada como ver las cosas en su versión original, cada vez me gusta menos el doblaje. Lamentablemente mi nivel de inglés no es perfecto y tengo que tirar de subtítulos en español (o en inglés en ocasiones), pero aun así merece la pena. Ahora con el TDT existe la posibilidad de disfrutar de la VOSE en la tele, pero muchas veces los subtítulos son cutres a más no poder.
  • Sin horarios: veo la series cuando puedo y quiero, y no cuando le sale de las narices al que decida la programación de los distintos canales.
  • Calidad: siempre descargo en alta definición (720p en el caso de las series), así que la calidad es mejor que en la mayoría de los canales españoles.

Como ya comenté en rTorrent: cliente de BitTorrent en modo texto para linux, ahora que Megaupload ha caído está aumentando el uso de las redes P2P, especialmente BitTorrent. Así que entre la moda de las series y  el auge de BitTorrent, espero que este post le sea útil a mucha gente. En él explicaré cómo hacer para no tener que bajar las series, sino que se bajen ellas solitas gracias al uso de FlexGet, un feed RSS y rTorrent (o cualquier otro cliente BitTorrent).

Instalación de FlexGet.

Si no tenéis instalado Python 2.5.x-2.7.x, hay que instalarlo. Y también easy_install (paquete python-setuptools):

sudo apt-get install python2.6 python-setuptools

A continuación se instala ya FlexGet, verificando que se han hecho correctamente:

sudo easy_install flexget
flexget -V

Configuración.

Ahora viene la miga del asunto: configurar FlexGet para que se baje las series que seguimos habitualmente. Hay que proporcionarle un feed RSS de donde sacará los torrents a bajar, una lista con todas las series que queremos y un directorio donde descargar el fichero .torrent, que en este caso será ~/rtorrent/torrents. Ya expliqué en rTorrent: configuración y uso cómo hacer para que cualquier torrent que se meta en ese directorio se empezara a descargar automáticamente, así que una vez copiado solo quedaría esperar a que termine la descarga.

FlexGet tiene muchas opciones, pero yo me voy a limitar a explicar mi configuración, que creo que será suficiente para la mayoría. Si alguien quiere profundizar más o tiene otras necesidades, que le eche un vistazo al enlace anterior. Para empezar a configurar hay que abrir el fichero ~/.flexget/config.yml:

nano ~/.flexget/config.yml

Este es el aspecto que tiene el mío:

feeds:
  Series HDBits:
    rss: feed_rss_de_los_torrents
    series:
      - alcatraz
      - californication
      - castle
      - community
      - dexter
      - doctor who
      - entourage
      - episodes
      - fringe
      - futurama
      - game of thrones
      - glee
      - house
      - how i met your mother
      - misfits
      - mr sunshine
      - new girl
      - sherlock
      - supernatural
      - the big bang theory
      - star wars the clone wars
      - the it crowd
      - torchwood
      - two and a half men
      - the walking dead
    content_size:
      min: 200
      max: 3000
    content_filter:
      reject: '*WEB-DL*'
    download: ~/rtorrent/torrents
  
  • Series HDBits es simplemente el nombre que le he puesto yo, podía haber sido cualquier otro.
  • En rss iría el feed que elijáis para descargar, yo uso el de HDBits, que es un tracker privado americano donde hay películas y series exclusivamente en alta definición (el paraíso, vamos). El feed tiene que proporcionar el torrent directamente, no un enlace que lleve a una ficha del episodio o algo así (en HDBits, por ejemplo, tienen de los 2). Si no sabéis de dónde sacar un feed de estas características, podéis configuraros uno vosotros mismos en showRSS, una web desde la que podéis elegir las series que os interesan y generar un feed solo con esas series.
  • series es el listado de las series que yo veo (sí, todas esas). El guión es necesario, igual que los dos puntos que hay por todo el fichero.
  • content_size permite especificar un tamaño de fichero mínimo y máximo, yo lo uso sobre todo para evitar descargar packs de temporadas o series enteras, aunque realmente FlexGet no debería dejar que eso pasara.
  • content_filter añade filtros adicionales. Con reject se especifica una cadena de texto que hace que el torrent se rechace si la lleva en el nombre. Yo, por ejemplo, no quiero bajar los WEB-DL, a pesar de su mayor calidad (sonido 5.1, no sale el logo del canal...) porque ocupan más y, sobre todo, porque luego me vuelvo loco para encontrar los subtítulos.
  • download es la carpeta donde se copiará el torrent, como ya habréis imaginado.

Ejecución.

Una vez configurado, recomiendo comprobar que todo está bien con:

flexget --check

También se puede hacer una prueba de ejecución sin que realmente se ejecute. Esto viene bien para ver la salida en pantalla del programa, pero sin tener que descargar nada por el momento:

flexget --test

Ejecutarlo normalmente no tiene mucho misterio:

flexget

Pero claro, hacer esto así sería un coñazo de tomo y lomo, así que mejor dejarlo programado para que se ejecute cada cierto tiempo:

crontab -e

Y añadimos esta línea:

*/10 * * * * flexget -q > /dev/null 2>&1

De esta forma flexget se ejecutará cada 10 minutos. Yo lo pongo cada así para que pase el menor tiempo posible entre que salga el torrent y yo empiece a bajarlo, que mantener el ratio en HDBits no es tarea fácil; pero eso ya va a gusto del consumidor. La parte de > /dev/null 2>&1 sirve para eliminar la salida del comando. También se puede poner > fichero_log y se guardaría en un fichero por si se quiere mirar en el futuro en caso de que haya algún problema.

Por último, si queréis automatizar las descargas de series y no usáis linux, sino Mac, os puede venir bien leer TVShows 2 y Transmission, la forma más cómoda de bajar series, que @alvaroprb escribió allá por enero.