Le Blog du Geek Joyeux

Plus moins vite tu codes, moins plus vite ça plante

Mettre en place une seedbox automatisée

| Commentaires

Il y a un moment déjà que j’utilise un système d’automatisation pour le téléchargement des séries TV. Voici ce que j’ai mis en place.

TL;DR

Utilisez TvShows2 pour surveiller les séries, automatisez l’envoi des fichiers .torrent vers la seedbox et gérez vos téléchargements avec Transmission.

Attention: l’utilisation de TVShows2 est spécifique à Mac OS X. Ted semble une bonne alternative sous Linux mais je n’ai pas testé.

TVShows

TVShows est une application pour Mac OS X qui s’utilise sous forme de PrefPane. Elle permet de surveiller la sortie d’épisodes sur une liste assez importante de séries.

Il est également possible d’ajouter des flux à surveiller avec des règles de filtrage, etc.

Impression écran de TVShow

L’important est de cocher l’option permettant l’ouverture automatique des fichiers lorsqu’ils sont téléchargés.

Option d'ouverture automatique

Transmission

Transmission est un client torrent disponible avec ou sans interface graphique sur le plupart des distributions mais également sous Mac OS X.

Nous allons installer sur notre serveur la version daemon qui fournit une interface web parfaitement suffisante pour notre besoin.

$ sudo aptitude install transmission-daemon

Une fois cela fait, assurez-vous que transmission n’est pas actif, la configuration serait écrasée au redémarrage du service.

$ sudo /etc/init.d/transmission-daemon stop

Nous allons ensuite modifier la configuration pour activer certaines options bien utiles:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  ...
  "download-dir": "/home/happynoff/downloads",
  ...
  "rpc-enabled": true,
  "rpc-authentication-required": true,
  "rpc-username": "utilisateur",
  "rpc-password": "mot de passe",
  "rpc-bind-address": "127.0.0.1",
  "rpc-port": 4242,
  ...
  "watch-dir-enabled": true
  "watch-dir": "/home/utilisateur/torrents",
}

Faisons un petit tour des options utilisées.

download-dir permet de préciser où seront stockés les épisodes une fois leur téléchargement terminé.

Le bloc d’options rpc-* va nous permettre de mettre un serveur web en front pour rendre l’interface web accessible facilement. Transmission écoutera en local uniquement et sur le port 4242.

Pour l’exemple, j’ai activé l’authentification. En ce qui me concerne elle est désactivée et je passe par le webSSO LemonLDAP::NG pour m’authentifier. L’installation de LemonLDAP::NG étant hors du scope de cet article, je vous laisse regarder par vous-même.

Notez que vous devez saisir votre mot de passe en clair la première fois, il sera crypté au lancement du daemon.

watch-dir indique un dossier à surveiller pour l’ajout des nouveaux torrents. C’est dans ce dossier que nous allons envoyer les fichiers torrent de TVShows.

Une fois ces réglages mis en place, nous pouvons relancer le daemon transmission.

$ sudo /etc/init.d/transmission-daemon start

Note: pensez bien à stopper le daemon avant de modifier la configuration, vos changements seraient écrasés dans le cas contraire.

Apache / Nginx

Afin de rendre l’interface web accessible facilement, nous allons utiliser un serveur web comme reverse proxy.

Voici la configuration du VirtualHost Apache:

1
2
3
4
5
6
7
8
9
10
11
# /etc/apache2/site-enabled/torrent.example.com
<VirtualHost *:80>
  ServerName torrent.example.com

  # Si vous utilisez LemonLDAP::NG
  PerlHeaderParserHandler      My::Package
  ProxyPassReverseCookieDomain private-name torrent.cubyx.fr

  ProxyPass        / http://localhost:4242/
  ProxyPassReverse / http://localhost:4242/
</VirtualHost>

Et la version nginx (à prendre avec des pincettes, je n’ai pas testé):

1
2
3
4
5
6
7
8
sever {
  server_name torrent.example.com;
  listen 80;

  location / {
    proxy_pass http://localhost:4242;
  }
}

Faire le lien entre TvShows et Transmission

Pour ouvrir automatiquement les fichiers torrent dans Transmission, il nous faut un programme capable de les envoyer dans le dossier surveillé par ce dernier.

Sous Mac, la solution la plus simple est de passer par Automator. Pour commencer il faut choisir Application lorsque Automator nous demande quel type de projet on souhaite créer.

Sélectionner Application

Une fois cela fait, le workflow de l’application sera en deux étapes.

La première est la sélection des fichiers via Finder. Il faut préciser que l’on filtre la liste des fichiers fournis sur l’extension de fichier .torrent.

Filtrer les fichiers torrent

Il faut ensuite envoyer les fichiers. Pour ce faire, j’utilise ssh avec une authentification par clé sans mot de passe, de cette manière le processus est transparent.

Il suffit ensuite d’ajouter ce petit bout de script dans automator:

1
2
3
for f in "$@"; do
  scp "$f" utilisateur@example.com:torrents && rm "$f"
done

Script shell dans automator

Attention: à bien sélectionner le passage des informations sous forme d’arguments !

Informations comme arguments

Sauvegardez votre application dans /Applications sous le nom TorrentsToServer.app, par exemple.

La dernière étape est de dire à OS X d’ouvrir les .torrent avec votre application. En général, je télécharge un fichier torrent puis, avec un clic droit sur le fichier, Lire les informations, je choisis mon application pour ouvrir ce fichier et demande à ce que ce soit appliqué sur tous.

Ouvrir les torrents avec notre application

Si tout s’est bien passé

Vous devriez avoir un système qui roule tout seul. TvShows2 va surveiller pour vous les épisodes de séries, ouvrir les fichiers torrent avec votre application qui va envoyer les fichier sur votre serveur et Transmission les ouvrira tout seul.

À noter qu’il arrive à TvShows2 de rater un épisodes mais c’est assez rare pour que ça ne pose aucune problème à l’usage.

Aller un peu plus loin

Un autre type de téléchargement qu’il est agréable d’automatiser est celui des liens magnet que l’on croise de plus en plus.

Pour cela, j’ai trouvé une extension Firefox nommée BitTorrent WebUI+ qui permet de se connecter directement à votre instance de Transmission.

L’extension se configure assez facilement, faites juste bien attention de ne pas laisser l’option HTTPS sélectionnée.

Configuration de BT WebUI+

Commentaires