Installer, configurer et mettre à jour FlexGet

FlexGet est un outil d’automatisation polyvalent pour tous les médias.
Il permet par exemple de télécharger des séries ou des films automatiquement à partir de fichiers torrent ou de flux RSS de torrent.

Installation de FlexGet sous Linux

Prérequis

Python

Versions de Python supportées :

  • 2.7
  • 3.3 à 3.5
  • 3.6 depuis la version 2.11.x de FlexGet

Pour connaitre la version de Python installée et installer une version spécifique :

python -V
sudo apt-get install python3.x
PIP

Le prérequis suivant est l’outil Python package manager dénommé PIP.
Installation :

sudo apt-get install python-pip

Installer FlexGet

Commencer par mettre à jour l’outil setuptools puis installer FlexGet avec les commandes suivantes :

sudo pip install --upgrade setuptools
sudo pip install flexget

Lancer FlexGet en mode daemon

FlexGet est conçu pour être exécuté depuis le user crontab.
Avec FlexGet en mode daemon, utiliser le plugin scheduler pour définir l’exécution des tâches directement dans le fichier de configuration.

Pour lancer le daemon au démarrage du système, éditer le fichier cron avec la commande :

crontab -e

Ajouter les lignes suivantes au crontab.
La seconde ligne est utile pour relancer le Daemon toutes les heures en cas de plantage.

@reboot /usr/local/bin/flexget daemon start -d
0 */1 * * * /usr/local/bin/flexget daemon start -d >/dev/null 2>&1

Gestion du daemon FlexGet

Pour lancer le daemon FlexGet utiliser la commande start.
Utiliser le paramètre -d pour lancer le daemon en arrière plan.
Utiliser le paramètre –autoreload-config pour forcer le rechargement du fichier de configuration avant l’exécution de chaque tâche.

flexget daemon start [-d, --autoreload-config]

Pour stopper le daemon en cours d’exécution :

flexget daemon stop

Pour vérifier l’état du daemon :

flexget daemon status

Pour recharger le fichier de configuration :

flexget daemon reload-config

Pour exécuter immédiatement les tâches du fichier de configuration :

flexget execute

Configuration de FlexGet

Introduction

Afin d’utiliser FlexGet il faudra créer un fichier de configuration.
FlexGet utilise le format YAML dans le fichier de configuration.
YAML est une façon de définir une suite de clés (des noms de plugin ou des options) et de valeurs (noms de séries ou répertoire de téléchargement).

Localisation

Par défaut FlexGet essaye de trouver le fichier de configuration config.yml depuis plusieurs emplacement, dans l’ordre suivant :

  1. Le répertoire courant
  2. ~/.flexget/
  3. ~/.config/flexget/

Possibilité de créer un lien symbolique dans ~/.flexget/ vers un fichier de configuration sur un emplacement réseau partagé afin de le modifier facilement.

Config.yml

Exemple de fichier de configuration créé à partir de la documentation sur https://flexget.com/Configuration

schedules:
  - tasks: '*'
    interval:
      minutes: 10

tasks:
  Téléchargement auto torrents:

    rss: https://rss.xthor.to/autoget/cats=118.119.107.1.2.100.4.5.7.3.8.6.94.95.12.33.31.9.104.13.15.14.110.32.101.109.34.30.98.17.16.20.24.96.99.116.102.103.25.111.27.112.26.28.29.117.21.22.23&type=dl&torrent_pass=xxx
    accept_all: yes

    filesystem:
      path:
        -  /home/partage/Telechargement/torrents/
      mask: '*.torrent'

    plugin_priority:
      if: 2
      series: 1

    if:
      - "'1080p' in title":
          set:
            path: /home/partage/Telechargement/Films/
      - "'720p' in title":
          set:
            path: /home/partage/Telechargement/Films/
      - "'x264' in title":
          set:
            path: /home/partage/Telechargement/Films/
      - "'x265' in title":
          set:
            path: /home/partage/Telechargement/Films/
      - "'eBook' in title":
          set:
            path: /home/partage/Telechargement/Magazines Journaux/
      - "'.pdf' in title":
          set:
            path: /home/partage/Telechargement/Magazines Journaux/
      - "'Epub' in title":
          set:
            path: /home/partage/Telechargement/Magazines Journaux/
      - "'mp3' in title":
          set:
            path: /media/disqueUSB/Telechargement/Musique/
      - "'MP3' in title":
          set:
            path: /media/disqueUSB/Telechargement/Musique/
      - "'Mp3' in title":
          set:
            path: /media/disqueUSB/Telechargement/Musique/

    series:
      - Game of Thrones:
          set:
            path: /home/partage/Telechargement/Series TV/Game of Thrones/Saison 7
      - Black Mirror:
          set:
            path: /home/partage/Telechargement/Series TV/Black Mirror/Saison 4
      - Supernatural:
          set:
            path: /home/partage/Telechargement/Series TV/Supernatural/Saison 13
      - The Originals:
          set:
            path: /home/partage/Telechargement/Series TV/The originals/Saison 5
      - Doctor Who:
          set:
            path: /home/partage/Telechargement/Series TV/Doctor who/Saison 11
      - The Handmaids Tale:
          set:
            path: /home/partage/Telechargement/Series TV/The Handmaids Tale/Saison 1
      - Vikings:
          set:
            path: /home/partage/Telechargement/Series TV/Vikings/Saison 5

    transmission:
      host: localhost
      port: 9091
      username: xxx
      password: xxx
      addpaused: no

    notify:
      entries:
        title: "{{title}}" #Nouveau torrent en téléchargement
        message: "Téléchargement dans {{path}}"
        what: accepted
        via:
          - pushbullet:
              api_key: xxx
#      task:
#        always_send: no
#        via:
#          - pushbullet:
#              api_key: xxx
      abort:
        via:
          - pushbullet:
              api_key: xxx
Top-Level Keys et Plugins
  • schedules : top-level key permettant de définir l’intervalle d’exécution des tâches, utilisable en mode daemon uniquement.
  • tasks : top-level key permettant de créer différentes tâches.
  • rss : plugin permettant de lire un flux rss en entrée.
  • filesystem : plugin permettant de lire les fichiers .torrent présents dans un répertoire.
  • plugin_priority : option permettant de définir l’ordre d’exécution des plugins.
  • if : plugin permettant de définir des paramètres en fonction d’un mot clé présent dans le titre du torrent.
  • series : plugin permettant de définir des paramètres en fonction du titre de la série.
  • transmission : plugin permettant de communiquer avec le daemon de transmission.
  • notify : plugin permettant d’envoyer des notifications via Pushbullet.

Vérifier et tester config.yml

Après avoir modifié ou créé le fichier config.yml il faut le recharger, vérifier la syntaxe et tester l’exécution avec les commandes suivantes :

flexget daemon reload-config
flexget check
flexget --test execute

Mise à jour de FlexGet

Vérifier la version actuelle

Commencer par vérifier la version actuellement installée, la commande donne également le numéro de la dernière version disponible.

flexget -V

Mettre à jour avec PIP

Dans l’ordre, stopper le daemon FlexGet, mettre à jour le setuptools et enfin mettre à jour flexget. Redémarrer le daemon FlexGet.

flexget daemon stop
sudo pip install --upgrade setuptools
sudo pip install --upgrade flexget
flexget daemon start -d

Vérifier le fichier de configuration

Suite à une mise à jour, vérifier la validité du fichier de configuration, il faudra éventuellement lui apporter des corrections.

flexget check

Si le fichier de configuration échoue au test, vérifier sur https://flexget.com/UpgradeActions si des corrections sont nécessaires.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.