Aujourd’hui, nouvelle étape dans l’automatisation de nos téléchargements : au lieu d’uploader un fichier .torrent ou magnet sous Transmission, nous allons installer FlexgGet qui va nous permettre de surveiller un flux RSS pour télécharger automatiquement les fichiers bittorent.
Une fois le fichier graine téléchargé, Transmission se chargera de télécharger les fichiers immédiatement. Tout sera donc automatisé !
En pré-requis, je vous conseille d’avoir Transmission installé et configuré sur votre serveur ou machine, cela vous fera gagner pas mal de temps.
Etape 1 : configuration de Transmission
Vous avez déjà Transmission qui tourne ? Parfait, on commence par arrêter le service :
service transmission-daemon stop
On crée un nouveau répertoire qui sera surveillé par Transmission – dès qu’un fichier .torrent sera ajouté dans ce répertoire, Transmission lancera le téléchargement :
mkdir /home/transmission/torrentwatch
On lui donne les bons droits et le bon utilisateur:
chown debian-transmission:debian-transmission /home/transmission/torrentwatch
chmod 777 /home/transmission/torrentwatch
et on édite le fichier de configuration:
nano /etc/transmission-daemon/settings.json
Je me suis aperçu qu’il me manquait deux directives importantes dans ce fichier pour surveiller un répertoire donc on les ajoute à la suite des autres directives :
"watch-dir": "/home/transmission/torrentwatch",
"watch-dir-enabled": true,
On sauvegarde le fichier et on redémarre Transmission:
service transmission-daemon start
Etape 2 : installation de Flexget
Flexget est un script Python donc il nous faut… python !
python -V
nous retourne:
Python 2.7.13
On installe pip
:
apt install python-pip
On met à jour les setuptools
:
pip install --upgrade setuptools
On installe flexget
:
pip install flexget
On crée le répertoire de configuration:
mkdir -p ~/.config/flexget
cd ~/.config/flexget
On crée le fichier de configuration :
nano ~/.config/flexget/config.yml
qui contient :
templates:
# Paramètres globaux pour les séries
series_global:
download: /home/transmission/torrentwatch/
# Flux RSS à récupérer
inputs:
- rss: { url: 'https://example.com/feed.xml' } # RSS
# Vérifier si l'épisode n'est pas déjà présent
exists_series:
- '/home/transmission/completed'
- '/home/transmission/torrentwatch'
# These are the shows I regularly watch
series_suivies:
# La liste des séries à suivre est dans un autre fichier
include: [ series.yml ]
# Paramètres pour premiers épisodes de nouvelles séries
series_premieres:
thetvdb_lookup: yes
require_field: tvdb_genres
regexp:
reject:
- animation: {from: tvdb_genres}
- documentary: {from: tvdb_genres}
- talk show: {from: tvdb_genres}
- game show: {from: tvdb_genres}
- reality: {from: tvdb_genres}
- children: {from: tvdb_genres}
- food: {from: tvdb_genres}
- home and garden: {from: tvdb_genres}
series_premiere: yes
# Définition des tâches : flexget execute --task XX
tasks:
Series:
priority: 10
template:
- series_global
- series_suivies
Series_Premieres:
priority: 40
template:
- series_global
- series_premieres
# We use the manual plugin so that this task only runs when explicitly called
manual: yes
et le fichier de configuration des séries :
nano ~/.config/flexget/series.yml
qui contient:
series:
settings:
best:
upgrade: yes
quality: 720p hdtv+
target: 720p
timeframe: 6 hours
propers: 12 hours
normal:
quality: "hdtv <720p"
target: "<720p"
timeframe: 6 hours
propers: 12 hours
webrip:
quality: "webrip|webdl <720p "
target: "<720p"
timeframe: 6 hours
propers: 12 hours
# Les series pour lesquelles je souhaite avoir les versions en 720
best:
- Utopia
# Les autres series avec resolution plus basse
normal:
- Room 104
- Line Of Duty
- Ray Donovan
- Vikings
- Suits
- Orphan Black
- Game of Thrones
- The Walking Dead
# Pour les "web series"
webrip:
- House of Cards
Sauvegardez puis lancez flexget
:
flexget execute
Résultat :
VERBOSE task_queue There are 2 tasks to execute. Shutdown will commence when they have completed.
VERBOSE details Series Produced 50 entries.
VERBOSE series Series identified by is currently on `auto` for Room 104. Multiple id types may be accepted until it locks in on the appropriate type.
VERBOSE task Series ACCEPTED: `Room 104 S01E03 HDTV x264-aAF` by series plugin because target quality
INFO download Series Downloading: Room 104 S01E03 HDTV x264-aAF
VERBOSE details Series Summary - Accepted: 1 (Rejected: 0 Undecided: 49 Failed: 0)
Boom. Flexget a trouvé un fichier torrent dans le flux RSS qui correspond à une série que l’on suit, ce fichier est placé dans le répertoire surveillé par Transmission et le fichier vidéo est téléchargé automatiquement.
Etape 3 : supprimer les fichiers de Transmission une fois complétés
Etape 4 : mise en place d’un crontab
Ultime étape, nous créons une tâche planifiée qui lancera Flexget toutes les deux heures:
crontab -e
et on ajoute en fin de fichier:
0 */2 * * * /usr/local/bin/flexget execute
Et voilà, vous venez d’automatiser vos téléchargements simplement et efficacement !
Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ajouter de nouvelles fonctionnalités, ou améliorer les performances de votre site? Faîtes appel à mon expertise.