⚡ nzbfast

Le téléchargeur Usenet rapide - manuel utilisateur

1 · Bienvenue

nzbfast télécharge depuis Usenet aussi vite que votre ligne, vos fournisseurs et votre machine le permettent - et le plus souvent, cela veut dire aussi vite que votre ligne. C'est un programme unique et autonome : le moteur, un tableau de bord web, un explorateur multimédia en mur d'affiches, un indexeur intégré, l'aperçu en temps réel, la réparation PAR2 native et l'extraction RAR native tiennent dans un seul exécutable. Il n'y a rien d'autre à installer.

Ce qui le rend rapide, c'est l'architecture, pas des bidouilles :

Mesuré face à la concurrence sur le même matériel, les mêmes tâches et les mêmes fournisseurs, nzbfast a terminé un téléchargement de 190 GB en environ 5 minutes sur une ligne 10 GbE - les principales alternatives finissant 30 à 220 % derrière sur les mêmes tests, quand elles les terminaient tout court. Les chiffres sont au §3.

2 · Démarrage rapide

macOS

  1. Ouvrez nzbfast-<version>-macos.dmg et faites glisser NzbFast dans Applications (universel : Apple Silicon + Intel).
  2. Premier lancement : macOS avertit que nzbfast n'est pas encore notarié par Apple. Clic droit sur l'app → Ouvrir - ou ouvrez Réglages Système → Confidentialité et sécurité, faites défiler et cliquez sur Ouvrir quand même. C'est une étape à faire une seule fois.
  3. La fenêtre de l'app affiche le tableau de bord avec une carte de bienvenue - cliquez dessus et ajoutez au moins un serveur Usenet (hôte, port 563, nom d'utilisateur, mot de passe). Vous pourrez en ajouter d'autres plus tard dans les Paramètres.
  4. Déposez un .nzb n'importe où sur le tableau de bord - ou double-cliquez simplement les fichiers .nzb dans le Finder. Les téléchargements arrivent dans ~/Downloads/nzbfast. Quittez depuis le menu ; les téléchargements reprennent là où ils en étaient.

Vous préférez sans app ? Le zip simple (binaire + lanceur Start nzbfast.command, même moteur) fonctionne toujours comme avant - étapes ci-dessous sous « Depuis un terminal ».

Windows

  1. Lancez nzbfast-<version>-windows-x64-setup.exe. Il s'installe pour votre utilisateur uniquement (pas de mot de passe administrateur). Cette version n'étant pas encore signée, SmartScreen peut afficher « Windows a protégé votre ordinateur » - cliquez sur Informations complémentairesExécuter quand même.
  2. nzbfast vit dans la zone de notification : double-cliquez l'icône (ou utilisez Open Dashboard dans son menu contextuel) pour ouvrir le tableau de bord, puis ajoutez votre serveur Usenet depuis la carte de bienvenue. Le menu de l'icône propose aussi Pause/Reprendre, votre dossier de téléchargements et Quitter.
  3. Double-cliquer un fichier .nzb le met en file. Windows Defender peut demander une fois d'autoriser l'écoute sur le réseau local - autorisez-la.

Vous préférez une copie portable ? Le -windows-x64.zip fonctionne toujours : décompressez-le n'importe où et double-cliquez nzbfast.exe (ou Start nzbfast.bat) pour l'assistant en terminal.

Depuis un terminal (toutes plateformes)

nzbfast setup            # interactive server setup (writes config.local.json)
nzbfast serve --open     # start the daemon and open the dashboard
AstuceVous utilisez déjà SABnzbd ou NZBGet ? Évitez de retaper vos identifiants : Paramètres → Serveurs Usenet → Importer depuis SABnzbd / NZBGet… trouve votre installation existante et copie ses serveurs. Il existe aussi nzbfast import-sab en ligne de commande.

Votre clé API

Sur une installation réellement neuve, nzbfast se fabrique une clé API au premier démarrage du daemon et l'affiche une seule fois dans une bannière, juste sous l'adresse du tableau de bord. Ensuite, chaque requête exige cette clé : le tableau de bord et l'API ne sont donc pas ouverts à tout ce qui peut joindre la machine.

Ce que vous en faites dépend de la façon dont vous avez lancé nzbfast :

La clé est conservée dans un fichier nommé apikey, à côté de votre fichier de configuration : elle reste donc la même d'un redémarrage à l'autre et vous pouvez la relire quand vous en avez besoin. Sur macOS et Linux, ce fichier n'est lisible que par le compte qui exécute nzbfast. Elle figure aussi dans la sortie du daemon lui-même : la carte Journal du tableau de bord l'a donc si le terminal a défilé.

Une mise à jour ne change rien.Une installation qui existe déjà est laissée exactement telle quelle, avec ou sans clé. Une clé n'est jamais créée que lors d'un premier démarrage - sans réglages de tableau de bord ni file enregistrée - car une clé apparaissant sous une installation qui fonctionne bloquerait tous les Sonarr, Radarr et applications mobiles déjà connectés, lors d'un redémarrage que vous n'auriez jamais associé à un changement de réglage.

Pour utiliser votre propre clé à la place, saisissez-la dans Paramètres → Sécurité ; elle s'applique aussitôt. Ce panneau change la clé mais n'affiche jamais celle en cours : lisez donc le fichier apikey s'il vous faut récupérer la valeur générée. Pour tourner sans aucune clé, parce que quelque chose placé devant nzbfast gère déjà l'authentification, lancez-le avec NZBFAST_OPEN=1 dans l'environnement. nzbfast reste alors ouvert et le dit sans détour au démarrage.

Quelles machines peuvent joindre le daemon est un choix distinct : serve --bind. La valeur par défaut est 0.0.0.0, c'est-à-dire toutes les interfaces réseau, car un NAS, un téléphone et un Sonarr sur un autre ordinateur doivent tous pouvoir se connecter. --bind 127.0.0.1 restreint l'accès à la machine où tourne nzbfast, ce qu'il vous faut sur un poste de bureau unique où rien d'autre n'a besoin d'y accéder.

3 · Comment nzbfast fonctionne

Un petit vocabulaire pour que la suite du manuel se lise facilement :

TermeSignification
Fournisseur / serveurUn service Usenet chez qui vous avez un compte (Newshosting, Eweka, XS News…). Chacun autorise un certain nombre de connexions simultanées.
BackboneL'infrastructure derrière un fournisseur. Plusieurs marques revendent souvent le même backbone - utile à savoir, car deux fournisseurs sur un même backbone manquent les mêmes articles. Voir Diversité des serveurs.
NZBUn petit fichier XML listant les articles qui composent un post. C'est ce que vous donnez à nzbfast.
PAR2Des données de récupération postées avec la release. nzbfast vérifie contre elles pendant le téléchargement et répare automatiquement quand des articles sont endommagés ou manquants.
RAR en mode « store »La plupart des releases sont empaquetées en volumes RAR sans compression. nzbfast le détecte et écrit le fichier interne directement à son emplacement final pendant le téléchargement - aucune étape de décompression ensuite.

Le pipeline enchaîne téléchargement → décodage → vérification → extraction en parallèle. La carte Pipeline du tableau de bord montre les trois voies avancer en même temps. Quand le dernier octet arrive, la vérification est déjà faite et le fichier déjà extrait ; le temps de « post-traitement » d'une tâche typique est nul. Si une réparation est nécessaire, alors seulement les volumes sont matérialisés sur disque, réparés sur place par le moteur GF(2¹⁶) natif (les données obfusquées - renommées ou décalées d'octets - sont retrouvées et adoptées par un balayage à blocs glissants), puis ré-extraits - le tout automatiquement.

Les téléchargements interrompus (crash, coupure de courant, kill -9) reprennent grâce au journal d'articles : les octets déjà sur disque ne sont jamais récupérés deux fois. Le journal note où les octets de chaque article ont physiquement atterri - même ceux extraits directement dans le fichier final - si bien qu'une reprise se reconstruit depuis le disque local et re-vérifie tout ce qu'elle a restauré contre la carte de blocs PAR2 avant de s'y fier.

La comparaison

Mesuré face à SABnzbd 5.0.4 et NZBGet 26.2 sur la même machine, les mêmes fournisseurs et les mêmes NZB, chronométré jusqu'au fichier utilisable - téléchargement, vérification, réparation et extraction compris, car c'est là que la tâche est réellement terminée :

Taille de la tâchenzbfastNZBGet 26.2SABnzbd 5.0.4
7 GB13.7 s+26%+39%
35 GB67 s+61%+325%
87 GB272 s+36%+160%
190 GB9 m 00 s+30%+111%

L'écart, c'est le post-traitement que les autres doivent encore faire après l'arrivée du dernier octet. Les deux concurrents ont été réglés pour la comparaison, pas laissés sur leurs valeurs par défaut - SABnzbd, en particulier, est livré avec le pipelining des requêtes désactivé, ce qui lui coûte très cher : il a donc été activé.

Deux différences comptent autant que les temps :

Reprise après crash, mesuréeTuez un téléchargement en plein vol (kill -9 à 15 GB d'une tâche de 34.5 GB) et la reprise ne re-télécharge que ~0.3 GB - uniquement les articles réellement en vol au moment du kill - contre 0.2 GB pour NZBGet sur le même test. C'était autrefois une défaite que nous publiions (15.3 GB re-téléchargés, quand le journal ne savait pas rendre compte des octets extraits en direct) ; le journal de placement l'a corrigée : la reprise restaure ces octets depuis les fichiers de sortie locaux et re-vérifie chaque octet restauré contre la carte de blocs PAR2 avant de s'y fier. Chaque scénario que nous perdons est publié à côté des victoires, avec la méthode complète et les chiffres bruts.

4 · Le tableau de bord

Ouvrez http://localhost:6789 (ou l'adresse de votre machine depuis un autre appareil - la mise en page téléphone s'adapte automatiquement). Tout se met à jour en direct, une fois par seconde. Les cartes, de haut en bas :

Barre d'en-tête

Débit

Les MB/s en direct avec un graphique défilant ; les repères en pointillés marquent le haut/bas de cette session, la ligne pâle est une moyenne mobile. En dessous, un histogramme montre la distribution des échantillons de vitesse de la session - typique vs pic. Élargissez la fenêtre et les graphiques montrent plus d'historique (jusqu'à une heure).

Tuiles de statistiques

Téléchargé cette session, profondeur de la file, compteurs terminés/échoués, pic de vitesse de la session.

Ressources - une machine, quatre plafonds

CPU, RAM (par rapport au budget mémoire de nzbfast), débit d'écriture disque et réseau sur un même graphique normalisé, avec les valeurs réelles dans la légende et un avertissement d'espace disque faible. Aucun autre client NZB ne vous montre cela ; cette carte existe pour prouver une chose - nzbfast saturera votre ligne, pas votre machine.

Pipeline - les étapes se chevauchent

Trois voies : téléchargement, vérification (blocs PAR2 contrôlés), extraction. Sur une tâche saine, les trois avancent ensemble.

Fournisseurs

Par serveur : débit en direct, utilisation des connexions, part du trafic, GB de la session et un score de complétion d'articles sur la durée (coloré quand un serveur passe sous 98 %). Un graphique en aires empilées montre la contribution de chaque fournisseur au fil du temps. Les lignes se réordonnent selon la performance en direct toutes les 10 s (réglable dans Paramètres → Interface), votre fournisseur le plus rapide restant ainsi toujours en tête.

File d'attente

Parcourir l'index

Cherchez tout ce que l'indexeur intégré a catalogué depuis vos groupes surveillés (voir Automatisation) et téléchargez en un clic - aucun indexeur externe requis. La ligne d'état montre la progression du scan ; Scanner maintenant force une passe.

Liste de suivi

Ajoutez des titres par leur nom - y compris pas encore postés. Quand une release correspondante apparaît dans l'index, elle est récupérée automatiquement, avec préférences de qualité et règles de montée en qualité (une meilleure copie remplace la moins bonne).

Historique

Les téléchargements récents, une ligne chacun. Les tâches échouées proposent Réessayer (reprise depuis le journal). Les archives chiffrées affichent un contrôle de déverrouillage 🔑 - saisissez le mot de passe et la tâche se termine sur place. Le bandeau de santé de vérification trace les blocs PAR2 défectueux par téléchargement - une queue qui monte signale des articles qui arrivent endommagés. Le tiroir de chaque ligne dit qui a ajouté la tâche et propose le même bouton Télécharger le .nzb que la file - pratique pour télécharger une release à nouveau ailleurs, ou pour joindre le .nzb à un signalement de problème.

La carte liste dix téléchargements par défaut et le reste est à un clic, sur le bouton ▤. Le statut, l'emplacement et la raison d'un échec vivent derrière un clic sur la ligne elle-même, si bien que le cas courant - ce qui s'est terminé, quelle taille, quand - reste lisible sans défilement. Tirez le bord inférieur de la carte pour faire défiler la liste à la hauteur de votre choix à la place. History rows dans Paramètres → Interface change ces dix ; comme c'est une propriété du daemon et non de votre navigateur, cela s'applique à tous les appareils qui regardent cette installation. Colour History names, juste à côté, teinte en vert les noms terminés et en rouge ceux qui ont échoué ; en le désactivant les noms restent neutres, et la pastille colorée comme les détails de la ligne disent toujours lequel est lequel.

Consommation

Barres quotidiennes par fournisseur et totaux Aujourd'hui / 7 jours / 30 jours - indispensable pour les comptes au volume et les comptes à bloc. Les comptes à bloc affichent l'usage cumulé par rapport à leur taille.

Journal, Benchmark système, Réglage des connexions, Diversité des serveurs

Un visualiseur de journal intégré à la page, et les trois outils d'auto-mesure décrits dans Outils de performance.

5 · Ajouter des téléchargements

MéthodeComment
Glisser-déposerDéposez un ou plusieurs fichiers .nzb n'importe où sur le tableau de bord.
Dossier surveilléDéfinissez un dossier dans les Paramètres ; tout .nzb enregistré dedans est pris en charge sous 5 secondes et déplacé vers la corbeille, et un tableau de bord ouvert annonce chaque prise en charge par son nom (« … récupéré depuis Téléchargements »), si bien qu'un fichier qui quitte le dossier n'est jamais un mystère. Vous préférez conserver vos fichiers ? Activez Conserver les .nzb après prise en charge (voir §9). Pointez le répertoire de téléchargement de votre navigateur dessus pour des récupérations en un clic depuis les sites d'indexeurs.
Depuis une URLCollez un lien NZB (API mode=addurl, ou via n'importe quelle appli connectée).
Liens nzblnk:Collez un lien nzblnk: n'importe où sur le tableau de bord, ou glissez-le dedans. Si vous avez installé depuis le DMG macOS ou l'installateur Windows, vous pouvez aussi en cliquer un directement sur un board. Voir les liens nzblnk plus bas.
Parcourir l'indexCliquez sur n'importe quelle release complète dans la carte Parcourir.
Liste de suivi / RSSAutomatique - voir Automatisation.
Sonarr/Radarr etc.Ils envoient leurs récupérations directement dans la file - voir §11.
Ligne de commandenzbfast get file.nzb télécharge sans le daemon.

Catégories, priorités, mots de passe

Les liens nzblnk

Certains boards, surtout allemands et néerlandais, publient un lien nzblnk: au lieu d'un fichier NZB. Le post est obfusqué, il n'existe donc aucun nom de fichier vers lequel pointer. Le lien porte un en-tête, h=, qui est une clé de recherche et non un emplacement, plus un titre t=, un mot de passe p= et un groupe g= facultatifs. Il faut donc d'abord aller retrouver le post.

nzbfast cherche d'abord cet en-tête dans son propre index, ce qui ne demande aucun réseau, et seulement si cela échoue il interroge les indexeurs de recherche que vous avez configurés (Paramètres → Indexeurs de recherche, §9), sous les mêmes budgets quotidiens et le même repli que toute autre recherche. Le titre devient le nom de la tâche et le mot de passe est appliqué automatiquement.

6 · Le mur d'affiches

Cliquez sur 🎬 mur dans l'en-tête. Le mur transforme votre index en explorateur multimédia : chaque film et chaque série reconnus deviennent une tuile-affiche avec note, année, genres, casting et synopsis - vos newsgroups, explorables comme un catalogue.

7 · Aperçu et vérification

Vous n'êtes pas obligé d'attendre la fin d'un téléchargement pour savoir que c'est le bon fichier. Ouvrez-le pendant qu'il se télécharge, vérifiez que le contenu, la langue et la qualité correspondent à ce que vous attendiez, et annulez tôt si ce n'est pas le cas - au lieu de le découvrir après le téléchargement complet.

Note lecteursVLC, IINA, mpv et Infuse ouvrent tous les URL /stream. Pour vérifier depuis une autre machine, utilisez l'adresse LAN de votre machine à la place de localhost.
Note authentificationAvec une clé API définie, ouvrir une entrée de bibliothèque en attente via /stream/<id> exige un jeton par tâche (?t=…) - les lecteurs ne savent pas envoyer de clé API, donc le relais /m3u et le pointeur .strm l'intègrent pour vous ; le générer (/m3u) exige la clé. Le simple service d'octets d'un téléchargement déjà actif reste ouvert, et les installations sans clé se comportent comme avant.

8 · Serveurs Usenet

Paramètres → Serveurs Usenet est l'éditeur complet : ajouter, modifier, supprimer, réordonner, et faire entrer ou sortir n'importe quel serveur du pool. Chaque serveur a :

ChampNotes
Hôte / portUtilisez le port SSL 563. TLS ne coûte rien de mesurable - nzbfast chiffre toujours.
Nom d'utilisateur / mot de passeStockés localement dans config.local.json, jamais renvoyés au navigateur. Laisser le mot de passe vide à la modification conserve celui qui est stocké. Les mots de passe sont obscurcis sur le disque, pas chiffrés.
ConnexionsConnexions simultanées par serveur. Utilisez le Réglage des connexions (§13) pour trouver l'optimum de chaque fournisseur plutôt que de viser haut au hasard.
Niveau (tier)0 = primaire ; les niveaux supérieurs sont des serveurs de fill, sollicités uniquement pour les articles manqués par tous les niveaux inférieurs. Mettez les comptes illimités à 0, les comptes à bloc à 1+.
Taille du bloc (GB)Pour les comptes à bloc (payés au GB) : nzbfast suit l'usage cumulé par rapport à cette taille et cesse d'utiliser le serveur une fois le bloc épuisé (avertissement à 85 %).

Laissez un peu de marge sous la limite de connexions de votre compte. Régler les connexions un cran en dessous de la limite ne coûte rien : le débit plafonne bien avant les une ou deux dernières connexions, et le Réglage des connexions (§13) s'arrête de toute façon en dessous. Ce sont ces places libres qui permettent à un deuxième appareil, à un autre client ou à une nouvelle tentative après une coupure de socket de passer quand même, au lieu d'être refusés pendant que celui-ci occupe toutes les places.

Comment vos mots de passe fournisseur sont stockés

Les mots de passe fournisseur dans config.local.json sont obscurcis, pas chiffrés. Ils sont stockés sous la forme obf1: suivie d'une forme encodée, afin que le fichier ne se lise pas en clair s'il apparaît dans une capture d'écran, un message de forum, un rapport de bug, ou sur un écran que quelqu'un d'autre peut voir.

Soyons clairs sur ce que cela apporte et ce que cela n'apporte pas :

À titre de comparaison, NZBGet et SABnzbd stockent tous deux les mots de passe fournisseur en texte lisible dans leurs fichiers de configuration. Nous considérons l'obscurcissement comme une petite amélioration là-dessus, pas comme une fonction de sécurité.

Pourquoi pas le trousseau système ? Le trousseau macOS, le gestionnaire d'identifiants Windows et les services de secrets Linux offriraient une vraie protection, et nous y reviendrons peut-être. Deux choses nous en empêchent aujourd'hui. L'accès au trousseau est lié à l'identité de l'application, et nzbfast n'est pas encore signé, donc les invites et le comportement après chaque mise à jour sont mauvais. Et une grande part des installations sont Docker, des serveurs sans écran et des NAS où aucun trousseau n'existe, ce qui laisserait deux chemins de stockage différents à maintenir corrects. Un format unique et bien compris qui se comporte pareil partout est, pour l'instant, le meilleur compromis.

Deux autres options par serveur n'ont pas encore de contrôle dans le tableau de bord : ajoutez-les à la main dans l'entrée de ce serveur dans config.local.json (voir §17), puis redémarrez.

CléNotes
bind_ipLie les connexions sortantes de ce serveur à une adresse locale précise, pour les machines multi-hébergées et les tunnels VPN partagés. La famille d'adresses choisit aussi la famille cible : une liaison v4 se connecte à l'adresse v4 du serveur.
socks5Fait passer le trafic NNTP de ce serveur par un proxy SOCKS5 : host:port, ou user:pass@host:port. Le nom d'hôte est résolu par le proxy, donc aucune fuite DNS locale.
RecommandationDeux fournisseurs sur des backbones différents valent mieux que trois sur le même. Lancez Diversité des serveurs (§13) pour voir lesquels de vos fournisseurs diversifient réellement votre couverture et lesquels sont des copies redondantes l'un de l'autre.

9 · Référence des paramètres

Presque tout se configure depuis le tableau de bord, sous ⚙ Paramètres ; les quatre exceptions sont listées en fin de section. Les valeurs marquées live s'appliquent immédiatement, restart au prochain lancement. Chaque changement fait ici est écrit dans settings.json et survit aux redémarrages (les valeurs de l'interface l'emportent sur les options de ligne de commande).

Vitesse & planification en direct

RéglageEffet
Limite de vitessePlafond en octets/s (50M, 1G, 0 = illimité). Les applis distantes peuvent envoyer des pourcentages - définissez la Vitesse de la ligne pour qu'ils se traduisent correctement.
Vitesse autoPlafond régulé par RTT qui cède la place au reste du trafic du foyer et se ré-étend quand la ligne est calme.
Reporter auto les téléchargements lentsUne tâche coincée sur un seul serveur lent pendant que d'autres attendent est renvoyée en fin de file (progression conservée). Voir §13.
Préchargement sur serveurs inactifsLes serveurs inutiles au téléchargement actif démarrent la tâche suivante en file. Voir §13.
Mise à jour auto / URL de vérification des mises à jourVoir §14.
Vitesse de la ligneLa vitesse nominale de votre connexion - active les limites en pourcentage depuis les applis compatibles SABnzbd.
Planification hebdomadaireÉditeur de règles horaires hebdomadaires : pause, reprise ou limite de vitesse à des jours/heures donnés (heure locale). Ex. : limiter à 20 MB/s en semaine de 9 à 17 h, sans limite le reste du temps.

Prochain téléchargement en direct

Connexions (par serveur), fenêtre (profondeur de pipelining par connexion), threads de décodage (décodage parallèle). Échantillonnés au démarrage de chaque tâche. Les valeurs par défaut conviennent à la plupart des lignes ; utilisez les outils de réglage avant d'augmenter à l'aveugle.

Vérification pendant le téléchargement choisit ce qui est contrôlé à mesure que les données arrivent. Complète confirme chaque bloc PAR2 en MD5. Rapide (par défaut) revendique les blocs par CRC32, ce qui est 2-3x plus rapide sur un processeur lent, et vérifie toujours la somme de contrôle propre à chaque article. Économe saute aussi ces sommes d'articles dès que PAR2 couvre un fichier : le dommage apparaît alors un instant plus tard, au niveau de son bloc. Dans les trois cas la passe finale et toute réparation utilisent le MD5 complet, et un téléchargement sans fichiers PAR2 garde ses sommes d'articles.

Disque & quota en direct

Espace libre minimum (met en pause les nouvelles tâches en dessous ; 2 Go par défaut, 0 le désactive), quota de téléchargement par jour ou par mois (UTC ; les tâches Forcé le contournent), budget mémoire - l'enveloppe RAM du moteur (par défaut : ¼ de la RAM, borné ; augmentez-le sur une machine riche en RAM pour la vitesse maximale sur les très grosses tâches, et voyez ce que coûte une mémoire réduite avant de le baisser) redémarrage.

Déplacer les terminés vers : après extraction, nettoyage et renommage, les téléchargements terminés sont déplacés ici - un partage NAS, un disque multimédia, là où vit votre médiathèque. L'arborescence des catégories est conservée (une tâche terminée sous tv/ arrive sous tv/ à destination), et l'historique suit le déplacement : les applications connectées importent et suppriment donc au nouvel emplacement. Si la destination est inaccessible à la fin d'une tâche (partage hors ligne, plus d'espace), les fichiers restent dans le dossier de téléchargement et la tâche se termine normalement. Vide = désactivé. Les Destinations par catégorie envoient certaines catégories ailleurs (tv=/Volumes/NAS/TV, movies=/Volumes/NAS/Movies) ; chaque chemin listé est le dossier de cette catégorie, aucun sous-dossier de catégorie supplémentaire n'y est donc créé. Les catégories non listées suivent Déplacer les terminés vers.

Profondeur des archives imbriquées (5 par défaut) est le nombre de couches archive-dans-archive décompressées automatiquement : un jeu RAR contenant un 7z contenant un autre RAR est courant sur Usenet, et nzbfast suit la chaîne sans seconde passe. À la limite, l'archive la plus profonde est simplement laissée en place, non décompressée, et le téléchargement se termine quand même. Ne l'augmentez que pour des releases anormalement profondes.

Renommage auto & nettoyage live

Renommer les téléchargements terminés (activé par défaut) donne au dossier et au fichier principal un nom propre et informatif : un film devient Example Movie (2024), les séries gardent Show - S01E02. Les noms obscurcis ou non reconnus sont laissés exactement tels que postés plutôt que devinés.

RéglageEffet
Inclure la résolutionAjoute 1080p, 2160p… au nom. Activé par défaut ; les quatre autres marqueurs sont désactivés.
Inclure le codec vidéox265, x264, AV1
Inclure le codec audioAtmos, DTS-HD, AC3
Inclure la sourceBluRay, WEB, REMUX
Inclure le groupe de releaseLe marqueur -GROUP à la fin.
Supprimer les fichiers superflusActivé par défaut. Supprime les .par2, .nzb, .sfv, .nfo restants et les extraits d'échantillon des dossiers film/série terminés. Jamais la vidéo ni ses sous-titres.
Ne garder que le fichier médiaDésactivé par défaut, et destructeur : supprime définitivement tout le dossier sauf la ou les vidéos et les sous-titres. Chaque épisode d'un pack de saison est conservé. Prend le pas sur Supprimer les fichiers superflus si les deux sont actifs.
Keep the other words in the nameActivé par défaut. Le sport, les courses et les autres événements sont souvent un même titre répété toute la saison, à un mot ou deux près - "Round11 Hungary Race" contre "Round11 Hungary Qualifying". Garder ces mots est ce qui empêche toute une saison de se réduire au même nom. Ne s'applique que là où le nom ne pouvait être mis au propre autrement, si bien que les films et épisodes ordinaires ne sont pas touchés.

L'ensemble s'exécute après réparation et décompression et avant Déplacer les terminés vers, et est entièrement sauté pour une tâche encore en attente de mot de passe. Les deux étapes de suppression ne s'appliquent qu'aux releases reconnues comme film ou série : une charge logicielle ou un jeu non classable (obscurci) n'est jamais nettoyé.

Les fichiers supprimés vont à la Corbeille décide de ce que « supprimer » signifie ci-dessus. Activé, le nettoyage déplace les fichiers vers la Corbeille du système, si bien qu'une erreur sur ce qui était superflu peut être annulée ; désactivé, ils sont supprimés définitivement. Il est activé par défaut sur macOS et Windows, où la Corbeille est un endroit que vous pouvez voir et vider, et désactivé par défaut sur Linux, où ce n'est en général pas le cas.

Sur un NAS ou dans un conteneur, laissez-le désactivé. Quand vos téléchargements sont sur un autre disque que votre répertoire personnel - la configuration habituelle sur Unraid, Synology, une seedbox ou toute installation Docker avec un partage monté - les règles de corbeille de Linux n'utilisent aucune Corbeille de bureau. Elles créent un dossier caché .Trash-1000 (le nombre est votre identifiant utilisateur) à la racine du disque de téléchargement et y déplacent les fichiers. Rien ne vous montre ce dossier, rien ne le vide, et l'espace qu'il occupe ne revient jamais.

Si vous avez utilisé une version antérieure de nzbfast sur Linux avec cette option activée, cherchez ce dossier à la racine de votre partage de téléchargement. Vous pouvez le vider sans risque : tout ce qu'il contient est un fichier dont le nettoyage avait déjà décidé que vous ne le vouliez pas. nzbfast ne le videra pas à votre place, car il est sur votre disque et c'est à vous d'en juger.

Dossiers & traitement

Dossier de téléchargement redémarrage, dossier surveillé, script de post-traitement (exécuté après chaque tâche avec les arguments compatibles SABnzbd et l'environnement SAB_* - vos scripts SAB existants fonctionnent tels quels), extensions de nettoyage (fichiers parasites supprimés après réussite), Dossiers intelligents et classement TV (voir §10).

Conserver les .nzb après prise en charge (désactivé par défaut) laisse le .nzb d'origine dans le dossier surveillé après sa mise en file, au lieu de le déplacer vers la corbeille - pour les collectionneurs, et pour transmettre le fichier quand un téléchargement pose problème. Un fichier conservé est mémorisé, y compris entre les redémarrages, et n'est pas remis en file ; réenregistrez-le pour le télécharger à nouveau. Quel que soit votre choix, le tiroir de chaque tâche a un bouton Télécharger le .nzb, donc une copie du .nzb de n'importe quelle tâche n'est jamais à plus d'un clic.

Indexation en direct

L'indexeur intégré est désactivé par défaut. Il trouve les posts publiés sous un vrai nom de fichier, et une part importante et croissante d'Usenet est délibérément postée sans : sujet aléatoire, noms de fichiers aléatoires à l'intérieur, déposés dans un groupe fourre-tout. Le vrai nom ne vit que dans un NZB que l'uploadeur publie ailleurs, il n'a donc jamais été sur Usenet où un scanner pourrait le lire. Mesuré sur notre propre index, 14,8 millions de posts scannés ont produit environ 31 000 releases consultables, soit à peu près une sur cinq cents. Continuez d'utiliser des indexeurs commerciaux, et ajoutez-les dans Paramètres → Indexeurs de recherche pour pouvoir les interroger depuis le mur. Activez ceci si vous suivez des groupes précis où les gens postent encore sous de vrais noms, ou si vous voulez voir ce que votre fournisseur transporte réellement. Interrupteur éteint, rien n'est scanné ni récupéré, aucune base n'est créée, et le mur, Parcourir, la watchlist et le flux newznab sont masqués.
RéglageEffet
Indexeur intégréL'interrupteur principal, éteint tant que vous ne l'allumez pas. Éteint signifie aucun scan, aucune recherche de métadonnées, aucun échantillonnage de disponibilité et aucun flux newznab ; un index déjà sur le disque est conservé (il y a un bouton pour le supprimer), donc le rallumer reprend au lieu de tout rescanner.
GroupesLes newsgroups que l'indexeur intégré scanne (ex. alt.binaries.teevee).
Intervalle de scanSecondes entre les passes (900 par défaut).
Articles de backfillEn-têtes récupérés au tout premier scan d'un groupe.
Approfondir par scanChaque passe indexe aussi ce nombre d'articles plus anciens, étoffant votre historique consultable en arrière-plan jusqu'à l'âge max (200 000 par passe par défaut ≈ des dizaines de millions d'articles par journée de fonctionnement).
Âge maxIgnorer les posts plus vieux que ce seuil (90d, 6m, 2y) - borne la taille de l'index et le temps de scan.
Limiter à la fenêtre d'âgeActivé par défaut. Supprime aussi les releases déjà stockées une fois passé l'âge maximum, pour que l'index tienne à peu près cette fenêtre au lieu de grossir sans fin. Désactivé = seuls les nouveaux posts sont filtrés et ce qui est stocké reste. Les fragments morts (masqués, toujours incomplets après une semaine) sont récoltés dans les deux cas.
Filtres d'ingestionRègles JSON filtrant ce qui entre dans l'index : types (le tout-venant obfusqué est écarté par défaut), année/résolution/langue, bornes de taille.
Scanner maintenant / rescan profondLance une passe immédiatement ; avec une profondeur, rescanne ce nombre d'en-têtes récents.
Clé OMDb / rafraîchir les métadonnées / effacerContrôles d'enrichissement du mur (§6). Effacer reconstruit la base de zéro - la voie de secours si elle est un jour corrompue.
Flux de presDésactivé tant que vous ne l'activez pas. Beaucoup d'envois sont publiés sans leur nom, et une analyse n'a alors rien à lire. Des canaux de relais publics annoncent le vrai nom, seule voie ouverte pour rapprocher ces envois. Activer garde une connexion ouverte vers un réseau IRC et écoute : rien n'est jamais envoyé et aucun compte n'est créé. Exige l'indexeur actif, car un flux sans endroit où ranger ce qu'il entend n'est qu'une socket ouverte pour rien.
Serveur de relais, Canaux de relaisLe réseau IRC qui porte les annonces (hôte ou hôte:port) et les canaux à écouter, séparés par des virgules. Un changement prend effet à la connexion suivante : coupez puis rallumez le flux pour l'appliquer tout de suite.
Nommer par corrélationLes relais publics en direct ne portent aucun nom de fichier, donc la plupart des envois obscurcis ne peuvent pas être rapprochés directement. Ce qu'une annonce fixe, en revanche, c'est le moment d'apparition d'une release et sa taille. Ceci compare l'heure et la taille annoncées aux envois sans nom et, quand cela concorde, propose le vrai nom dans Parcourir. Une suggestion est signalée comme telle, demande votre clic, et ne renomme jamais de fichier sur le disque.
Appliquer automatiquement les correspondances fortesDésactivé par défaut, et strict une fois actif : la taille doit concorder étroitement, aucune autre annonce ne doit convenir presque aussi bien, et l'annonce doit choisir cet envoi en retour lors du contrôle inverse. Un nom appliqué ne change que l'affichage, il est marqué comme déduit, et il se retire tout seul si un téléchargement terminé le contredit. Tout ce qui est plus faible reste une suggestion.
Historique des annoncesLe flux en direct n'entend que les annonces postérieures à son activation. Ceci récupère environ six mois d'annonces passées auprès d'une base de pres publique, poliment et une seule fois, pour que les envois déjà indexés puissent aussi être rapprochés. Tourne en arrière-plan une demi-heure environ.

Bibliothèque, Sécurité, Interface

Bibliothèque : catégories traitées comme entrées de bibliothèque instantanées + intervalle de revérification. Sécurité : la clé API complète (tout) et la clé NZB (ajout seul - sans risque à donner aux sites d'indexeurs), toutes deux renouvelables en direct. Chaque champ remplace la clé qui lui correspond dès que vous le quittez, et laisser un champ vide conserve la clé qu'il a déjà. La clé API dispose en plus de Show, qui révèle et copie la clé en cours pour que vous la colliez dans Sonarr, Radarr ou NZB360 quand cela vous arrange, et de Create new, qui en fabrique une de remplacement - l'ancienne cesse de fonctionner immédiatement, donc tout ce qui est déjà connecté doit recevoir la nouvelle. Les deux sont conditionnés à la clé API elle-même : la clé NZB en ajout seul ne peut pas la lire, ce qui est tout l'intérêt de cette clé. Pour savoir d'où vient la clé sur une installation neuve, voir §2. Interface : sons de clic, notifications de bureau à la fin des téléchargements, intervalle de retri des fournisseurs.

Unités de vitesse live décide de l'affichage de chaque vitesse du tableau de bord : mégaoctets (Mo/s, la norme des gestionnaires de téléchargement, par défaut) ou mégabits (Mb/s, comme les FAI annoncent les lignes). Les tailles de fichiers restent en octets. C'est une propriété du daemon, pas de votre navigateur : cela vaut donc pour tous les appareils qui regardent cette installation.

Avancé : les réglages fins derrière les évidents

Six réglages sans option de ligne de commande. Chacun a désormais sa ligne avancée sur la carte de réglages qui le concerne, et reste accessible par l'API (§16), p. ex. /api?mode=config&name=verify_mode&value=lean&apikey=…. Comme tous les autres, ils sont écrits dans settings.json.

NomEffet
verify_modefull | fast | lean (fast par défaut). lean est le coup de pouce pour processeur lent : comme fast, mais en sautant aussi le CRC yEnc par article dès que PAR2 couvre un fichier, soit une couche de CRC32 au lieu de deux. Les téléchargements sans PAR2 gardent leurs CRC d'articles, et la vérification et la réparation de fin de tâche sont inchangées dans tous les cas. Le sélecteur Vérification pendant le téléchargement ci-dessus est ce réglage.
auto_retry_minsDélai avant l'unique nouvelle tentative automatique accordée à un premier échec pour articles manquants (20 par défaut). Le retard de propagation est une vraie cause d'articles manquants et se résorbe seul ; grâce au journal, la reprise ne récupère que ce qui manque encore. Les échecs pour mot de passe ou retrait n'y ont jamais droit.
index_scan_parNombre de groupes analysés en parallèle par l'indexeur (3 par défaut, borné à 1-8).
oracle_sampleBudget de STAT au repos de l'oracle de disponibilité (§13), sondes par heure et par serveur. 300 par défaut, 3600 au maximum, 0 désactive complètement l'échantillonnage.
predb_max_rowsNombre d'annonces pre conservées dans la table du flux (250000 par défaut, borné à 10000-5000000). Le nettoyage horaire ramène la table à ce nombre et l'import historique refuse de démarrer s'il devait le dépasser, de sorte qu'un import n'ajoute jamais des lignes que le nettoyage suivant effacerait.
predb_seed_daysProfondeur d'historique atteinte par un import de départ lancé sans fenêtre propre (180 jours par défaut, 366 au maximum). Une fenêtre plus large signifie plus de requêtes vers la source pre, cadencée à une toutes les deux secondes.

10 · Automatisation

Liste de suivi

L'automatisation la plus simple : ajoutez un titre sur le tableau de bord, réglez vos préférences de qualité, c'est tout. Les nouvelles releases sont récupérées dès qu'elles apparaissent dans vos groupes indexés ; les copies de meilleure qualité remplacent les précédentes ; une vue calendrier montre ce qui arrive.

Flux RSS

Paramètres → RSS : n'importe quelle URL RSS newznab/indexeur, avec intervalle, catégorie et règles de filtrage par flux (motifs de titre, bornes de taille). Les éléments correspondants sont téléchargés automatiquement.

Dossiers intelligents

Des règles évaluées à l'ajout d'une tâche : correspondance par motif/mots-clés et taille, attribution d'une catégorie (la première correspondance gagne). Avec le classement TV activé, les épisodes terminés sont renommés et classés en Show/Season 01/Show - S01E02.mkv - prêts pour Plex/Jellyfin sans outil externe.

Planificateur

La planification hebdomadaire (voir §9) automatise pause/reprise/vitesse selon l'heure de la journée.

Scripts

Un script de post-traitement reçoit les arguments positionnels de SABnzbd et les variables d'environnement SAB_* - le vaste écosystème de scripts SAB tourne tel quel.

11 · Sonarr, Radarr & compagnie

nzbfast parle nativement l'API SABnzbd, donc chaque *arr fonctionne d'emblée - et il peut aussi jouer le rôle de leur indexeur.

Comme client de téléchargement

  1. Dans Sonarr/Radarr : Settings → Download Clients → ajoutez SABnzbd.
  2. Hôte : votre machine nzbfast · Port : 6789 · Clé API : votre clé API complète (où la trouver : §2).
  3. Catégorie au choix (ex. tv / movies). Test → coche verte → Save.

File, historique, statut par tâche, « retirer & supprimer », réessai et routage par catégorie se comportent comme les *arr l'attendent.

Comme indexeur (newznab)

  1. Settings → Indexers → ajoutez Newznab.
  2. URL : http://<host>:6789/ · chemin d'API : /api · clé : votre clé API.
  3. nzbfast sert les requêtes caps, search, tvsearch et movie depuis son propre index de vos groupes surveillés, et /getnzb/<id> renvoie le NZB.
Activez d'abord l'indexeur intégré (Paramètres → Indexation). Il est désactivé par défaut, et tant qu'il l'est cette façade répond à chaque requête par <error code="101"> plutôt que par un résultat vide, si bien qu'une erreur se voit au moment où vous ajoutez l'indexeur et non des semaines plus tard.

Pourquoi s'en donner la peine ? Un indexeur auto-hébergé couvrant exactement les groupes qui vous intéressent : pas de comptes, pas de limites d'appels API, une rétention aussi profonde que vous le laissez scanner. C'est un complément à vos indexeurs habituels plutôt qu'un remplacement, car il ne trouve que ce qui a été posté sous un vrai nom de fichier.

12 · Téléphone & applis distantes

nzbfast implémente les deux grands protocoles de contrôle à distance, donc presque toutes les applis mobiles/tablette fonctionnent. Choisissez le protocole que votre appli prend en charge :

Applis qui parlent NZBGet (nzb360, LunaSea, NZB Unity…)

Champ dans l'appliValeur
TypeNZBGet
Hôte / portvotre machine : 6789
Nom d'utilisateurn'importe lequel (ex. nzbfast)
Mot de passevotre clé API

Toute la surface JSON-RPC utilisée par ces applis est servie : statut, file avec réordonnancement/pause/suppression, historique, ajout de NZB, limite de vitesse, pause/reprise, journal.

Applis qui parlent SABnzbd

Champ dans l'appliValeur
TypeSABnzbd
Hôte / portvotre machine : 6789
Clé APIvotre clé API (ou la clé NZB pour un accès ajout seul)

Le tableau de bord sur votre téléphone

Ouvrez simplement http://<machine>:6789 dans un navigateur mobile - tout le tableau de bord et le mur ont une mise en page tactile. Le panneau Paramètres → Accès à distance affiche les URL exactes et un QR code à scanner.

Accéder à nzbfast depuis l'extérieur de chez vous

Il n'y a pas de page de connexion, et c'est délibéré. Une connexion par cookie de session est une surface de sécurité à maintenir indéfiniment, et elle resterait le maillon le plus faible de tout ce qui est exposé à Internet. nzbfast s'authentifie plutôt avec votre clé API, et il accepte cette clé dans un en-tête de requête aussi bien que dans l'URL (X-Api-Key, ou Authorization: Bearer) - c'est ce qui permet à un service placé devant lui de gérer correctement la connexion.

La solution la plus simple est de ne rien publier du tout. Installez Tailscale sur cette machine et sur votre téléphone : les deux rejoignent un même réseau privé, rien n'est exposé, aucun réglage de routeur ni de certificat n'est nécessaire, et Réglages → Accès à distance affiche une adresse qui fonctionne de partout dès qu'il détecte Tailscale. Préférez cette voie sauf si vous avez besoin d'un domaine public.

Si vous en avez vraiment besoin, placez un proxy inverse devant, confiez-lui le certificat et laissez-le assurer l'authentification. Démarrez nzbfast avec --bind 127.0.0.1 pour que le proxy soit la seule entrée, et pointez le proxy vers http://127.0.0.1:6789 :

# Caddy
example.com {
    reverse_proxy 127.0.0.1:6789
}

# nginx
location / {
    proxy_pass http://127.0.0.1:6789;
    proxy_set_header Host              $host;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Ajoutez par-dessus ce que propose votre proxy : authentification basique, un service de forward-auth comme Authelia ou Authentik, ou des certificats client. Un détail piège tout le monde - Sonarr, Radarr et les applications mobiles ne peuvent pas effectuer une connexion via navigateur, laissez-leur donc un passage. La plupart des proxys savent laisser passer une requête portant un en-tête X-Api-Key valide et exiger l'authentification pour tout le reste.

Ne redirigez pas simplement le port 6789 sur votre routeur. Le tableau de bord parle du HTTP en clair : votre clé API et tout ce que vous en faites traverseraient Internet lisibles par quiconque sur le trajet, et une installation sans aucune clé est ouverte à qui la trouve. Si vous redirigez un port malgré tout, définissez d'abord une clé API.

13 · Outils de performance

Benchmark système

Un clic mesure vos trois plafonds - débit réseau (une vraie sonde multi-connexions de 8 secondes), vitesse de vérification du CPU et vitesse d'écriture disque - et commence par la réponse : votre vitesse de téléchargement maximale attendue et le plafond qui la limite. La barre la plus courte est votre goulot d'étranglement ; les autres montrent leur marge. Planifiez-le (toutes les 6 h → hebdomadaire) et chaque exécution est consignée dans un historique, pour voir quand votre fournisseur, votre FAI ou votre matériel change de comportement. Les exécutions planifiées n'ont lieu que quand la file est au repos.

Réglage des connexions

Mesure un fournisseur à des nombres de connexions croissants et recommande le réglage - plus de sockets aident jusqu'à saturation du fournisseur ou de votre ligne, et certains fournisseurs punissent la sur-demande. Tout tester compare chaque fournisseur, puis les lance tous ensemble pour vérifier que le pool sature votre ligne.

Diversité des serveurs

Échantillonne par STAT des articles de différents âges sur chaque serveur et regroupe les fournisseurs par lacunes partagées : des fournisseurs avec ~100 % d'articles manquants en commun sont le même backbone (redondant pour la récupération) ; les indépendants étendent réellement votre couverture. Se conclut par une recommandation en langage clair.

Intelligence de file automatique

L'oracle de disponibilité

Les retraits sont la première cause d'échec d'un téléchargement Usenet, et ils sont prévisibles : la même release disparaît d'un backbone pendant qu'un autre l'a encore. nzbfast tient un petit registre de ce que vos propres fournisseurs ont réellement servi, et dépense un minuscule budget de sondes STAT au repos (quelques centaines par heure et par serveur, jamais pendant un téléchargement) pour le tenir à jour. Il ne télécharge jamais de charge utile pour cela.

Ce que cela vous apporte :

Le verdict est une prédiction fondée sur des indices, pas une garantie. Pour une réponse ferme sur un NZB, nzbfast check (§15) compte les articles réels.

Budget mémoire - et ce que coûte une mémoire réduite

Tous les caches du moteur partagent un même budget (par défaut ¼ de la RAM physique, borné à 256 MB–16 GB). Fixez-le explicitement avec Budget mémoire dans les Paramètres, ou --mem-limit en ligne de commande.

nzbfast est conçu pour saturer votre réseau et votre disque en même temps, et c'est la RAM qui lui permet de faire les deux en une passe : les articles sont décodés, vérifiés et écrits directement à leurs positions finales, si bien que les volumes d'archive n'ont jamais besoin de toucher le disque. Privez-le de mémoire et rien ne casse - chaque cache a une voie de débordement, et le moteur se rabat sur davantage d'E/S disque plutôt que de swapper ou d'échouer. Mais ce débordement n'est pas gratuit, et sur les grosses tâches il se mesure.

Mesuré sur une seule machine et une seule ligne (M1 Ultra, 10 GbE), mêmes fichiers à chaque budget. Chaque exécution a produit un résultat correct, entièrement vérifié et extrait :

Taille de la tâcheRAM abondanteBudget 2 GB
≈ machine 8 GB
Budget 1 GB
≈ machine 4 GB
Budget 256 MB
≈ NAS 2 GB
7 GB15 s15 s15 s15 s
35 GB65 s70 s70 s65 s
87 GB148 s206 s +39%196 s +32%180 s +22%
190 GB330 s427 s +29%402 s +22%411 s +25%

Le pic mémoire suit le budget, pas la tâche : ce téléchargement de 190 GB se termine dans environ 1.1 GB de RAM. Ce que vous échangez contre cela, c'est du temps - et seulement sur les grosses tâches.

RecommandationDonnez à nzbfast environ 2 GB de budget par 100 GB de la plus grosse tâche que vous téléchargez, et laissez la valeur par défaut tranquille sinon - ¼ de la RAM est déjà la bonne réponse sur la plupart des machines. En pratique : 4 GB de RAM couvrent les tâches jusqu'à ~35 GB à pleine vitesse ; 8–16 GB y maintiennent aussi les tâches de 100 GB et plus ; un NAS 2 GB viendra à bout de tout ce que vous lui donnez, mais traitez-le comme un téléchargeur d'arrière-plan plutôt que comme de quoi saturer une ligne rapide.

Sur un petit NAS, baissez aussi les Connexions (2–4) en même temps que le budget. À 256 MB de budget et 2 connexions, le pic mémoire reste proche de 190 MB - confortablement dans ce qu'un NAS 2 GB a de disponible. Sachez qu'à ce stade, c'est le nombre de connexions, pas la mémoire, qui vous limite : la même tâche de 35 GB a pris 286 s au lieu de 65 s. C'est la forme honnête du compromis - elle finira toujours, et finira correctement ; elle ne saturera simplement pas la ligne.

Les benchmarks sont relancés à chaque version ; la méthode et les chiffres par machine sont publiés avec les résultats.

14 · Mises à jour

Mettre à jour sans perdre vos paramètres

Une seule règle couvre toutes les installations : une mise à jour remplace le programme, jamais vos paramètres. Tout ce que vous avez configuré - serveurs, chemins, clé API, file - vit dans une poignée de fichiers d'un seul dossier (§17), et aucun installateur, récupération d'image ou mise à niveau de paquet ne touche à ce dossier. Quand les paramètres semblent tout de même disparus après une mise à jour, c'est presque toujours parce que la nouvelle installation lit un dossier différent, vide, pas parce que quoi que ce soit a été supprimé ; les anciens fichiers sont toujours là où ils ont toujours été. §18 donne les étapes de récupération.

InstallationComment mettre à jour
App macOSOuvrez le nouveau DMG et faites glisser NzbFast dans Applications, en remplaçant l'ancienne. Votre dossier de données est séparé et n'est pas touché.
Installateur WindowsLancez le nouveau programme d'installation par-dessus l'installation existante. Votre dossier de données est séparé et n'est pas touché.
Docker (ligne de commande)docker pull nzbfast/nzbfast, supprimez l'ancien conteneur, puis lancez le nouveau avec exactement les mêmes montages -v. L'image est jetable ; le dossier /config monté est votre installation. Si votre commande de lancement utilise un chemin relatif comme -v ./config:/config, exécutez-la depuis le même répertoire à chaque fois - depuis n'importe où ailleurs, ./config est un dossier différent, vide.
Docker Composedocker compose pull && docker compose up -d, avec le même fichier compose au même endroit. Le ./config du fichier est ancré au dossier du fichier lui-même, donc laissez le fichier là où il est.
WatchtowerRien à faire : il recrée le conteneur avec les mêmes montages quand une nouvelle image sort.
UnraidOnglet Docker → Check for UpdatesApply Update. Ne mettez jamais à jour en supprimant puis réajoutant l'app ; si un jour vous réinstallez vraiment, gardez le même chemin appdata pour qu'elle retrouve votre /config existant.
Synology (Container Manager)Téléchargez la nouvelle image, arrêtez le conteneur et recréez-le avec les mêmes réglages de volumes - le guide Synology détaille l'opération clic par clic, y compris la façon de le faire selon une planification.
Synology (paquet)Installez le nouveau .spk dans Package Center ; il se met à niveau sur place.
Homebrewbrew upgrade nzbfast
Binaire simpleRemplacez le binaire. Votre config reste là où vous l'avez créée (§17).
AstuceUtilisateurs Docker qui branchent Sonarr ou Radarr : mettez la clé API dans la définition du conteneur elle-même (-e NZBFAST_APIKEY=…, ou le bloc environment de votre fichier compose ou de votre template Unraid). Une clé stockée là survit à n'importe quelle mésaventure du conteneur, car elle vit sur l'hôte, dans la définition, et est réappliquée à chaque démarrage. Une clé que vous définissez plus tard dans les Paramètres garde tout de même la priorité sur elle.

15 · Ligne de commande

Tout ce que fait le daemon est aussi scriptable. Les commandes de tous les jours :

CommandeRôle
nzbfast setupConfiguration interactive des serveurs.
nzbfast serveLance le daemon (tableau de bord + API + automatisation). --open ouvre le navigateur ; --apikey fixe la clé à la main (§2) ; --bind choisit l'adresse d'écoute, par défaut 0.0.0.0 (toutes les interfaces), 127.0.0.1 pour cette machine seulement. Voir --help pour la liste complète des drapeaux - chaque réglage du tableau de bord a son jumeau en drapeau.
nzbfast get file.nzbTélécharge un NZB, pipeline complet, sans daemon. --preflight abandonne tôt si le post ne peut pas aboutir ; --password pour les archives chiffrées.
nzbfast check file.nzbVerdict de disponibilité - COMPLETE / REPAIRABLE / IMPOSSIBLE - sans télécharger la charge utile.
nzbfast verify DIRVérifie les fichiers d'un répertoire contre son jeu PAR2.
nzbfast sysbenchLe benchmark système + le rapport de diversité, dans le terminal.
nzbfast index / searchScanne des groupes dans l'index / le cherche, sans le daemon.
nzbfast import-sabImporte les serveurs depuis un ini SABnzbd.

Également disponibles : inspect, probe, bench, bench-cpu, soak, fetch, spots/spot-search/spot-get (Spotnet), predb-seed (remplit la base de pres d'avant l'activation du flux), make-release-nzb/make-test-nzb (fixtures de test). Chaque commande accepte --config et --help. S'y ajoute post : il téléverse des fichiers en articles yEnc et écrit le NZB correspondant. Outil d'exploitation, il exige un --post-server explicite et ne choisit jamais de serveur à votre place.

16 · Aperçu de l'API

Point de terminaison de base : http://host:6789/api?mode=…&apikey=…&output=json - compatible SABnzbd, donc les intégrations SAB existantes fonctionnent sans changement. Deux clés : la clé API (contrôle total) et la clé NZB (ajout seul : addfile/addurl). addnzblnk ne fait délibérément pas partie de l'ensemble en ajout seul : résoudre un lien peut consommer du quota d'indexeur facturé, ce qui n'est pas l'affaire d'un identifiant en ajout seul.

DomaineModes
Filequeue (avec name=delete/pause/resume/priority/switch), pause, resume, addfile, addurl, addnzblnk, retry, set_password
Infoshistory, status/fullstatus, stats, version, server_stats, usage, log, warnings, plus /jobnzb/<nzo_id> (ressort le .nzb mis en réserve de la tâche elle-même, en file ou en historique ; clé API complète uniquement)
Configget_config, config&name=<setting>&value=… (chaque champ des Paramètres), server_save/delete/test/enable/reorder, import_probe/apply
Index & murindex_search, index_get, index_stats, index_scan_now, wall, wall_search/fix/refresh/art, plus newznab sur /api?t=caps|search|tvsearch|movie et /getnzb/<id>
Automatisationwatchlist, watchlist_check_now, watch_calendar, feeds, smart_folders, schedule
Diagnosticssysbench, bench_history, connladder, pooltest, diversity, update_check, update_apply
NZBGet JSON-RPC/jsonrpc - status, listgroups, history, append, editqueue, rate, pause, log (auth Basic : n'importe quel utilisateur, la clé API comme mot de passe)
Aperçu / lecture/stream/<nzo_id> (plages HTTP ; démarrer une tâche de bibliothèque en attente exige le jeton ?t= ou la clé), /m3u/<id> (exige la clé ; génère le jeton), /wall, /art/…

17 · Fichiers & emplacements

L'emplacement du dossier des paramètres dépend de la façon dont nzbfast a été installé. Ce seul dossier contient tout ce qui mérite une sauvegarde :

InstallationDossier des paramètres
App macOS~/Library/Application Support/nzbfast/
Windows%LOCALAPPDATA%\nzbfast\
Docker / conteneurs NAS/config à l'intérieur du conteneur, c'est-à-dire le dossier de l'hôte que vous y avez monté. Sur Unraid, c'est le dossier appdata de l'app.
Paquet Synology/var/packages/nzbfast/var/
TerminalLe dossier dans lequel vous avez lancé nzbfast setup, ou l'endroit vers lequel pointe --config / $NZBFAST_CONFIG.

Et ce qu'il contient :

FichierContenu
config.local.jsonIdentifiants des serveurs et options par serveur. Créé par l'assistant ; modifiable dans les Paramètres. Gardez-le privé. Les mots de passe sont obscurcis, pas chiffrés.
settings.jsonChaque réglage modifié dans le tableau de bord. Vit à côté de la config ; les valeurs de l'interface priment sur les drapeaux de ligne de commande. Supprimez une clé (ou le fichier) pour retomber sur les drapeaux/valeurs par défaut.
apikeyLa clé API que nzbfast s'est fabriquée lors d'un premier démarrage (§2). Vit à côté de la config ; lisible seulement par le compte qui exécute nzbfast sur macOS et Linux. Ne le supprimez pas pour obtenir une clé neuve : sur une installation qui a déjà tourné, rien ne la remplace et le daemon revient sans aucune clé. Définissez-en plutôt une nouvelle dans Paramètres → Sécurité.
index.dbL'index des releases (SQLite) + les métadonnées du mur. Sans risque à supprimer - il se reconstruit par le scan (Paramètres → Indexation → Effacer le fait pour vous).
<config>/.spool/État de la file (survit aux redémarrages), NZB par tâche, registre de consommation, historique des benchmarks, cache des affiches.
Journal d'articlesDans le dossier de sortie de chaque tâche tant qu'elle est incomplète - alimente la reprise après crash et le réessai. Supprimé en cas de succès.
Outils externesAucun n'est nécessaire - l'extraction RAR et la réparation PAR2 sont natives. Si un jeu exotique nécessite un jour un unrar ou par2 externe en repli, nzbfast regarde à côté de son exécutable, puis dans $PATH.

18 · Dépannage

SymptômeÀ vérifier
Téléchargements lentsLancez le Benchmark système - il nomme le goulot d'étranglement sans détour. Si c'est le réseau : lancez le Réglage des connexions, vérifiez le nombre de connexions par serveur, et assurez-vous que vos fournisseurs ne sont pas tous sur le même backbone (Diversité des serveurs).
Lent seulement sur les très grosses tâches
(NAS ou machine avec peu de RAM)
Attendu, et mesurable : un budget mémoire trop maigre fait déborder les caches sur disque et coûte 20–40 % au-delà de ~87 GB. Voir Budget mémoire pour les chiffres et la RAM à lui donner. Les tâches plus petites ne sont pas affectées.
Le téléchargement échoue « articles manquants »Le post a expiré ou a été retiré chez vos fournisseurs. Un second fournisseur sur un autre backbone en sauve la plupart. nzbfast check le prédit avant de télécharger. Et le mur signale à l'avance les probables disparues avec son point de disponibilité (§13). Un premier échec de cette forme se relance tout seul une fois après un délai, car le retard de propagation lui ressemble trait pour trait et se résorbe seul.
Une archive terminée demande un mot de passeLa ligne d'Historique montre 🔑 - saisissez-y le mot de passe ; la tâche se termine sur place.
Une archive ne se décompresse pasLes échecs de mot de passe et de réparation se nomment eux-mêmes dans la ligne d'Historique. Pour tout le reste il existe une porte de sortie : Paramètres → Dossier surveillé & post-traitement → Décompresser avec l'unrar externe (un réglage avancé) confie la décompression au programme unrar installé sur votre machine au lieu de l'extracteur intégré. Laissez-le désactivé sinon : le chemin intégré est plus rapide sur toutes les formes que nous avons mesurées, et les publications obfusquées aux noms hachés l'utilisent de toute façon toujours, car unrar ne peut pas suivre leur renommage. Le même interrupteur pour les exécutions nzbfast get est la variable d'environnement NZBFAST_NO_NATIVE_UNRAR=1. Si unrar décompresse une archive que l'extracteur intégré a refusée, merci de le signaler pour que nous corrigions le chemin intégré.
Sonarr/Radarr ne se connecte pasPort 6789 joignable ? Clé API correcte (la clé complète, pas la clé NZB) ? Type de client réglé sur SABnzbd ?
Le tableau de bord réclame une clé API que je n'ai jamais définieUne nouvelle installation s'en fabrique une et l'affiche une fois au démarrage (§2). Elle est dans le fichier apikey à côté de votre config, et dans la sortie de démarrage. Ou saisissez votre propre clé dans Paramètres → Sécurité depuis un navigateur déjà connecté.
Tous mes paramètres semblent disparus après une mise à jour
(serveurs, chemins, clé API)
Rien dans une mise à jour ne supprime des paramètres ; cela signifie que nzbfast lit un dossier différent, vide. D'abord : le champ de la clé API dans les Paramètres s'affiche vide à dessein - cliquez sur Show avant de conclure qu'elle est perdue. Sur Docker, comparez le montage /config du nouveau conteneur avec celui de l'ancien : un chemin hôte modifié, un chemin relatif lancé depuis un autre répertoire ou un dossier appdata tout neuf font tous repartir nzbfast de zéro pendant que vos vrais paramètres restent intacts au chemin précédent. Retrouvez l'ancien dossier (cherchez settings.json, votre fichier de config et apikey - les emplacements sont en §17), puis soit repointez le montage vers lui, soit copiez ces fichiers dans le nouveau dossier et redémarrez. Le journal de démarrage nomme le fichier de paramètres exact en usage : [settings] applying saved settings from …
Rien sur le réseau n'arrive à joindre le daemonVérifiez --bind : 127.0.0.1 ne sert que la machine où tourne nzbfast. La valeur par défaut, 0.0.0.0, sert toutes les interfaces. Vérifiez ensuite le pare-feu de la machine pour le port 6789.
La carte Parcourir reste maigreL'indexeur grandit en arrière-plan - vérifiez que les groupes sont définis dans Paramètres → Indexation, et laissez à Approfondir par scan le temps d'accumuler l'historique. « Scanner maintenant » force une passe ; la ligne d'état montre la progression en direct.
Le mur montre une mauvaise affiche / aucuneFiche détaillée → ✎ Corriger ou ↻ Rafraîchir les métadonnées. L'identification des films s'améliore avec une clé OMDb gratuite.
macOS dit que l'application « nzbfast » ne peut pas être ouverteDeux causes, toutes deux vite réglées. Si vous utilisez le zip simple -macos-universal.zip, double-cliquez sur Start nzbfast.command, pas sur le fichier nzbfast à côté : celui-ci est le programme lui-même, et le Finder répond à un double-clic dessus par exactement ce message. C'est le lanceur qui met tout en place et démarre le programme. Si le lanceur donne le même message, la copie a perdu son bit d'exécution Unix en chemin : macOS conserve ce bit à l'intérieur du .zip, mais pas les applis de chat, les disques cloud ni un nouveau zip, si bien qu'une copie transmise de la main à la main arrive non exécutable. Téléchargez le .dmg ou le .zip directement depuis la page des releases et cela n'arrivera pas. Pour récupérer la copie que vous avez déjà : ouvrez le Terminal, tapez chmod +x suivi d'une espace, faites glisser Start nzbfast.command et le fichier nzbfast sur la fenêtre, appuyez sur Entrée, puis double-cliquez à nouveau sur le lanceur.
Le daemon ne démarre pas : port occupéUne autre instance tourne - ou changez --port.
Où sont les journaux ?La carte Journal du tableau de bord, ou le terminal/fichier de log avec lequel vous avez lancé serve.
Toujours bloqué ?La carte Journal nomme généralement le coupable - joignez sa fin quand vous signalez un problème, avec votre nzbfast --version.

nzbfast - ce manuel accompagne chaque version. Les réglages, points de terminaison et valeurs par défaut cités ici correspondent à la version avec laquelle il a été livré.