⚡ 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 :
- NNTP pipeliné - de nombreuses requêtes d'articles s'enchaînent dos à dos sur chaque connexion, qui reste ainsi à pleine vitesse au lieu d'attendre les allers-retours.
- Un pipeline en une passe - téléchargement, vérification et extraction se chevauchent. Les volumes d'archive sont extraits dans le flux ; sur un post typique en mode « store », les fichiers RAR ne touchent jamais votre disque : la tâche n'a besoin que de 1× la taille de la release, pas 2×, et se termine quand le téléchargement se termine.
- Union multi-fournisseurs - chaque serveur configuré contribue ; un article absent d'un backbone est récupéré sur un autre. Les serveurs lents ou morts ne bloquent jamais la file.
- Un budget mémoire - le moteur s'adapte à une enveloppe de RAM bornée et se rabat sur le disque si nécessaire. Il ne fait jamais swapper votre machine.
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
- Ouvrez
nzbfast-<version>-macos.dmget faites glisser NzbFast dans Applications (universel : Apple Silicon + Intel). - 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.
- 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.
- Déposez un
.nzbn'importe où sur le tableau de bord - ou double-cliquez simplement les fichiers.nzbdans 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
- 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émentaires → Exécuter quand même. - 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.
- Double-cliquer un fichier
.nzble 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
nzbfast import-sab en ligne de commande.La carte de bienvenue demande aussi comment vous comptez utiliser nzbfast, avec quatre réponses : une appli comme Sonarr ou Radarr le pilote, vous venez de SABnzbd, vous venez de NZBGet, ou juste vous, depuis ce tableau de bord. Choisir une réponse ne change rien en soi. Elle affiche une courte liste à passer en revue - chaque recommandation avec le nom exact du réglage, sa valeur actuelle, la valeur recommandée et une ligne d'explication - et Appliquer ne modifie que les lignes que vous cochez. Chaque ligne est un réglage ordinaire que vous pouvez ensuite remettre comme avant, et la même liste reste disponible plus tard sous Paramètres → Réglages recommandés selon votre usage.
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 :
- L'application macOS, la zone de notification Windows ou
serve --open: rien. Ils transmettent la clé à la fenêtre de navigateur qu'ils ouvrent, le tableau de bord la retient, et vous êtes déjà connecté. - Un navigateur que vous avez ouvert vous-même, ou le tableau de bord sur un téléphone ou un autre ordinateur : la page demande la clé une fois, puis s'en souvient.
- Sonarr, Radarr, nzb360 et consorts : collez-la comme leur clé SABnzbd ou NZBGet (§11, §12).
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é.
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 :
| Terme | Signification |
|---|---|
| Fournisseur / serveur | Un service Usenet chez qui vous avez un compte (Newshosting, Eweka, XS News…). Chacun autorise un certain nombre de connexions simultanées. |
| Backbone | L'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. |
| NZB | Un petit fichier XML listant les articles qui composent un post. C'est ce que vous donnez à nzbfast. |
| PAR2 | Des 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âche | nzbfast | NZBGet 26.2 | SABnzbd 5.0.4 |
|---|---|---|---|
| 7 GB | 13.7 s | +26% | +39% |
| 35 GB | 67 s | +61% | +325% |
| 87 GB | 272 s | +36% | +160% |
| 190 GB | 9 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 :
- L'espace disque. Une seule passe demande 1× la taille de la release ; les clients qui écrivent les volumes d'archive puis les décompressent demandent 2×. Sur une machine de test avec 97 GB libres, une tâche de 87 GB s'est terminée ici en 3 m 08 s, et les deux autres n'ont pas pu tourner du tout.
- La mémoire. Sur la tâche de 190 GB, le pic d'utilisation était de 3.9 GB contre 9.3 GB pour SABnzbd - et nzbfast fera la même tâche dans environ 1 GB si on le lui demande (voir Budget mémoire).
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
- Menu Limite de vitesse - plafonds fixes, auto · cède au LAN (un mode régulé par RTT qui s'efface quand quelqu'un d'autre dans la maison a besoin de la ligne), ou sans limite.
- Pause pendant… - mettez tout en pause 15 min/30 min/1 h/3 h avec reprise automatique, ou utilisez le bouton Pause pour une pause sans échéance. La pause est immédiate : le transfert actif s'arrête en quelques secondes et reprend plus tard depuis le journal, sans rien perdre. (Les tâches en priorité Forcé continuent de se télécharger, comme dans SABnzbd.)
- Une bannière de mise à jour apparaît ici quand une nouvelle version est disponible (voir Mises à jour).
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
- Faites glisser les lignes pour réordonner (au sein d'une bande de priorité - Forcé/Haute passent toujours d'abord) ; changez la priorité en ligne.
- Cliquez sur une ligne pour le tiroir de détail : barres de progression par
fichier, compteurs de blocs vérifiés, quel serveur a contribué combien à
cette tâche, et une ligne « ajouté par » qui dit d'où vient la tâche
(dossier surveillé, une appli connectée, l'API…). Un bouton
Télécharger le .nzb vous enregistre le fichier
.nzbde la tâche - nzbfast en garde sa propre copie, donc cela fonctionne pour chaque tâche, même quand le fichier d'origine a disparu depuis longtemps. - Des badges signalent les états particuliers : reporté (lent), préchargement, en pause (voir Outils de performance).
- Un graphique de burn-down suit le total de GB restants dans la file.
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).
La carte peut aussi suivre une liste que vous tenez dans Plex. Ajoutez une source de liste : soit en liant votre compte Plex (vous approuvez un code court sur la page de Plex, donc aucun mot de passe n'atteint jamais nzbfast), soit en collant l'adresse de votre liste de suivi Plex. Traitez cette adresse comme un mot de passe - quiconque la détient peut lire votre liste - c'est pourquoi elle est masquée une fois enregistrée. Les titres synchronisés apparaissent en lignes de lecture seule à côté des vôtres. Un compte lié voit toute votre liste : retirer un titre là-bas arrête aussi son suivi ici (les téléchargements terminés ne sont jamais touchés) ; une adresse ne montre que les entrées les plus récentes, un titre absent peut donc simplement être sorti de la fenêtre et rien n'est retiré. Chaque comportement peut être inversé source par source.
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.
Organiser le tableau de bord
Le tableau de bord vous appartient. Quatre opérations, nommées de la même façon partout où vous les rencontrez : Déplacer une carte, la Compacter, la Redimensionner ou la Masquer. Chaque choix est retenu par le navigateur où vous l'avez fait, si bien que chaque appareil garde sa propre disposition, et Réinitialiser la disposition dans Paramètres → Interface remet chaque carte, taille et colonne comme à la livraison.
Personnaliser la disposition est la porte d'entrée guidée, et le moyen le plus rapide de voir ce qu'une carte sait faire. Ouvrez-la depuis le lien discret juste au-dessus de la première carte, ou depuis Paramètres → Interface, où c'est le premier bouton de la ligne Disposition du tableau de bord. Tant qu'elle est active, chaque carte réorganisable est encadrée, les trois outils de la ligne de titre sont dessinés en pleine intensité avec leur mot à côté de l'icône, et chaque barre de redimensionnement est tracée dans la couleur d'accent ; une carte sans barre explique pourquoi sur sa propre ligne, au lieu de vous laisser en chercher une. Terminé ou la touche Échap en sort. C'est une façon de regarder la page, pas un réglage : elle ne change rien à votre disposition, et elle est désactivée après un rechargement.
Sur un tableau de bord que personne n'a encore organisé, une ligne au-dessus des cartes rappelle qu'elles peuvent être déplacées, redimensionnées, compactées ou masquées, et pointe vers ce lien. Elle n'apparaît qu'une fois : J'ai compris la referme, tout comme ouvrir le mode ou organiser quoi que ce soit.
- Déplacer. Faites glisser une carte par son titre. Tout l'en-tête sert de poignée, pas seulement la petite icône à sa gauche : il n'y a aucune cible délicate à viser. Cette icône est aussi un arrêt de tabulation : donnez-lui le focus et les flèches haut et bas déplacent la carte.
- Compacter. Le bouton à côté de la poignée resserre l'espacement de cette carte : mêmes chiffres, moins de place. Sur l'Historique, il bascule entre les dix derniers téléchargements et le reste de votre historique. Mode compact dans Paramètres → Interface fait tout le tableau de bord d'un coup.
- Redimensionner. Une carte qui contient une liste ou un graphique porte une barre le long de son bord inférieur : faites-la glisser jusqu'à la hauteur voulue. La barre est discrète tant que vous ne pointez pas la carte, puis elle se dessine en un filet pleine largeur avec des stries dans son coin arrière ; elle prend aussi le focus clavier, où les flèches haut et bas règlent la hauteur et Maj fait de plus grands pas. Les cartes qui en ont une changent au fil des listes qu'elles gagnent ou perdent : fiez-vous à la barre plutôt qu'à une liste ici. Dans Personnaliser la disposition, les cartes qui n'en ont pas le disent elles-mêmes.
- Masquer. Le dernier bouton de la ligne de titre masque la carte. Les cartes masquées se rangent dans une barre Masquées au pied du tableau de bord ; cliquez un nom pour en faire revenir une.
Un clic droit sur le titre d'une carte réunit les mêmes opérations dans une seule liste : Déplacer vers le haut, Déplacer vers le bas, Compacter, Redimensionner et Masquer, plus une entrée vers Personnaliser la disposition quand vous n'y êtes pas déjà. Redimensionner n'est proposé que sur une carte qui a une barre à faire glisser. Déplacer vers le haut et Déplacer vers le bas se grisent aux extrémités, et ils ne comptent que les cartes que vous voyez : une carte masquée est enjambée, donc première et dernière veulent dire première et dernière visibles.
Ce menu est autant un chemin clavier qu'un chemin souris. Tabulez jusqu'à la poignée de déplacement d'une carte, appuyez sur la touche Menu contextuel ou sur Maj+F10, et il s'ouvre sous l'en-tête. Les flèches haut et bas le parcourent en sautant les entrées grisées ; Échap le ferme et rend le focus à la poignée d'où vous l'avez ouvert. Choisir Redimensionner donne le focus à la barre de cette carte, où les flèches haut et bas règlent la hauteur et Maj fait un plus grand pas.
Échap ne referme jamais que la couche du dessus. Fermer le menu d'une carte pendant que le mode est actif laisse le mode en place ; un second Échap en sort.
Cartes du tableau de bord dans Paramètres → Interface propose la même organisation sous forme de simples commandes : une case Afficher par carte, une case Compacte à côté, et les boutons Déplacer vers le haut et Déplacer vers le bas. Sur un téléphone, une tablette ou toute fenêtre étroite, les outils de carte et le glisser-déposer sont désactivés, parce que faire glisser une carte dans une page qui défile sous le doigt est une mauvaise commande : cette liste est donc la façon d'organiser le tableau de bord là-bas. Elle écrit ce que le bureau lit, si bien qu'un ordre défini sur un téléphone est celui qu'affiche le bureau. Ses boutons suivent la règle du menu : ils se grisent aux extrémités des cartes visibles, et une carte que vous avez masquée ne peut pas être déplacée tant que vous ne l'affichez pas de nouveau.
Les colonnes des tableaux s'organisent sur place, et non par ce qui précède. Dans les tableaux de la file, de l'historique et de Parcourir, faites glisser un en-tête de colonne latéralement pour déplacer la colonne, ou son bord arrière pour la redimensionner ; un double-clic sur ce bord rétablit les largeurs. Quand un en-tête a le focus, les flèches gauche et droite le déplacent, et Maj avec une flèche le redimensionne.
5 · Ajouter des téléchargements
| Méthode | Comment |
|---|---|
| Glisser-déposer | Dé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 URL | Collez 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'index | Cliquez sur n'importe quelle release complète dans la carte Parcourir. |
| Chercher sur les indexeurs | Interrogez les comptes indexeurs que vous avez ajoutés et mettez un résultat en file directement depuis la liste. Voir Chercher sur vos comptes indexeurs plus bas. |
| Liste de suivi / RSS | Automatique - voir Automatisation. |
| Sonarr/Radarr etc. | Ils envoient leurs récupérations directement dans la file - voir §11. |
| Ligne de commande | nzbfast get file.nzb télécharge sans le daemon. |
Catégories, priorités, mots de passe
- Les catégories sont des étiquettes libres ; chacune devient un sous-dossier de votre dossier de téléchargement, et les Dossiers intelligents (voir §10) peuvent les attribuer par règle.
- Priorités : Forcé > Haute > Normale > Basse. Forcé contourne la pause et le quota.
- Les mots de passe des archives chiffrées sont récupérés automatiquement depuis
<meta type="password">dans le NZB, un nom de fichierName{{password}}.nzb, ou le champp=d'un lien nzblnk, et peuvent être fournis par tâche via l'API ou après coup depuis l'Historique (🔑).
Chercher sur vos comptes indexeurs
Si vous avez un compte sur un site indexeur NZB, nzbfast peut l'interroger depuis ici et mettre en file ce que vous choisissez, au lieu de vous faire aller sur le site, télécharger un NZB et le rapporter. Il parle l'API indexeur standard que tous ces sites proposent, il n'y a donc rien à configurer par site : NZBGeek, NZBFinder, DrunkenSlug, DOGnzb et les autres fonctionnent de la même façon. Une instance Prowlarr ou NZBHydra2 compte aussi pour une seule entrée, et amène avec elle tous les indexeurs qu'elle regroupe.
Ajouter un compte. Paramètres → Chercher sur les indexeurs →
+ Ajouter un indexeur. Renseignez un nom de votre choix, l'adresse d'API du site
(son adresse web ordinaire suffit ; une entrée Prowlarr ressemble à
http://host:9696/1/api) et la clé API de votre page de compte là-bas, puis
Appliquer les indexeurs. Tester demande au site ce qu'il sait faire et
affiche sa réponse, ce qui valide l'adresse et la clé en un clic. Une clé enregistrée
n'est jamais réaffichée : le champ le dit, et le laisser vide conserve la clé déjà
en place.
Chercher. Ouvrez 🎬 le mur dans l'en-tête et passez à la liste des releases. Le menu déroulant à côté du champ de recherche décide où la recherche regarde : Cet index, c'est-à-dire ce que cette machine a scanné elle-même, Indexeurs, ou Les deux. Votre choix est mémorisé. Interroger vos comptes exige quelque chose dans le champ, car les parcourir avec une requête vide dépenserait le quota d'une journée pour une liste que personne n'a demandée. Avec l'indexeur intégré éteint, ce qui est l'état d'origine de nzbfast, il n'y a pas d'affiches à montrer et la page se réduit exactement à cela : un champ de recherche, vos comptes, et les résultats.
Les résultats. Une ligne par release, les plus récentes d'abord, avec sa taille, son âge et le nombre de fois que les utilisateurs de cet indexeur l'ont récupérée. Une release que plusieurs de vos comptes proposent n'apparaît qu'une fois. Sous Les deux, une copie que votre propre index détient déjà l'emporte et celle de l'extérieur est écartée, car récupérer ce que vous avez déjà indexé ne vous coûte rien. Télécharger la met en file en priorité haute : nzbfast va chercher le NZB lui-même, et à partir de là la tâche est comme toutes les autres, réparation, extraction, catégories et scripts compris.
Demander un titre précis. Ouvrez la fiche d'un titre sur le mur et appuyez sur ⌕ Chercher sur mes indexeurs. Pour les films, la question passe par le numéro IMDb partout où le site l'accepte, ce qui fait la différence entre le film que vous visiez et toutes les releases dont le nom contient par hasard ces mots-là. nzbfast retrouve ce numéro lui-même, la page n'en détient donc jamais aucun. Les sites qui ne proposent pas la correspondance par numéro sont interrogés en toutes lettres.
Votre quota. Les comptes indexeurs sont comptés : tant de recherches et tant de téléchargements par jour, selon votre formule. Inscrivez ces deux nombres sur l'entrée et nzbfast décompte, avec une remise à zéro à minuit UTC. 0, la valeur par défaut, veut dire illimité, et le décompte continue quand même. Un compte qui a épuisé son quota reste sur la touche pendant que les autres travaillent, et une ligne au-dessus des résultats nomme celui qui a été sauté : une fin de quota n'est jamais silencieuse. Un site qui répond par une limite à lui, ou qui nous demande de ralentir, est mis de côté pendant une heure.
Où va votre clé. Uniquement chez l'indexeur à qui elle appartient. Les clés restent sur cette machine, ne sont jamais remises au navigateur - chaque ligne de résultat porte un jeton valable une demi-heure à la place d'un lien - et sont retirées du journal comme de toute erreur renvoyée par le site, si bien qu'un message d'erreur recopié ne peut pas en divulguer une. Un téléchargement ne peut aller chercher qu'un lien renvoyé par l'une de vos propres recherches.
Ce sont les mêmes comptes qu'un lien nzblnk interroge en repli quand l'index local ne reconnaît pas son en-tête, et ceux que la liste de suivi peut questionner sur les éléments voulus (§10).
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 → Chercher sur les indexeurs, §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.
- Coller ou glisser fonctionne sur toutes les installations, Docker et NAS compris : copiez le lien depuis le board et collez-le n'importe où sur le tableau de bord.
- Cliquer un lien exige que le schéma soit enregistré auprès de votre bureau. L'application du DMG macOS l'enregistre, et l'installateur Windows le propose comme tâche : il demande d'abord, et laisse le schéma tranquille si NZB Monkey ou NZBDonkey le détient déjà. L'archive macOS simple, Homebrew et les installations Linux n'ont pas de gestionnaire de bureau : là, le collage est la voie d'entrée.
- La résolution est volontairement limitée en débit. Enregistrer un schéma le place à une invite de navigateur de n'importe quelle page que vous visitez : les liens sont donc plafonnés par minute et seuls les premiers de chaque minute peuvent atteindre vos indexeurs ; au-delà, la réponse vient du seul index local.
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.
- Onglets Films / Séries / Autre, recherche instantanée et sept tris : Pour vous, Posts récents, Année de sortie, Mieux notés, Titre A–Z, Plus gros et Les plus postés.
- Identifiés seulement est activé par défaut et masque le tout-venant non identifié ; une puce « +N non identifiés » le révèle.
- Cliquez une tuile pour la fiche détaillée : synopsis, note et votes IMDb, casting - et ▶ Lire (prévisualisez immédiatement, voir §7) ou ⬇ Télécharger.
- ✎ Corriger - si un titre a été associé à la mauvaise série ou au mauvais film, choisissez le bon parmi les affiches candidates, ou saisissez titre/année/type à la main. Le texte saisi manuellement n'est jamais écrasé par l'enrichisseur. ↻ Rafraîchir les métadonnées re-récupère un titre ; Paramètres → Indexation peut tout rafraîchir ou effacer/reconstruire l'index entier.
- Les métadonnées sont sans clé par défaut - TVmaze, iTunes, les jeux de données IMDb, Wikidata, Wikipédia et AniList ne demandent aucun compte. Une clé OMDb (gratuite, inscription par simple e-mail - un assistant d'inscription est dans Paramètres → Indexation) améliore l'identification des films ; une clé TMDB est honorée si vous en avez déjà une.
- Pour vous classe le mur selon un profil de goûts construit sur cette machine à partir de votre propre historique terminé et de votre liste de suivi : genres favoris, penchant film ou série, et à peu près quelle époque. Les titres que vous possédez déjà descendent au fond plutôt que de disparaître, et une légende « Parce que vous regardez … » dit sur quoi le classement s'appuie. Sans historique, le tri retombe sur Les plus postés : l'onglet n'est donc jamais vide. Rien de tout cela ne quitte le daemon.
- Pas intéressé sur une vignette masque ce titre, et en masquer quelques-uns du même genre apprend quelque chose au mur : il propose un filtre à accepter d'un clic (« Masquer tous les titres Téléréalité à partir de maintenant ? »). Tout ce que vous avez masqué, et chaque filtre appris, se retrouve sous Masqués & filtres et s'annule là.
- Un petit point de disponibilité sur une vignette est le verdict de l'oracle (§13) : un « ? » orange signifie incertain chez vos fournisseurs, un point rouge que ses morceaux manquent régulièrement. Les groupes en cours de purge portent un badge purgé.
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.
La première moitié de tout cela est déjà sur la page. Ouvrez la ligne d'un téléchargement dans la file (ou dans l'historique) : le tiroir montre ce que contient le fichier vidéo, lu dans les octets déjà arrivés : résolution, codecs vidéo et audio, langues audio, sous-titres, chapitres. Une release qui est le mauvais montage, la mauvaise langue ou un upscale se trahit dans ce panneau bien avant la fin du téléchargement.
La page détermine aussi si ce navigateur peut lire le fichier, et le dit au lieu de deviner : les navigateurs diffèrent (Safari décode le HEVC là où Chrome ne le fait pas, et presque aucun ne décode l'audio AC-3 ou DTS), la question est donc posée au navigateur dans lequel vous êtes réellement. Quand la réponse est oui, ▶ Lire ouvre un lecteur directement dans la page, qui montre le fichier pendant qu'il se télécharge. La plupart des versions sont en MKV, un format que beaucoup de navigateurs refusent d'ouvrir alors qu'ils savent décoder tout ce qu'il contient : nzbfast les ré-emballe donc au fil de la lecture. Rien n'est ré-encodé : l'image et le son sont les octets d'origine dans une autre enveloppe, et le déplacement dans le fichier fonctionne toujours. Si la bande-son est une que ce navigateur ne sait pas décoder et que la release en porte une seconde qu'il sait lire, c'est cette seconde piste qui est jouée, pour que l'image n'arrive pas muette. Ce n'est que lorsque le navigateur n'a pas de décodeur pour la vidéo elle-même que le bouton confie le fichier à votre propre lecteur multimédia, comme décrit ci-dessous.
Un seul réglage gouverne tout cela : Paramètres → Interface → Vérifier un fichier pendant qu'il se télécharge. Détails seulement, la valeur par défaut, montre le panneau et n'offre aucun lecteur dans la page ; Détails et un lecteur ajoute le lecteur ; Désactivé empêche toute lecture du fichier - avec cette option désactivée, rien n'ouvrira un fichier à moitié téléchargé pour qui que ce soit.
Pour vérifier dans votre propre lecteur multimédia à la place :
- ▶ Lire sur le mur (ou
/m3u/<id>) tend une URL à votre lecteur multimédia ; le daemon démarre ou réutilise le téléchargement derrière. - Le point de terminaison
/stream/<nzo_id>sert le fichier avec la prise en charge complète des plages HTTP pendant qu'il se télécharge. Vérifier n'importe quel point fonctionne : vérifiez la minute 40 d'un coup d'œil et les articles de cette zone passent en tête de la file de téléchargement - il s'ouvre à cet endroit en quelques secondes au lieu de plusieurs minutes. Le début et la fin du fichier sont récupérés d'abord pour que les lecteurs trouvent immédiatement leurs données d'index. - Mode bibliothèque : les catégories listées dans library_cats
deviennent des entrées instantanées, métadonnées seules - un fichier
.strmapparaît aussitôt, la disponibilité est vérifiée en arrière-plan, et le vrai téléchargement démarre quand vous l'ouvrez pour la première fois.
/stream. Pour vérifier depuis une autre machine, utilisez l'adresse LAN de votre
machine à la place de localhost./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 :
| Champ | Notes |
|---|---|
| Hôte / port | Utilisez le port SSL 563. TLS ne coûte rien de mesurable - nzbfast chiffre toujours. |
| Nom d'utilisateur / mot de passe | Stocké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. |
| Connexions | Connexions 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 %). |
| Chaque octet est facturé | À activer pour un compte facturé au volume. Vos téléchargements utilisent le serveur exactement comme avant ; ce qui s'arrête, c'est le trafic que nzbfast lui enverrait de sa propre initiative - le réglage automatique des connexions, l'étape réseau du benchmark système et les scans d'en-têtes pour l'index intégré le sautent tous. Indépendant du niveau et de la taille du bloc, car un compte facturé au volume peut être votre seul fournisseur et un compte illimité peut être au niveau 2. Désactivé par défaut. Le Tester manuel du Réglage des connexions (§13) fonctionne toujours sur un serveur ainsi marqué et demande d'abord, puisque là c'est vous qui choisissez de dépenser. |
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.
Vous n'avez pas à gérer la limite de fichiers ouverts de votre machine. Le système compte chaque connexion comme un fichier ouvert, et macOS démarre un programme avec une limite de 256 fichiers, un plafond qu'un jeu complet de connexions réparties sur plusieurs serveurs peut dépasser. Sur macOS et Linux, nzbfast relève lui-même cette limite au démarrage : il demande 65536 fichiers ouverts, puis redescend par 16384, 4096 et 1024 jusqu'à ce que le système accepte, sans jamais dépasser la limite stricte fixée par le système, et il continue avec la limite qu'il avait si toutes les étapes sont refusées. Windows n'a pas de limite de ce type par processus. Les autres clients se contentent de la limite que le shell leur a donnée, et celui qui manque de fichiers ouverts en cours de tâche peut s'arrêter sans rien laisser dans son journal pour l'expliquer. Réglez donc les connexions de chaque serveur d'après ce que permet votre abonnement, marge ci-dessus déduite, et non d'après ce que vous imaginez que la machine supportera.
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 :
- Ce n'est pas du chiffrement et cela ne protège en rien de quiconque possède le fichier. La méthode figure dans nos sources publiques et le décodeur est livré à l'intérieur de nzbfast : quiconque détient le fichier peut retrouver le mot de passe en quelques secondes. Traitez le fichier comme un secret exactement comme si les mots de passe étaient lisibles.
- Cela supprime la fuite banale, qui est la plus courante. Les configs sont bien plus souvent collées dans des fils d'assistance et capturées dans des copies d'écran qu'elles ne sont volées sur le disque.
- Un mot de passe que vous avez saisi vous-même en clair fonctionne toujours. nzbfast lit les deux formes, donc les configs modifiées à la main et les imports depuis d'autres clients ne sont jamais cassés ; il écrit la forme obscurcie à la prochaine sauvegarde.
- Le fichier est en outre écrit lisible uniquement par le compte qui exécute nzbfast (mode 0600 sur macOS et Linux).
À 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_ip | Lie 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. |
socks5 | Fait 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. |
- La coche à côté de chaque serveur est son interrupteur : cochée, le serveur est dans le pool de téléchargement ; décochée, il est désactivé. Un serveur désactivé conserve ses identifiants et ses réglages et reste testable ; on ne lui demande simplement jamais d'articles. Sa ligne s'estompe, le compteur du titre (2 sur 3 actifs) diminue, et le changement s'applique dès le téléchargement suivant. Pratique pour mettre en réserve un compte au bloc, ou pour prouver qu'un fournisseur est à l'origine d'un problème sans le supprimer.
- Tester effectue une vraie connexion + TLS + login et rapporte le temps d'aller-retour.
- Importer depuis SABnzbd / NZBGet… parcourt les emplacements d'installation habituels, montre ce qu'il a trouvé et copie les serveurs (en sautant les doublons).
- Les modifications de serveurs s'appliquent dès le téléchargement suivant - sans redémarrage.
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églage | Effet |
|---|---|
| Limite de vitesse | Plafond 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 auto | Plafond 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 lents | Une 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 inactifs | Les 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 à jour | Voir §14. |
| Vitesse de la ligne | La 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églage | Effet |
|---|---|
| Inclure la résolution | Ajoute 1080p, 2160p… au nom. Activé par défaut ; les quatre autres marqueurs sont désactivés. |
| Inclure le codec vidéo | x265, x264, AV1… |
| Inclure le codec audio | Atmos, DTS-HD, AC3… |
| Inclure la source | BluRay, WEB, REMUX… |
| Inclure le groupe de release | Le marqueur -GROUP à la fin. |
| Supprimer les fichiers superflus | Activé 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édia | Dé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. |
| Nommer les téléchargements d'après le fichier .nzb | Désactivé par défaut. Le dossier terminé et son fichier principal prennent le nom du fichier .nzb, au lieu du nom mis au propre déduit de la release. Seul le plus gros fichier est renommé : le reste d'un pack d'épisodes, l'échantillon, les sous-titres et le .nfo gardent les noms avec lesquels ils sont arrivés. Chaque catégorie peut l'autoriser ou l'interdire pour elle-même sous Vos catégories, ce qui permet de l'avoir pour un type de téléchargement et pas pour un autre. |
| Keep the other words in the name | Activé 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.
.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.
Chercher sur les indexeurs en direct
Vos comptes sur les sites indexeurs NZB, une ligne chacun, pour qu'une recherche sur le mur puisse aussi les interroger. Ce que fait la fonction, et comment chercher avec, se trouve au §5.
| Champ | Ce qu'il fait |
|---|---|
| Nom | Une étiquette de votre choix, et l'identité sous laquelle les compteurs et les limites du jour sont tenus. Renommer une ligne crée une nouvelle entrée : ressaisissez la clé. |
| Adresse d'API | L'adresse d'API du site. Son adresse web ordinaire suffit ; une entrée Prowlarr ou NZBHydra2 ressemble à http://host:9696/1/api. |
| Clé API | Prise sur votre page de compte du site. Gardée sur cette machine, envoyée seulement au site à qui elle appartient, jamais réaffichée et jamais écrite dans le journal. Laisser vide conserve celle qui est enregistrée. |
| Recherches par jour | Combien de recherches ce compte peut dépenser par jour. 0 = illimité, et c'est la valeur par défaut. |
| Téléchargements par jour | Combien de récupérations il peut dépenser par jour. 0 = illimité. Les deux compteurs repartent de zéro à minuit UTC. |
| actif, Tester | actif est ce qui rend une ligne interrogeable ; décochez pour garder un compte sans l'utiliser. Tester demande au site ce qu'il sait faire et affiche la réponse, ou l'erreur, sur place. |
Indexation en direct
| Réglage | Effet |
|---|---|
| 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. |
| Groupes | Les newsgroups que l'indexeur intégré scanne (ex. alt.binaries.teevee). |
| Intervalle de scan | Secondes entre les passes (900 par défaut). |
| Articles de backfill | En-têtes récupérés au tout premier scan d'un groupe. |
| Approfondir par scan | Chaque 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 max | Ignorer 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'âge | Activé 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'ingestion | Rè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 profond | Lance une passe immédiatement ; avec une profondeur, rescanne ce nombre d'en-têtes récents. |
| Clé OMDb / rafraîchir les métadonnées / effacer | Contrô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 pres | Dé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 relais | Le 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élation | Les 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 fortes | Dé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 annonces | Le 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.
| Nom | Effet |
|---|---|
verify_mode | full | 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_mins | Dé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_par | Nombre de groupes analysés en parallèle par l'indexeur (3 par défaut, borné à 1-8). |
oracle_sample | Budget 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_rows | Nombre 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_days | Profondeur 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.
Une source de liste alimente la liste de suivi depuis une liste que vous tenez dans Plex, de deux façons : liez votre compte Plex en approuvant un code court sur la page de Plex, ou collez l'adresse d'une liste de suivi Plex. Cette adresse est une clé d'accès : elle donne à quiconque la détient le droit de lire la liste, elle est donc masquée après enregistrement. La synchronisation des retraits diffère volontairement selon le mode : un compte lié voit toute la liste, donc un titre retiré là-bas cesse d'être suivi ici (les téléchargements déjà terminés restent) ; un flux par adresse ne porte que les entrées les plus récentes, l'absence ne prouve donc rien et les titres ne sont jamais qu'ajoutés. Les deux réglages par défaut se changent source par source.
Chercher aussi sur mes comptes indexeurs les éléments voulus, au bas de la carte de la liste de suivi, lui permet d'interroger les comptes de Paramètres → Chercher sur les indexeurs en plus de votre propre index (§5). C'est éteint au départ, parce que c'est la seule chose ici qui dépense un compte facturé sans que vous cliquiez. Une fois activé, chaque élément suivi demande environ deux fois par jour, et seulement pour ce qu'il n'a pas déjà trouvé, sous les mêmes limites quotidiennes et avec les mêmes mentions quand un compte est sauté. Un candidat venu d'un indexeur est jugé exactement comme un candidat local : planchers de qualité, montées en qualité, packs de saison et gestion des doublons s'appliquent tous, et une copie locale l'emporte à égalité puisqu'elle ne coûte aucun quota. Avec l'indexeur intégré éteint, c'est ce qui donne à la liste de suivi de quoi travailler.
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. Le dialecte de NZBGet est fourni à côté - les variables
NZBPP_* (DIRECTORY, NZBNAME, CATEGORY,
TOTALSTATUS, PARSTATUS, UNPACKSTATUS,
FINALDIR) et les codes de sortie 93/94/95 - si bien que la logique de
base d'un script d'extension NZBGet tourne aussi. La correspondance est honnête
plutôt qu'une émulation : la réparation et la décompression se font à l'intérieur
du téléchargement en une passe, donc une fin propre rapporte PARSTATUS=0
et une fin réparée PARSTATUS=2.
Les formes d'options par script (NZBPO_*) ne sont pas fournies.
Un script peut laisser un assistant tourner en arrière-plan à sa sortie et
nzbfast ne le tuera pas, mais nzbfast cesse de lire la sortie du script dès que
le script lui-même se termine : donnez à un assistant en arrière-plan sa propre
redirection de sortie, sinon il sera arrêté à sa première tentative d'écrire.
Script pré-file
Un second crochet s'exécute avant qu'un téléchargement n'entre dans la
file (Paramètres → Dossiers → Script pré-file), avec le contrat pre-queue de
SABnzbd : les arguments name, pp, category, script, priority, size, group
plus l'environnement SAB_*. La première ligne de sa sortie accepte
(1) ou rejette (0) le téléchargement ; les lignes 2 à 7
peuvent le renommer, fixer pp, changer la catégorie, choisir un script
ou changer la priorité (une ligne vide garde la valeur par défaut). Un
téléchargement rejeté va dans l'historique comme Échec avec la raison, et Réessayer
depuis l'historique le ramène sans redemander au script. Le crochet ne peut jamais
perdre un téléchargement : si le script est absent, plante, dépasse son budget de
temps ou imprime quelque chose qui n'est pas un verdict, l'ajout se poursuit
intact et le journal dit pourquoi.
Événements de cycle de vie et webhooks signés
Chaque jalon d'une tâche est un événement versionné : job.added,
job.started, job.finishing, job.repaired,
job.completed, job.failed, plus
queue.idle, giveup.tripped, disk.low,
storage.slow et quota.reached. Chacun porte
schema_version (actuellement 1 ; de nouvelles clés peuvent apparaître
sans incrément - ignorez ce que vous ne connaissez pas), un seq
monotone et un horodatage at en millisecondes.
Pour les recevoir, ajoutez une cible de notification webhook
(Paramètres → Automatisation) et listez dans son champ events les genres
d'événements qu'elle doit recevoir - des genres exacts, ou un préfixe comme
job.*. La cible reçoit alors un POST par événement : le JSON de
l'événement comme corps, plus un identifiant delivery
(<boot>-<seq>, la poignée pour dédupliquer), les en-têtes
X-NzbFast-Event et X-NzbFast-Delivery, et - quand la
cible a un secret de signature - X-NzbFast-Signature: sha256=<hex>,
un HMAC-SHA256 des octets exacts du corps sous votre secret (la même forme que
celle des webhooks GitHub). Vérification en Python :
expected = "sha256=" + hmac.new(secret, body, hashlib.sha256).hexdigest()
ok = hmac.compare_digest(expected, request.headers["X-NzbFast-Signature"])
La livraison est au-moins-une-fois : une cible injoignable est retentée après
10 s, 60 s et 5 min, puis abandonnée, l'échec étant affiché sur la
ligne de réglages de la cible. Une réponse d'erreur HTTP (404, 401...) n'est pas
retentée - réparez le récepteur et utilisez Test. Chaque cible a sa propre voie de
livraison, si bien qu'une cible lente ou injoignable n'en retarde jamais une
autre ; au sein d'une voie, les livraisons gardent l'ordre dans lequel les
événements se sont produits, et si l'une est abandonnée, les numéros de séquence
montrent le trou. Les mots d'événement classiques
(completed, failed, repaired,
disk, quota) gardent leur sens de notification humaine
sur la même cible.
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
- Dans Sonarr/Radarr : Settings → Download Clients → ajoutez SABnzbd.
- Hôte : votre machine nzbfast · Port : 6789 · Clé API : votre clé API complète (où la trouver : §2).
- Catégorie au choix (ex.
tv/movies). Test → coche verte → Save.
Le tableau de bord vous tend l'adresse : sur une installation qui n'a encore rien téléchargé, le parcours « Laisser Sonarr, Radarr ou une appli ajouter des téléchargements » de la carte de bienvenue montre l'adresse exacte avec un bouton Copier à côté. La clé API n'est délibérément pas sur cette ligne ; elle reste derrière son propre bouton de révélation dans Paramètres → Sécurité (§2).
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)
- Settings → Indexers → ajoutez Newznab.
- URL :
http://<host>:6789/· chemin d'API :/api· clé : votre clé API. - nzbfast sert les requêtes
caps,search,tvsearchetmoviedepuis son propre index de vos groupes surveillés, et/getnzb/<id>renvoie le NZB.
<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'appli | Valeur |
|---|---|
| Type | NZBGet |
| Hôte / port | votre machine : 6789 |
| Nom d'utilisateur | n'importe lequel (ex. nzbfast) |
| Mot de passe | votre 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'appli | Valeur |
|---|---|
| Type | SABnzbd |
| Hôte / port | votre machine : 6789 |
| Clé API | votre 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.
nzbfast sait aussi servir le HTTPS lui-même. Pointez Paramètres → Sécurité →
Certificat HTTPS / Clé privée HTTPS vers un certificat PEM et sa clé (ou démarrez
avec --tls-cert cert.pem --tls-key key.pem), redémarrez, et le tableau
de bord et l'API répondent en https:// au lieu du HTTP en clair - une
seule écoute, un seul schéma. Utilisez le certificat que votre domaine possède déjà
(par exemple de Let's Encrypt via certbot), ou un certificat auto-signé pour le
LAN, que les navigateurs acceptent après un avertissement unique. Un certificat
invalide ou expiré refuse le démarrage en nommant le fichier, l'erreur est donc
visible là où vous l'avez faite ; renouvelez en remplaçant les fichiers et en
redémarrant. Le HTTPS natif chiffre le trafic mais n'ajoute pas de connexion,
gardez donc la clé API définie.
S'il vous faut un domaine public, 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.
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
- Report automatique : un téléchargement qui se traîne sur un seul serveur lent pendant que d'autres tâches attendent est garé en fin de file (le journal conserve sa progression) et retenté quand la file est dégagée.
- Préchargement sur serveurs inactifs : les serveurs qui ne peuvent pas aider la tâche active (leurs copies ont disparu) téléchargent pendant ce temps la tâche suivante en file. Aucun autre client ne fait de chevauchement inter-tâches.
- Enchaînement inter-tâches : pendant que la fin d'une tâche (vérification/extraction) se termine sur disque, le téléchargement de la suivante possède déjà la ligne.
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 :
- Un verdict de disponibilité sur les vignettes du mur et les lignes de l'index (§6) : « ? » orange pour incertain chez vos fournisseurs, rouge pour perdu avec certitude. Aucune marque signifie que tout semble en ordre.
- Un badge purgé sur les groupes dont les posts récents sont déjà retirés : de quoi distinguer un groupe qui meurt d'une release malchanceuse.
- Les fournisseurs que l'oracle déclare vides passent en dernier (Paramètres, désactivé par défaut, expérimental) : quand la vérification est sûre qu'un backbone a perdu une release, ce fournisseur est interrogé en dernier pour ce téléchargement au lieu du premier. Rien n'est supprimé, une erreur coûte donc un peu de temps plutôt que le téléchargement.
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âche | RAM abondante | Budget 2 GB ≈ machine 8 GB | Budget 1 GB ≈ machine 4 GB | Budget 256 MB ≈ NAS 2 GB |
|---|---|---|---|---|
| 7 GB | 15 s | 15 s | 15 s | 15 s |
| 35 GB | 65 s | 70 s | 70 s | 65 s |
| 87 GB | 148 s | 206 s +39% | 196 s +32% | 180 s +22% |
| 190 GB | 330 s | 427 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.
- Jusqu'à ~35 GB, la mémoire réduite est gratuite. Le jeu de travail tient de toute façon, donc une machine de 4 GB termine une telle tâche aussi vite qu'une machine de 64 GB.
- Au-delà de ~87 GB, vous payez 20–40 % - mais seulement quand votre ligne devance votre disque. Les blocs de vérification et les volumes d'archive qui seraient restés en RAM sont écrits puis relus, et cela ne coûte du temps que si le réseau livre plus vite que le disque ne peut absorber le trafic supplémentaire. Les 20–40 % ci-dessus ont été mesurés en 10 GbE ; la même tâche de 87 GB aux mêmes budgets, sur une ligne d'environ 2.4 Gbps, n'a montré aucune pénalité (−1 à +7 %, dans le bruit de mesure). La pénalité dépend de l'écart entre la ligne et le disque, pas de la taille de la tâche - sur une connexion domestique typique, un petit budget est quasiment gratuit même sur de très grosses tâches.
- La pénalité plafonne. Dès qu'une tâche est assez grosse pour déborder, chaque budget contraint déborde à peu près autant - les exécutions à 2 GB, 1 GB et 256 MB relisent en pratique le même nombre de blocs depuis le disque et finissent dans le bruit l'une de l'autre. Un peu plus de RAM sous le seuil qui évite entièrement le débordement ne rachète donc pas le coût : donnez-lui de quoi garder la tâche en mémoire, sinon le chiffre exact importe peu.
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
- Les mises à jour sont notification seulement : nzbfast ne télécharge ni ne remplace jamais son propre binaire, et il ne contient aucun code capable de le faire. Quand une nouvelle version existe, l'en-tête affiche ⬆ v X disponible - télécharger ; la puce mène à la page de téléchargement officielle (le lien est figé dans l'app, il ne vient jamais du manifeste de mise à jour). Installez la nouvelle version comme vous avez installé l'actuelle.
- nzbfast vérifie les nouvelles versions deux fois par jour. Désactivez Vérifier les mises à jour (Paramètres) et il ne contacte plus du tout le manifeste de mise à jour ; une URL de vérification vide fait pareil.
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.
| Installation | Comment mettre à jour |
|---|---|
| App macOS | Ouvrez 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 Windows | Lancez 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 Compose | docker 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. |
| Watchtower | Rien à faire : il recrée le conteneur avec les mêmes montages quand une nouvelle image sort. |
| Unraid | Onglet Docker → Check for Updates → Apply
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. |
| QNAP (paquet, bêta) | Installez le nouveau .qpkg
dans App Center ; il se met à niveau sur place. Vos réglages et vos
téléchargements se trouvent en dehors du dossier de l'application : ni une mise
à niveau ni une suppression ne les emporte. |
| Debian / Ubuntu (.deb) Fedora / RHEL (.rpm) | Installez le nouveau paquet par-dessus l'ancien : sudo dpkg -i nzbfast_*.deb ou sudo rpm -U nzbfast-*.rpm. Votre dossier de réglages ne fait pas partie du paquet : une mise à jour ne peut donc rien y remplacer, et vos modifications de /etc/nzbfast/nzbfast.env sont conservées. Le démon n'est redémarré que s'il tournait déjà. |
| Homebrew | brew upgrade nzbfast |
| Binaire simple | Remplacez le binaire. Votre config reste là où vous l'avez créée (§17). |
-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 :
| Commande | Rôle |
|---|---|
nzbfast setup | Configuration interactive des serveurs. |
nzbfast serve | Lance 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.nzb | Té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.nzb | Verdict de disponibilité - COMPLETE / REPAIRABLE / IMPOSSIBLE - sans télécharger la charge utile. |
nzbfast verify DIR | Vérifie les fichiers d'un répertoire contre son jeu PAR2. |
nzbfast sysbench | Le benchmark système + le rapport de diversité, dans le terminal. |
nzbfast index / search | Scanne des groupes dans l'index / le cherche, sans le daemon. |
nzbfast import-sab | Importe 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.
| Domaine | Modes |
|---|---|
| File | queue (avec name=delete/pause/resume/priority/switch), pause, resume, addfile, addurl, addnzblnk, retry, set_password |
| Infos | history, 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) |
| Config | get_config, config&name=<setting>&value=… (chaque champ des Paramètres), server_save/delete/test/enable/reorder, import_probe/apply |
| Index & mur | index_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> |
| Automatisation | watchlist, watchlist_check_now, watch_calendar, feeds, smart_folders, schedule |
| Diagnostics | sysbench, bench_history, connladder, pooltest, diversity, update_check |
| 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 :
| Installation | Dossier 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/ |
| Paquet QNAP | En général
/share/Download/nzbfast/config/. Le dossier est choisi à
l'installation et indiqué dans le journal d'App Center ; le fichier
nzbfast.env de l'application le note aussi. |
| Paquet Debian / RPM | /var/lib/nzbfast/ |
| Terminal | Le dossier dans lequel vous avez lancé
nzbfast setup, ou l'endroit vers lequel pointe --config
/ $NZBFAST_CONFIG. |
Et ce qu'il contient :
| Fichier | Contenu |
|---|---|
config.local.json | Identifiants 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.json | Chaque 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. |
apikey | La 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.db | L'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'articles | Dans 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 externes | Aucun 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 lents | Lancez 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 passe | La ligne d'Historique montre 🔑 - saisissez-y le mot de passe ; la tâche se termine sur place. |
| Une archive ne se décompresse pas | Les é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 pas | Port 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éfinie | Une 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 daemon | Vé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 maigre | L'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 / aucune | Fiche 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 ouverte | Deux 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. |
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é.