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!
English 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 :
- Niveau d’indentation. Toujours utiliser (un multiple de) 2 espaces et ne jamais utiliser de tabulation!
- Tous les plugins sont supposés à être utilisé au même niveau d’indentation.
- Colonnes (indentation). Faire très attention à ce point et bien suivre les exemples.
- Si des valeurs de textes devaient contenir les caractères {}[]%:, les entourer de simples quotes ‘ ‘.
- 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.
Super tuto ! 😛
@Natsu : Chouette, si cela t’a aidé, j’en suis ravi! 😉
Oui grave
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 😛
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 😉
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 🙂
@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 😉
Ca marche avec les rss privé ? (login/pwd) genre xxxx411 et alloxxxxxx 🙂
Benoit
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!