Tuto : Téléchargement torrent via flux RSS sur un Nas Synology

Le téléchargement de fichiers torrent via des flux RSS est maintenant mis en place nativement dans beaucoup de client Bittorrent sous Windows ou Mac. Dans le monde des NAS (Et linux par extension) c’est une autre paire de manches.
Pour y arriver, il va falloir justement se les retrousser, et y mettre du sien!
Mais au final, et ce grâce au très bon logiciel FlexGet, ça fonctionne, et ce plutôt pas mal!
Vu que j’ai un peu galéré, et que peu (voir pas!) de tuto sur ce sujet sont dispo, me voilà à partager mon expérience avec vous 😉
Après cette petite introduction, c’est parti pour le tuto lui même!

EnglishEnglish version (Google translation inside ;))

Tout d’abord , il y a un certains nombres de pré-requis :
1) Avoir installé le gestionnaire de package IPKG sur son NAS.
Si tel n’est pas le cas, voir mon Tuto : (A venir)
2) Avoir installé le client Transmission (version daemon donc) sur son NAS avec un WatchDir actif.
Si tel n’est pas le cas, voir mon Tuto : (A venir : En attendant, plus d’infos sur ce point : Transmissionbt – Editing Configuration Files )

En gros, voici les étapes que nous allons mettre en oeuvre via ce Tuto :

1) Installer Python 2.5 via le gestionnaire de package IPKG
2) Installer Easy_install
3) Installer Flexget
4) Paramétrer Flexget
5) Mettre à jour le crontab

1) Installer Python

1.1) Avant d’installer python, nous allons mettre à jour notre liste de package IPKG via la commande :

ipkg update

Pour vérifier si vous avez déjà Python d’installé, ou tout simplement connaitre la version de celui-ci, exécuter la commande suivante :

python -V

Si python est déjà installé, vous devriez avoir un message du type suivant s’afficher :

Python 2.5.5

Si tel est le cas, on passe directement au point 2.
Sinon, on continue, et on lance l’installation de Pyhon grâce à la commande :

ipkg install python2.5

L’installation s’effectue de façon autonome.
Pour vérifier que l’installation s’est bien déroulé, exécuter à nouveau la commande :

python -V

Hop, 1ère étape OK. On continue!

2) Installer Easy_install

Easy_install est un programme inclut dans un package nommé SetupTools permettant l’installation simplifiée de programmes Python. Ce programme est nécessaire pour l’installation de FlexGet.

On va tout d’abord se rendre dans le dossier tmp où nous pourrons télécharger le package :

cd /tmp/

Ensuite, on va télécharger le package directement à partir d’internet vers notre dossier tmp.
En fonction de la version de python qui est installé, (2.5 ou 2.6) changer le lien vers le bon fichier que vous trouverez ici http://pypi.python.org/pypi/setuptools#files pour correspondre à l’exemple ci-dessous (pour python 2.5) :

wget http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg

Le fichier « setuptools-0.6c11-py2.5.egg » est téléchargé dans notre dossier tmp. Une fois le téléchargement fini, on va lancer l’installation à proprement parlé :

sh setuptools-0.6c11-py2.5.egg

Et voilà, l’installation de easy_install est OK et est présent dans /opt/local/bin. Allez, on continue !

3) Installer Flexget

Toujours dans notre dossier /tmp, on va télécharger le package Flexget. Ici aussi, il y a deux package différents en fonction de la version de python utilisée. Si vous n’utilisez pas la version 2.5 de python, aller sur le site de Flexget pour récupérer la version appropriée (et par la même occasion la dernière version disponible) et metttez à jour le lien correspondant dans la commande suivante :

wget http://download.flexget.com/unstable/FlexGet-1.0r2310-py2.5.egg

Ensuite, on installe tout ça en lançant la commande suivante (à mettre à jour au besoin en fonction de la version du fichier Flexget récupérée) :

/opt/local/bin/easy_install /tmp/FlexGet-1.0r2310-py2.5.egg

Et voilà, ça c’est de l’installation facile 🙂
On peut quand même vérifier que l’installation est correcte via la commande suivante :

/opt/local/bin/flexget -V

C’est bon? Vous avez un message du genre « FlexGet 1.0r2310« , c’est que c’est OK. Alors, on passe à la suite!

4) Paramétrer Flexget

Flexget est installé. C’est bien.
Maintenant, on va faire en sorte de lui dire quoi télécharger, et où les télécharger.
Pour se faire nous allons créer un fichier de configuration pour Flexget, nommé config.yml

Ce fichier sera formaté selon le code YAML (plus d’info par ici), il y a donc quelques règles à respécter :

  1. Niveau d’indentation. Toujours utiliser (un multiple de) 2 espaces et ne jamais utiliser de tabulation!
  2. Tous les plugins sont supposés à être utilisé au même niveau d’indentation.
  3. Colonnes (indentation). Faire très attention à ce point et bien suivre les exemples.
  4. Si des valeurs de textes devaient contenir les caractères {}[]%:, les entourer de simples quotes ‘ ‘.
  5. L’utilisation de chiffre en tant que texte, les entourer de simples quotes ‘ ‘.

Le fichier de configuration est à placer dans le dossier /root/.flexget/ et sera donc nommé config.yml

Voici l’exemple d’un fichier simple config.yml :

feeds:
  tv-shows:
    rss: http://www.ssrze.it/feed/
    series:
      - chick
      - '42'
      - north park
    download: /volume1/torrents/

quelques explications sur l’exemple :
– RSS –> url vers le flux RSS
– Series –> C’est sous series qu’on va lister les séries à télécharger. Il faut bien sûr que ces séries apparaissent dans le flux rss.
– download –> Le dossier vers lequel les .torrent seront téléchargé. Il doit correspondre au « Watch Dir » mis en place du coté de Transmission (Tuto à venir : En attendant, plus d’infos sur ce point : Transmissionbt – Editing Configuration Files ))

Il est bien sur possible de créé des fichiers de configuration bien plus complexe en précisant la qualité souhaitée (720p, HDTV…), de lister plusieurs flux RSS, et même d’envoyer un email dès qu’un fichier est téléchargé!
Par exemple, un fichier plus complexe gérant ces derniers point donne ceci :

presets:
  tv1:
    email:
      from: email@gmail.com
      to: email@gmail.com
      smtp_host: smtp.gmail.com
      smtp_port: 25
      smtp_login: true
      smtp_username: email@gmail.com
      smtp_password: password
      smtp_tls: true
    download: /volume1/Downloads/TorrentWatchDir/
    series:
      720p:
        - '42'
        - ISC
      HDTV:
        - Muidem

  tv2:
    email:
      from: email@gmail.com
      to: email@gmail.com
      smtp_host: smtp.gmail.com
      smtp_port: 25
      smtp_login: true
      smtp_username: email@gmail.com
      smtp_password: password
      smtp_tls: true
    download: /volume1/Downloads/TorrentWatchDir/
    series:
      720p:
        - GBT
        - HYMYD
      HDTV:
        - PBLL

feeds:
  RSS1:
    rss: http://www.ssrze.it/feed/
    preset: tv

  RSS2 :
    rss: http://rss.btp.org/user/zeropluszeroegallateteatoto
    preset: tv2

Si vous désirez effectivement aller plus loin dans la configuration de FlexGet, je vous invite à vous rendre sur le Cookbook (Livre de recette!) du site FlexGet.

Petit conseil: pour éviter la configuration, pouvant se révéler fastidieuse, d’un fichier de config pour FlexGet en ligne de commande sous VI, créez le fichier sur votre ordinateur grâce a votre éditeur de texte favori, positionnez le ensuite dans un dossier partagé de votre NAS, « Partage » par exemple, puis en ligne de commande copiez le dans le bon dossier sur votre NAS via la commande suivante :

cp /volume1/Partage/config.yml /root/.flexget/

Une fois que vous avez mis en place ce fichier de configuration, il va falloir le tester. Pour ça, FlexGet inclut un mode test permettant de vérifier si votre fichier de configuration est bon, et ce qu’il est censé télécharger.
La commande est la suivante :

/opt/local/bin/flexget --test

Il est aussi possible de lancer FlexGet en mode vérification, permettant ainsi de nous préciser, en cas de problème sur le fichier de configuration, où se situe l’erreur. La commande correspondante est la suivante :

/opt/local/bin/flexget --check

Tout est bon ? Alors, passons à la suite!

5) Mettre à jour le Crontab

Tout bon jusque là? Parfait… Il manque juste une dernière petite chose : automatiser tout ça!
Et pour se faire nous allons devoir toucher au fichier que l’on nome Crontab (Plus d’info par ici) qui permet la programmation de tâche programmées.
Nous allons tout d’abord ouvrir ce fichier avec la commande suivante :

vi /etc/crontab

Il suffit ensuite dans ce fichier de rajouter une nouvelle ligne :
(Rappel: I pour écrire dans le fichier, ESC :wq pour quitter et enregistrer les modifications)

*/30    *       *       *       *       root    /opt/local/bin/flexget --cron

Cette ligne va nous permettre de lancer FlexGet toutes les 30 minutes.

Vous pouvez bien sûr mettre à jour ceci selon votre convenance, toutes les heures, plus, moins… C’est à vous de voir!

Enfin, après avoir mis à jour notre fichier crontab, nous devons le redémarré afin que ces modifications soient prise en compte.
Pour se faire, exécuter les scripts suivant :

/usr/syno/etc/rc.d/S04crond.sh stop

/usr/syno/etc/rc.d/S04crond.sh star

Voilà, c’est tout bon!

Vous n’avez plus qu’à vérifier que vos fichiers sont bien ajoutés dans Transmission 😉

Des questions, des suggestions, des remarques (pertinentes ou pas ^^), n’hésitez pas à vous exprimer, me remercier ou tout autre chose dans les commentaires 😛

A Propos

Ce tuto n’a pas pour but de promouvoir ou d’encourager le piratage d’œuvres protégées. Il tente seulement de montrer cette possibilité.  Ce blog et son auteur se dissocient de toutes utilisations contraire à la loi sur la propriété intellectuelle qui seraient faites grâce à ce tuto et invite ses membres à se renseigner et à respecter les lois en vigueur à ce sujet dans leurs pays respectifs.

Tuto Version 1.4, le 16/08/2011.

Vous pourriez aussi être intéressé par...

  1. Natsu dit :

    Super tuto ! 😛

  2. Jess dit :

    @Natsu : Chouette, si cela t’a aidé, j’en suis ravi! 😉

  3. Natsu dit :

    Oui grave :mrgreen:
    J’ai dû légèrement m’adapter pour un NAS my book world edition II mais rien d’impossible ^^
    Maintenant le plus dûr c’est de faire un fichier config.yml qui va bien 😛

  4. Jess dit :

    C’est effectivement pas seulement applicable aux Nas Synology, mais à la l’ensemble des NAS fonctionnant sous un système linux (Tous?!).
    Pour un le fichier de config, si tu galères trop, je peux toujours t’envoyer un exemple ou le mien, ça peut toujours d’aider 😉

  5. Natsu dit :

    Salut Jess,
    Oui je veux bien un exemple. Je souhaite activer la fonction d’email (via un compte gmail) pour être averti des nouveaux torrents. je n’arrive pas à comprendre comment associer un feeds RSS à un show tv 😐
    J’ai pourtant regardé le Cookbook mais sans succès 🙁
    http://flexget.com/wiki/Cookbook/Series/Preset

    Merci 🙂

  6. Jess dit :

    @Natsu: C’est une bonne question, et pour se faire, tu dois effectivement passer par 2 « preset » différents.
    J’ai mis à jour le 2ème exemple plus « complexe » en prenant soin d’y positionné 2 presets : tv1 et tv2.
    Et j’ai mis dans l’exemple les infos nécessaires pour les mails passant par gmail 😉

  7. Benoit dit :

    Ca marche avec les rss privé ? (login/pwd) genre xxxx411 et alloxxxxxx 🙂
    Benoit

  8. Jess dit :

    Bonne question benoit!

    Certains trackers privés ont effectivement des flux rss, mais il faut déjà s’assurer que ces flux pointent bien vers les fichiers « .torrent ».
    Ensuite, il faut effectivement tester l’url avec la combinaison login/password.
    Je ferai un test de mon coté, n’hésites pas à en faire un si tu trouves quelque chose!

Un commentaire? C'est par ici :

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.