viernes, 14 de junio de 2013

RSS para Transmission con FlexGet

Si bien Transmission es uno de los mejores gestores de descargas P2P es cierto que tiene una carencia, y es justamente el no contar con un módulo dedicado a las descargas vía RSS. Afortunadamente esto lo podemos suplir gracias a FlexGet, un complemento que funciona con Transmission y otros sistemas P2P y con la red Usenet, o cualquier otro gestor que admita blackhole.


De hecho en mi caso FlexGet posee un plugin para funcionar con Transmission directamente pero hay una incidencia abierta con su malfuncionamiento al desarrollador de esta aplicación, parece que hay problemas con algunos códigos ascii, así que me basaré sólo en el sistema blackhole, así de paso sirve por si usas un sistema diferentes a Transmission.


Instalación

Primero debemos tener Python instalado y que lo puedes encontrar en los repositorios que he comentado en otras ocasiones.

Instalamos SQL Lite, para ello necesitamos que nuestra NAS tenga habilitado el iPKG:
ipkg install python27 py27-setuptools sqlite
Nos dará como respuesta una instalación correcta o este mensaje si ya lo tenías instalado:
Package python27 (2.7.3-1) installed in root is up to date.
Package py27-setuptools (0.6c11-2) installed in root is up to date.
Package sqlite (3.7.14.1-1) installed in root is up to date.
Nothing to be done
Ahora insta`lamos el propio Flexgeg
easy_install-2.7 flexget
Igual que antes procederá a su instalación o veremos una confirmación si ya existía conforme es correcto el paquete actual.
Searching for flexget
Best match: FlexGet 1.1
Processing FlexGet-1.1-py2.7.egg
FlexGet 1.1 is already the active version in easy-install.pth
Installing flexget script to /opt/local/bin
Installing flexget-webui script to /opt/local/bin
Using /opt/local/lib/python2.7/site-packages/FlexGet-1.1-py2.7.egg
Processing dependencies for flexget
Finished processing dependencies for flexget
Una vez instalado o para futuras ocasiones podemos verificar la versión instalada:
/opt/local/bin/flexget -V
Nos dará de respuesta las versiones instalada y disponible:
1.1.4
Latest release: 1.1.31
Una vez instalado y confirmado su funcionamiento vamos a configurarlo. FlexGet se basa en un archivo de configuración para saber con qué módulos debe trabajar y a donde debe acceder, de hecho todos los parámetros vendrán de ese fichero y hay multitud de configuraciones y especificaciones posibles, en este tema sólo voy a entrar a explicar la justa para saber cómo hacer funcionar los RSS con nuestro sistema P2P.


Config.yml, la configuración para nuestros RSS

Una vez instalado FlexGet y sus complementos pasaremos a la configuración y personalización de nuestros RSS, para ello debemos utilizar un archivo config.yml que deberemos crear en una carpeta específica, por ejemplo en las carpetas de usuario (homes) o cualquier otra, pero siempre deberemos tener en cuenta los posibles problemas de permisos de acceso que pudiesen presentar. FlexGet busca por defecto este archivo en las ubicaciones:
  • /opt/local
  • /root/.flexget
  • /root/.config/flexget

El fichero config.yml debe componerse de dos partes principales: presets y tasks. Dentro de estas dos partes usaremos los módulos o plugins que FlexGet incorpora y que puedes encontraros en la wiki oficial del programa, en este caso nos centraremos principalmente en el plugin series.

Para ver como configurarlo voy a coger uno de los propios ejemplos de la web de FlexGet y que creo que es muy completo además de adaptarse para muchos casos generales. Es muy importante respetar los guiones y espacios, no uses nunca el tabulador.


Vamos a analizar la composición de este contenido para el archivo config.yml que sería totalmente funcional:

1.- Explicación del proceso de renombrado para los archivos descargados, podemos utilizar FlexGet para que nos renombre las series, si usas otro sistema o SickBeard te clasifica tus series puedes eliminar esta parte.

2.- Private_torrents: yes | no
Nos permite especificar si queremos trabajar con torrent públicos o no. Si en su valor reflejamos "yes" nos rechazará todos los torrents públicos.

3.- Especificamos como será la preset "tv", con que propiedades queremos que descargue los vídeos.
exact: yes | no
Forzamos si queremos que las coincidencias del nombre sean exactas a las que indiquemos.
propers: no|tiempo x
Podemos especificar si queremos que se acepten versiones propers (repacks) y en caso afirmativo le diremos durante cuanto tiempo aceptaremos que pueda descargarse ese repack.
quality: hdtv| 720p | 720p | hdtv+ | (360p-720p hdtv divx|xvid) | 360p !dts "!h264 !dts" | "<=720p"
Por último definimos el path donde ser guardarán, aconsejo usar blackhole para importar los ficheros a Transmission.

Ha tener en cuenta que caso de conflictos de versiones en un mismo episodio FlexGet elige la versión con la caldiad de video más alta, de ahí que es conveniente que elijamos la calidad:
Defiance.S12E06.720p.x264-HAVOC ---> episodio elegido para descarga
Defiance.S12E06.SDTV.x264-WebDB
4.- Añadiremos las series que queremos descargar.

5.- Si usásemos el módulo para Tranmission aquí indicaríamos los valores para conectarse al servicio, a día de hoy recomiendo no utilizarlo a menos que te molestes en editar algunos de los propios ficheros de FlexGet. Si no lo usas puedes eliminar.

6.- Tasks: En este apartado añadimos los diferentes RSS con los que queremos trabajar y le especificamos a que preset se aplica (tv). Generalmente solemos usar un único RSS para descargar series, pero en este ejemplo vemos el uso de varias fuentes y una prioridad asignada a cada una de ellas (a menor valor mayor prioridad).

Insisto que es muy importante el respetar los dobles espacios, guiones cualquier otro rasgo de la estructura del fichero, puedes consultar este ejemplo en la página oficial de FlexGet.


Ejecutar FlexGet
Puedes ejecutar el programa directamente con:
/opt/local/bin/flexget
Si has guardado el archivo config en una ubicación determinada como dentro de la homes/usuario debes especificar el path para que se cargue el programa:
--c /ruta/archivo/config.yml 
En caso de pruebas puedes lanzarlo como
 /opt/local/bin/flexget --logfile /volume1/homes/flexget/flexget.log --c /ruta/archivo/config.yml --check
Hay cientos de combinaciones y parámetros con los que podemos jugar con FlexGet, lo ideal es que tú mismo vayas explorando y probando la configuración más ajustada a tus descargas.


Programando la ejecución de FlexGet

Si queremos que FlexGet se ejecute cada intervalo de tiempo determinado podemos usar el propio scheduler de Synology o acudir a CronJob para tal fin. Comentar que no debemos abusar con los chequeos contra los RSS o corremos el riesgo de que nos incluyan en sus listas de baneo por abuso de consulta.

- Programador de Tareas de Synology:
Vamos a Panel de Control / Programador de Tareas/Crear y rellenamos la línea para ejecutar FlexGet que deseemos y seleccionamos en este caso su ejecución cada 3 horas.



- CronJob
Podemos utilizar CronJob gracias a los repositorios de aplicaciones, sólo deberemos rellenar los campos y tiempo.



2 comentarios:

Hola Carlos, podrías poner el código en pastebin? Enhorabuena por tu blog!

En la página oficial tienes varios ejemplos sumamente parecidos, no te sirve?: http://flexget.com/wiki/Cookbook/Series/SeriesPresetMultipleRSStoTransmission

Publicar un comentario

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More