Usenet : Installer et utiliser NZBget, grabber tout-en-un

nzb 1 juin 2016

Avertissement : certaines formes de téléchargement peuvent nuire à la création artistique et ne sont pas tolérées partout, renseignez-vous sur les lois de votre pays relatives à la copie privée sous peine d’encourir des sanctions. Je n’aborderai pas la partie post (upload).

Cet article n’est en aucun cas une incitation au piratage mais une information.

 

 

Un grabber est un client permettant de télécharger le .nzb pour récupérer le contenu d’un post. Comme indiqué dans le premier article sur usenet il existe moult grabbers plus ou moins complets, gratuits ou payants, pour Windows et/ou Linux et/ou Mac et/ou Android ainsi que sur Synology et certainement d’autres NAS. Cet article sera centré uniquement sur NZBget, client multi-OS et gratuit, installé sur Linux (Debian).

NZBget est un grabber tout en un, principalement utilisé pour l’automatisation, du moins pour ceux qui veulent s’affranchir des tâches répétitives et chronophages. Il peut récupérer/charger un .nzb, télécharger le contenu correspondant, le vérifier, l’extraire et déplacer le fichier final dans le dossier de votre choix. Tout comme il peut aussi gérer les mots de passe soit compris dans un fichier texte de votre choix soit inclus dans le titre du .nzb soit ajouté à la fin via son interface.

Beaucoup plus pointu que SABnzbd ce grabber peut être utilisé “simplement” ou avec moult options telles que délais de DL, heures de DL, RSS avec regex (plus poussés que sur SAB je trouve) etc.

 

Comment l’installer ?

Le moins qu’on puisse dire est qu’il est fait pour une multitude de systèmes ! Voyez les guides selon le vôtre. Pour Synology il vous faut installer les sources SynoCommunity et ensuite Centre de Paquets/Communauté/NZBget. Pour ce tutoriel je suis dans le cas d’une installation sur Linux Debian et suis donc leur guide, que je ne vais pas réécrire.

Tout se passe sans problème

tv@tv:~$ wget -O - http://nzbget.net/info/nzbget-version-linux.json | \
> sed -n "s/^.*stable-download.*: \"\(.*\)\".*/\1/p" | \
> wget --no-check-certificate -i - -O nzbget-latest-bin-linux.run
--2016-05-31 14:54:34--  http://nzbget.net/info/nzbget-version-linux.json
Resolving nzbget.net (nzbget.net)... 185.31.17.133
Connecting to nzbget.net (nzbget.net)|185.31.17.133|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 611 [application/json]
Saving to: ‘STDOUT’

100%[==============================================================================================================================>] 611         --.-K/s   in 0s      

2016-05-31 14:54:35 (57.4 MB/s) - written to stdout [611/611]

--2016-05-31 14:54:35--  https://github.com/nzbget/nzbget/releases/download/v16.4/nzbget-16.4-bin-linux.run
Resolving github.com (github.com)... 192.30.252.128
Connecting to github.com (github.com)|192.30.252.128|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-cloud.s3.amazonaws.com/releases/37613809/742fe7c6-9b6c-11e5-85ae-686d4e365034.run?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160531%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160531T125434Z&X-Amz-Expires=300&X-Amz-Signature=ca9af8e0bd6d252335e900fd1670a2bf1e14ce100da519a41519c9d67c25b6b2&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dnzbget-16.4-bin-linux.run&response-content-type=application%2Foctet-stream [following]
--2016-05-31 14:54:35--  https://github-cloud.s3.amazonaws.com/releases/37613809/742fe7c6-9b6c-11e5-85ae-686d4e365034.run?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160531%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160531T125434Z&X-Amz-Expires=300&X-Amz-Signature=ca9af8e0bd6d252335e900fd1670a2bf1e14ce100da519a41519c9d67c25b6b2&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dnzbget-16.4-bin-linux.run&response-content-type=application%2Foctet-stream
Resolving github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)... 54.231.33.163
Connecting to github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)|54.231.33.163|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22752523 (22M) [application/octet-stream]
Saving to: ‘nzbget-latest-bin-linux.run’

100%[==============================================================================================================================>] 22,752,523  6.12MB/s   in 4.3s   

2016-05-31 14:54:40 (5.09 MB/s) - ‘nzbget-latest-bin-linux.run’ saved [22752523/22752523]

FINISHED --2016-05-31 14:54:40--
Total wall clock time: 5.9s
Downloaded: 1 files, 22M in 4.3s (5.09 MB/s)
tv@tv:~$ sh nzbget-latest-bin-linux.run
Installer for nzbget-16.4
Verifying package...
Checking system...
CPU-Architecture: x86_64
Unpacking...
Configuring...
  Free memory detected: 4921 MB
  Activating article cache (ArticleCache=100)
  Increasing write buffer (WriteBuffer=1024)
  Increasing par repair buffer (ParBuffer=100)
  CPU speed detected: 16760 BogoMIPS
  Simultaneous download and post-processing is on
Installation completed

Quick help (from nzbget-directory):
   ./nzbget -s        - start nzbget in console mode
   ./nzbget -D        - start nzbget in daemon mode (in background)
   ./nzbget -C        - connect to background process
   ./nzbget -Q        - stop background process
   ./nzbget -h        - help screen with all commands

Successfully installed into /home/tv/nzbget
Web-interface is on http://192.168.1.2:6789 (login:nzbget, password:tegbzn6789)
For support please visit http://nzbget.net/forum

[collapse]

Et le message de fin est on ne peut plus explicite quant à son lancement, au choix.

Quick help (from nzbget-directory):
   ./nzbget -s        - start nzbget in console mode
   ./nzbget -D        - start nzbget in daemon mode (in background)
   ./nzbget -C        - connect to background process
   ./nzbget -Q        - stop background process
   ./nzbget -h        - help screen with all commands

Successfully installed into /home/tv/nzbget
Web-interface is on http://192.168.1.2:6789 (login:nzbget, password:tegbzn6789)

Je le lance donc en daemon (-D), afin qu’il tourne en tâche de fond sur mon PCTV, et je me rends sur l’URL.

tv@tv:~$ cd nzbget
tv@tv:~/nzbget$ ./nzbget -D

nzbget

 

 

System

 

nzbget1

Pratique pour MàJ NZBget mais aussi en faire un backup, au cas où, une fois configuré.

 

 

Paths

Il s’agit ici de définir vos dossiers de récupération, traitement et post-traitement des .nzb.

Le ${AppDir} fait référence au dossier où vous avez installé NZBget. Si comme moi vous n’avez rien précisé à l’installation il sera alors dans le /home de votre utilisateur : /home/tv/nzbget. Modifiez les dossiers selon vos besoins.

En ce qui me concerne NZBget est installé sur le “PCTV” qui rassemble plusieurs logiciels/services aussi j’ai des dossiers précis à utiliser : /mnt/NG comme dossier cible pour les téléchargements complétés mais aussi comme Nzbdir, dossier qu’il surveillera à la recherche de .nzb à charger.

 

News Servers

nzbget2

C’est ici que vous devez ajouter vos informations FAU, donc de votre ou vos accès Usenet. Ici j’ai configuré mon provider usenet.farm.

 

Security

Paramétrage des accès à NZBget : comptes, SSL, IP, port etc. Dans mon cas j’ai simplement retiré le user:pwd par défaut étant donné que NZBget n’est accessible que sur mon réseau local.

 

Categories

Typiquement à laisser tomber si vous utilisez principalement NZBget avec SickRage, Sonarr, CouchPOtato, headPhones etc. En effet dans la plupart des cas (ça dépend de comment vous les avez configurés) ils traitent les fichiers qui les concernent seulement. C’est-à-dire que si dans un même dossier (/mnt/NG) vous avez à la fois des films, des séries et des musiques, ils vont chacun faire “leur sauce” et ne traiter que les fichiers qui les concernent en les renommant/déplaçant. L’utilisation de catégories de DL dans un grabber NZB n’est vraiment utile que si vous y chargez tous vos .nzb à la main et que vous voulez les trier en sortie (dans ce cas votre dossier de sortie NZBget est votre dossier de stockage).

 

RSS feeds

Pratique pour ajouter des flux RSS et définir des regex de DL, voire des catégories selon le regex. Tout est détaillé sur cette même page mais leur Wiki est également très complet à ce sujet.

Outil vraiment très puissant mais que je n’ai utilisé qu’une fois pour le découvrir étant donné que tous mes DL sont automatisés et que les rares que je lance à la main le sont depuis des indexers via API et non RSS.

 

Incoming NZBs

nzbget3

Quelques options de traitement des .nzb chargés : délai de scanne du dossier surveillé, création d’un dossier parent du nom de la catégorie si DL avec catégories et contrôle des dupliqués, qu’il ne DL pas un fichier déjà pris.

 

Download queue

 nzbget4

Le plus simple est de tout laisser par défaut, sauf si vous rencontrez des souci de DL. Je veux juste insister sur l’option PropagationDelay, fort utile s’il vous arrive très souvent de ne pas pouvoir télécharger (en partie  ou totalement) des .nzb postés très récemment. En effet la propagation d’un post Usenet sur l’ensemble des serveurs (des FAU) peut parfois prendre du temps. Aussi si vous êtes souvent confronté à ce problème mettez un délai et dans ce cas NZBget le prendra en compte, si un DL récent est incomplet, et le mettra en attente X minutes avant de réessayer.

 

Logging

Définition des logs. Laissez par défaut, toujours utiles en cas d’erreurs.

 

Scheduler

Pour paramétrer par exemples des heures de DL. Si vous avez une ligne Internet à faible débit il peut être intéressant de pouvoir charger automatiquement ou manuellement des .nzb dans NZBget mais qu’il ne les traite que la nuit, quand vous n’avez plus besoin de votre débit pour faire autre chose.

 

PAR check/repair

De part son mode de fonctionnement, le téléchargement sur Usenet consiste en fait à DL plusieurs archives qui sont ensuite assemblées/décompressées. Du coup la plupart des .nzb comprennent des .par , fichiers de réparation d’archives corrompues. En général les .par permettent de réparer jusqu’à 10% du contenu. 

La configuration par défaut de NZBget répond aux besoins les plus classiques et ne sont donc pas à modifier hormis le paramètre ParThreads qui permet d’allouer X CPU à  la réparation. Par défaut elle est à 0 ce qui veut dire “tous les CPU”. C’est à modifier si votre machine montre des signes de faiblesse lors des réparations, souvent le cas si vous l’utiliser aussi pour traiter d’autres tâches en sus de vos DL sur Usenet.

 

Unpack

S’il faut parfois réparer des archives, il faut à tous les coups les extraire. Pour ça, il faut des programmes annexes à NZBget : win/unrar & 7zip. Vous devez ici indiquer à NZBget où les trouver pour les utiliser. Si c’est chose aisée sous Windows, ça l’est moins sous Linux quand on débute, de surcroît sur serveur où on ne peut pas aller les chercher via un environnement de bureau.

nzbget5 

Comme mentionné sur la page vous trouverez ces programmes dans 99% des cas dans /usr/bin. Mais vous pouvez aussi utiliser la commande locate pour localiser un programme (ou un fichier d’ailleurs). Si vous ne l’avez pas, il faut alors l’installer avec 

sudo apt-get install locate

Locate permet de lister le contenu d’un index, que vous mettez à jour avec la commande sudo updatedb

Exemple

tv@tv:~/nzbget$ locate unrar
/etc/alternatives/unrar
/etc/alternatives/unrar.1.gz
/home/tv/CouchPotatoServer/libs/unrar2
/home/tv/CouchPotatoServer/libs/unrar2/__init__.py
/home/tv/CouchPotatoServer/libs/unrar2/__init__.pyc
/home/tv/CouchPotatoServer/libs/unrar2/rar_exceptions.py
/home/tv/CouchPotatoServer/libs/unrar2/rar_exceptions.pyc
/home/tv/CouchPotatoServer/libs/unrar2/unix.py
/home/tv/CouchPotatoServer/libs/unrar2/unix.pyc
/home/tv/CouchPotatoServer/libs/unrar2/unrar
/home/tv/CouchPotatoServer/libs/unrar2/unrar.dll
/home/tv/CouchPotatoServer/libs/unrar2/unrar64.dll
/home/tv/CouchPotatoServer/libs/unrar2/windows.py
/usr/bin/unrar
/usr/bin/unrar-nonfree
/usr/share/doc/unrar
/usr/share/doc/unrar/changelog.Debian.gz
/usr/share/doc/unrar/copyright
/usr/share/man/man1/unrar-nonfree.1.gz
/usr/share/man/man1/unrar.1.gz
/var/cache/apt/archives/unrar_1%3a5.0.10-1ubuntu0.14.04.1_amd64.deb
/var/lib/dpkg/alternatives/unrar
/var/lib/dpkg/info/unrar.list
/var/lib/dpkg/info/unrar.md5sums
/var/lib/dpkg/info/unrar.postinst
/var/lib/dpkg/info/unrar.prerm

Nous l’avons bien dans /usr/bin/unrar

[collapse]

 

Extension Scripts

Vous gérez ici tous les scripts adjoints à NZBget. Parce que oui, comme SABnzbd, il peut voir ses “capacités” décuplées via des scripts : autoDL de sous-titres, notifications PushOver ou email en cas d’échec, notifications Plex/Kodi

 

 

Charger des .nzb manuellement

nzbget6

Légèrement plus complet que SABnzbd puisque NZBget permet en plus de rafraîchir (forcer) le scanne du dossier surveillé (le watchdir). Il vous suffit ensuite d’attendre que le travail se fasse pour pouvoir profiter de votre fichier final. 

nzbget7

nzbget8

Vous pouvez aussi jeter un œil aux options Files / PostProcess / Log

nzbget9

nzbget10

nzbget11

Une fois téléchargé NZBget répare, si nécessaire, puis extrait les fichiers dans le dossier cible de ma configurtion.

nzbget12

nzbget13

nzbget14

 

 

Charger des .nzb automatiquement

Outre le dossier surveillé, les RSS et son utilisation via des outils tels que SickRage, Sonarr, CouchPotato etc, vous avez également de charger directement des .nzb dans NZBget via des extensions pour navigateurs : quand vous cliquez sur un lien .nzb il est ajouté de suite.

Par exemple sous Vivaldi (et Chrome, Chromium etc) via ReNZB :

Menu_001

 

nzbget15

nzbget16

Ou encore, toujours sous Vivaldi et les dérivés de Chrome, avec NZBget-Chrome :

Menu_002

 

nzbget17

 

nzbget18

nzbget19

Sous Firefox via NZBfox :

nzbget20

 

Mots clés