Cela fait quelques années que j’utilise Flexget — relativement basiquement — pour télécharger automatiquement les épisodes des séries que je suis mais ce n’est que depuis récemment que je suis parvenu à une configuration pleinement satisfaisante.
Flexget est un outil d’automation pour médias, notamment pour séries et animes, permettant entre autres de télécharger et d’organiser les épisodes...
Je ne prétends pas ici présenter l’outil dans ses moindre détails mais simplement présenter la configuration utilisée sur mon Raspberry Pi qui envoie les torrents à un daemon Transmission qui tourne sur mon NAS D-Link DNS-320 avec fun_plug (cf. cet article).
Pour l’installation, on choisit l’option « virtualenv » de la documentation
python3 -m venv ~/flexget/
cd ~/flexget/
bin/pip install flexget
Cependant, si vous souhaitez utiliser le plugin Transmission de Flexget, il vous faudra installer le paquet transmission-rpc :
bin/pip install transmission-rpc
sinon vos logs (dans ~/.config/flexget/flexget.log
) vous afficheront des lignes de ce type :
2021-10-29 09:09:48 WARNING task feed-eztv Aborting task (plugin: transmission)
2021-10-29 09:09:51 CRITICAL transmission feed-rarbg transmission-rpc module version 3.0 or higher required.
La configuration de FlexGet se fait dans le fichier ~/.config/flexget/config.yml
et nécessite de prêter une attention toute particulière aux indentations...
Sans entrer dans le détail : on se connecte à une instance de Transmission, on définit les critères de téléchargement des torrents des séries que l’on suit (depuis le site TV Calendar) en rejetant les séries issues de certains networks et on envoie un mail pour annoncer les épisodes téléchargés.
Et ce pour deux flux RSS différents, chacun faisant l’objet d’une tâche que l’on lance automatiquement toutes les heures.
templates:
tv:
transmission:
host: 192.168.X.XX
port: 9091
# username: username
# password: password
configure_series:
settings:
timeframe: 12 hours
target: 1080p
quality: 720p-1080p
propers: 3 days
from:
pogcal:
username: azerty@uiop.fr
password: XXXXX
thetvdb_lookup: yes
if:
- "tvdb_network and tvdb_network=='Netflix'": reject
- "tvdb_network and tvdb_network=='Amazon'": reject
notify:
task:
template: html # Optional, if you want html instead of plain text
via:
- email:
from: azerty@uiop.fr
to:
- azerty@uiop.fr
- qwerty@uiop.com
smtp_host: smpt.host.com
smtp_port: 587
smtp_username: azerty@uiop.fr
smtp_password: "XXXXXX"
smtp_tls: yes
html: yes # To parse template as HTML
tasks:
feed-eztv:
priority: 1
template: tv
rss: https://eztv.re/ezrss.xml
feed-rarbg:
priority: 2
template: tv
rss: http://rarbg.to/rssdd.php?categories=2;18;41;49
schedules:
- tasks: '*'
interval:
hours: 1
L’idée est donc de faire tourner FlexGet en mode daemon et de lui faire déclencher des tâches régulièrement (la section schedules en toute fin de fichier). Pour ce faire, on le lance ainsi :
~/flexget/bin/flexget --loglevel VERBOSE daemon start --autoreload-config -d
Pour que FlexGet se lance automatiquement à chaque démarrage, on crée une tâche Cron grâce à la commande crontab -e
@reboot /home/pi/flexget/bin/flexget --loglevel VERBOSE daemon start --autoreload-config -d
Un message, un commentaire ?