Edit 6/05/2010 : Si vous utilisez Flexget v1.0x, cet article est osolète, se référer à  Téléchargement automatisé de séries avec Flexget



Avertissement :

Le but de ce post est de montrer comment il est possible d’automatiser le téléchargement de torrents. Ce n’est en aucun cas l’apologie du piratage.




Cet avertissement effectué passons à la description du problème.

Comment faire pour automatiser le téléchargement de séries via un flux RSS ?

Au moment où j’ai mis ce système en place la version de Deluge utilisé ne permettait pas de s’abonner à un flux RSS. J’ai donc dû trouver une alternative qui à l’usage se révèle non seulement efficace mais aussi supérieure.


Cette alternative s’appelle Flexget.



La phrase d’introduction du site de Flexget décrit bien son usage et son rôle :


« FlexGet is a program aimed to automate downloading or processing content (torrents, podcasts, etc.) from different sources like RSS-feeds, html-pages, various sites and more. « 


Soit grosso-modo en Français :


« Flexget est un programme ayant pour rôle d’automatiser le téléchargement ou le traitement de contenus (torrents, podcasts) à partir de différentes source comme les flux RSS, les pages HTML, de nombreux sites et plus encore »


Bref ce qu’il nous faut pour répondre à la problématique posée.

Flexget va à partir d’un flux RSS nous informant en quasi temps réél de la mise à disposition d’un torrent, télécharger ce même torrent.

Là où il surpasse les clients torrent ayant la capacité à s’abonner à ces même flux RSS, c’est qu’on pourra lui indiquer ses préférence (en terme de qualité de release) et qu’il ne téléchargera qu’un seul torrent pour un même épisode d’une même saison d’une série donnée.


En pré-requis il nous faut un flux RSS nous informant de la mise à disposition d’un torrent. Dnas le but de ne pas trop inciter au priatage je n’indiquerais volontairement pas ici où trouver ce genre de site…


Installation de flexget


Flexget à besoin du package permettant à Python de parser le YAML et de feedparser permettant de parser les flux RSS, on installera donc  :


sudo aptitude install python-yaml python-feedparser



Téléchargement de la dernière version de flexget (la 0.9.3.2 dans mon cas) :

wget http://download.flexget.com/0.9/FlexGet_0.9.3.2.zip


Dézippage de l’archive téléchargée :

unzip FlexGet_0.9.3.2.zip


Et voila flexget est installé, reste à le paramétrer.


Paramétrage de flexget


Le paramétrage se fait dans un fichier yml, ce dernier peut avoir le nom que l’on veut et être placé où l’on veut, dans mon cas ce fichier de configuration se nomme configFlexget.yml et est placé dans le répertoire de flexget (lui même dans le home de mon user).


Ouvrir le fichier et copier une configuration ressemblant à ceci :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
global:
  download: ~/downloads/torrentfiles
 
settings:
  series:
    timeframe:
      enough: hdtv
 
feeds:
  Serie1:
    rss: http://xxxxx.net/serie1.xml
    series:
      - Serie1
 
   Serie2:
    rss: http://xxxxx.net/serie2.xml
    series:
      - Serie2


Point important :

Le YML (ou YAML) est un language structuré (comme le XML) mais il est beaucoup moins verbeux (pas de balise ouvrante et fermante)

En contrepartie la hierarchie des éléments est réalisé via l’indentation à base d’espace (surtout pas de tabulation).

Il convient donc d’être très rigoureux sur l’edition des fichiers yml.


La section global permet comme son nom l’indique le paramètrage global de flexget quelque soit le plugin utilisé par la suite, elle sert uniquement à définir le répertoire où les téléchargements vont êtres stockés.

La ruse consiste ici à mettre le même chemin que celui paramétré dans Deluge paramètre « Auto Add folder » (cf. mon article Installation d’un client torrent – Deluge), ainsi flexget télécharge les torrents et Deluge commence automatiquement le téléchargement.


Section settings, on met ici le paramétrage spécifique au plugins utilisés, dans le ca présent pour le plugin series il existe 2 paramètrages :

 
  • timeframe \ hour : pas utilisé encore mais ça ne devrait pas tarder. Cela permet d’indiquer à flexget qu’il faut attendre un certain temps entre la mise à disposition d’un torrent et son téléchargement. L’utilité : attendre qu’une nouvelle release soit disponible.
  • timeframe \enough : ce paramètre est l’une des force de Flexget, il indique quelle qualité de release est suffisante. Les valeurs possibles sont 1080p, 1080, 720p, 720, hr, dvd, hdtv, dsr, dsrip. Ainsi quand on a pas de télé HD il est inutile de télécharger du 1080p.

 

Vient ensuite la section de paramétrages de chacune des séries où l’on indique le nom de la série (Serie1) et le flux RSS associé.

Le paramètre feeds \ Serie1 \ series, qui a dans mon cas Series1 comme valeur, permet d’indiquer quelle est la série à télécharger dans le cas d’un flux recensant plusieurs séries.

 

Et voila concernant mon paramétrage, il ne faut pas hésiter à aller sur le site de Flexget pour voir les nombreuses possibilités de ce logiciel (téléchargement de comics, génération de flux RSS) et plus particulièrement les autres paramétrage du plugin serie

 

Pour tester votr fichier de configuration :

./flexget.py -c /home/svc/bin/flexget/configFlexGet.yml --check



Exécution de flexget


Pour exécuter flexget il suffit de faire :

./flexget.py -c ~/flexget/configFlexGet.yml

On peut alors evidemment ajouter cette ligne de commande dans une tache Cron….


Les commentaires sont fermés.