⚡ nzbfast

Descărcătorul rapid de Usenet - manual de utilizare

1 · Bun venit

nzbfast descarcă de pe Usenet atât de repede pe cât permit linia ta, providerii tăi și mașina ta - și de obicei asta înseamnă atât de repede pe cât permite linia ta. Este un singur program de sine stătător: motorul, un panou web, un browser media de tip perete de postere, un indexer integrat, previzualizare în timp real, reparare PAR2 nativă și extragerea RAR nativă sunt toate într-un singur executabil. Nu mai e nimic altceva de instalat.

Ce îl face rapid este arhitectura, nu ajustările:

Măsurat față de concurență pe hardware, joburi și provideri identici, nzbfast a terminat o descărcare de 190 GB în aproximativ 5 minute pe o linie de 10 GbE - cu alternativele de top rămase în urmă cu 30–220% la aceleași teste, acolo unde le-au finalizat. Cifrele sunt în §3.

2 · Pornire rapidă

macOS

  1. Deschide nzbfast-<version>-macos.dmg și trage NzbFast în Applications (universal: Apple Silicon + Intel).
  2. Prima lansare: macOS avertizează că nzbfast nu este încă notarizat de Apple. Clic dreapta pe aplicație → Open - sau deschide System Settings → Privacy & Security, derulează în jos și dă clic pe Open Anyway. Este un pas unic.
  3. Fereastra aplicației arată panoul cu un card de bun venit - dă clic pe el și adaugă cel puțin un server Usenet (host, portul 563, nume de utilizator, parolă). Poți adăuga mai multe ulterior în Setări.
  4. Trage un .nzb oriunde pe panou - sau doar dublu-clic pe fișiere .nzb în Finder. Descărcările ajung în ~/Downloads/nzbfast. Închide din meniu; descărcările se reiau de unde au rămas.

Preferi fără aplicație? Zip-ul simplu (binar + launcherul Start nzbfast.command, același motor) funcționează în continuare ca înainte - pașii de mai jos, la „Dintr-un terminal”.

Windows

  1. Rulează nzbfast-setup-<version>.exe. Se instalează doar pentru utilizatorul tău (fără parolă de administrator). Deoarece acest release nu este încă semnat digital, SmartScreen ar putea afișa „Windows protected your PC” - dă clic pe More infoRun anyway.
  2. nzbfast stă în bara de sistem (system tray): dublu-clic pe iconița din tray (sau folosește Open Dashboard din meniul contextual) pentru a deschide panoul, apoi adaugă serverul tău Usenet din cardul de bun venit. Meniul din tray are și Pauză/Reluare, folderul tău de descărcări și Quit.
  3. Dublu-clic pe un fișier .nzb îl pune în coadă. Windows Defender ar putea cere o dată permisiunea de ascultare pe rețeaua locală - permite-o.

Preferi o copie portabilă? -windows-x64.zip funcționează în continuare: dezarhivează oriunde și dublu-clic pe nzbfast.exe (sau Start nzbfast.bat) pentru asistentul din terminal.

Dintr-un terminal (orice platformă)

nzbfast setup            # interactive server setup (writes config.local.json)
nzbfast serve --open     # start the daemon and open the dashboard
SfatAi rulat deja SABnzbd sau NZBGet? Sari peste tastarea credențialelor: Setări → Servere Usenet → Importă din SABnzbd / NZBGet… îți găsește instalarea existentă și îi copiază serverele. Există și nzbfast import-sab pe linia de comandă.

3 · Cum funcționează nzbfast

O scurtă terminologie ca restul manualului să se citească ușor:

TermenSens
Provider / serverUn serviciu Usenet la care ai un cont (Newshosting, Eweka, XS News…). Fiecare permite un anumit număr de conexiuni simultane.
BackboneInfrastructura din spatele unui provider. Mai multe branduri revând adesea același backbone - util de știut, deoarece doi provideri pe un backbone ratează aceleași articole. Vezi Diversitatea serverelor.
NZBUn mic fișier XML care listează articolele ce compun o postare. Asta îi dai lui nzbfast.
PAR2Date de recuperare postate alături de un release. nzbfast verifică în raport cu ele în timpul descărcării și repară automat când articolele sunt deteriorate sau lipsesc.
RAR în mod storeMajoritatea release-urilor sunt împachetate în volume RAR fără compresie. nzbfast recunoaște acest lucru și scrie fișierul interior direct în locația sa finală în timpul descărcării - fără pas de dezarhivare ulterior.

Pipeline-ul rulează descărcare → decodare → verificare → extragere concurent. Cardul Pipeline din panou arată toate cele trei benzi mișcându-se simultan. Când sosește ultimul octet, verificarea e deja făcută și fișierul e deja extras; timpul de „post-procesare” al unui job tipic este zero. Dacă e nevoie de reparare, abia atunci volumele sunt materializate pe disc, reparate pe loc de motorul nativ GF(2¹⁶) (datele obfuscate redenumite sau deplasate cu octeți sunt găsite și adoptate printr-o scanare glisantă de blocuri) și reextrase - totul automat.

Descărcările întrerupte (blocare, pană de curent, kill -9) se reiau din jurnalul de articole: octeții deja pe disc nu sunt preluați niciodată de două ori. Jurnalul înregistrează unde au aterizat fizic octeții fiecărui articol - chiar și octeții care au fost extrași direct în fișierul final - astfel încât o reluare reconstruiește din discul local și reverifică tot ce a restaurat în raport cu harta de blocuri PAR2 înainte de a-i acorda încredere.

Cum se compară

Măsurat față de SABnzbd 5.0.4 și NZBGet 26.2 pe aceeași mașină, aceiași provideri și aceleași NZB-uri, cronometrat până la un fișier utilizabil - descărcare, verificare, reparare și extragere incluse, pentru că atunci este jobul cu adevărat gata:

Dimensiunea jobuluinzbfastNZBGet 26.2SABnzbd 5.0.4
7 GB13.7 s+26%+39%
35 GB67 s+61%+325%
87 GB272 s+36%+160%
190 GB9 m 00 s+30%+111%

Diferența este post-procesarea pe care ceilalți încă trebuie s-o facă după ce aterizează ultimul octet. Ambii concurenți au fost reglați pentru comparație, nu lăsați pe valorile implicite - SABnzbd în special vine cu pipelining-ul cererilor oprit, ceea ce îl costă scump, așa că a fost pornit.

Două diferențe contează la fel de mult ca timpii:

Reluare după blocare, măsuratăOmoară o descărcare în plin zbor (kill -9 la 15 GB dintr-un job de 34.5 GB) și reluarea repreia ~0.3 GB - doar articolele aflate cu adevărat în tranzit la momentul opririi - față de 0.2 GB ai NZBGet în același test. Aceasta era cândva o pierdere pe care o publicam (15.3 GB repreluați, când jurnalul nu putea contabiliza octeții extrași direct); jurnalul de plasare a rezolvat-o: reluarea restaurează acei octeți din fișierele de ieșire locale și reverifică fiecare octet restaurat în raport cu harta de blocuri PAR2 înainte de a-i acorda încredere. Fiecare scenariu pe care îl pierdem este publicat alături de câștiguri, cu metoda completă și cifrele brute.

4 · Panoul

Deschide http://localhost:6789 (sau adresa mașinii tale de pe alt dispozitiv - aspectul pentru telefon se adaptează automat). Totul se actualizează live, o dată pe secundă. Cardurile, de sus în jos:

Bara de sus

Debit

MB/s în timp real cu un grafic derulant; filigranele punctate marchează maximul/minimul acestei sesiuni, linia estompată este o medie mobilă. Sub el, o histogramă arată cum se distribuie mostrele de viteză din sesiune - tipic vs vârf. Lărgește fereastra și graficele arată mai mult istoric (până la o oră).

Plăci statistice

Descărcat în această sesiune, adâncimea cozii, numărul de finalizate/eșuate, viteza de vârf a sesiunii.

Resurse - o mașină, patru plafoane

CPU, RAM (față de bugetul de memorie al nzbfast), rata de scriere pe disc și rețeaua pe un singur grafic normalizat, cu valori reale în legendă și un avertisment de spațiu redus. Niciun alt client NZB nu-ți arată asta; există pentru a demonstra un lucru - nzbfast îți va satura linia, nu mașina.

Pipeline - etapele se suprapun

Trei benzi: descărcare, verificare (blocuri PAR2 verificate), extragere. La un job sănătos toate trei se mișcă împreună.

Provideri

Rata în timp real per server, utilizarea conexiunilor, ponderea din trafic, GB pe sesiune și un scor de completitudine a articolelor pe toată durata (colorat când un server scade sub 98%). Un grafic cu arii stivuite arată contribuția fiecărui provider în timp. Rândurile se reordonează după performanța în timp real la fiecare 10 s (configurabil în Setări → Interfață), astfel încât providerul tău cel mai rapid să fie mereu în frunte.

Coadă

Răsfoiește indexul

Caută tot ce a catalogat indexerul integrat din grupurile tale urmărite (vezi Automatizare) și descarcă cu un singur clic - fără indexer extern. Linia de stare arată progresul scanării; Scanează acum forțează o trecere.

Watchlist

Adaugă titluri după nume - inclusiv unele nepostate încă. Când un release potrivit apare în index, este preluat automat, cu preferințe de calitate și reguli de upgrade (o copie mai bună o înlocuiește pe una mai slabă).

Istoric

Descărcări recente cu stare, dimensiune, locație; joburile eșuate oferă Reîncearcă (reia din jurnal). Arhivele criptate arată un control de deblocare 🔑 - introdu parola și jobul se termină pe loc. Fâșia de sănătate a verificării trasează blocurile PAR2 defecte per descărcare - o coadă în creștere înseamnă că articolele sosesc deteriorate.

Consum de date

Bare zilnice per provider și totaluri Azi / 7 zile / 30 de zile - esențiale pentru conturile contorizate și cu bloc. Conturile cu bloc arată utilizarea pe toată durata față de dimensiunea lor.

Jurnal, Benchmark de sistem, Reglarea conexiunilor, Diversitatea serverelor

Un vizualizator de jurnal în pagină și cele trei instrumente de auto-măsurare descrise în Instrumente de performanță.

5 · Adăugarea descărcărilor

MetodăCum
Trage și plaseazăTrage unul sau mai multe fișiere .nzb oriunde pe panou.
Folder monitorizatSetează un folder în Setări; orice .nzb salvat în el este preluat în 5 secunde, iar fișierul e eliminat. Îndreaptă directorul de descărcări al browserului tău spre el pentru preluări cu un singur clic de pe site-urile de indexer.
Dintr-un URLLipește un link NZB (API mode=addurl, sau prin orice aplicație conectată).
Răsfoiește indexulDă clic pe orice release complet din cardul Răsfoiește.
Watchlist / RSSAutomat - vezi Automatizare.
Sonarr/Radarr etc.Trimit preluările direct în coadă - vezi §11.
Linia de comandănzbfast get file.nzb descarcă fără daemon.

Categorii, priorități, parole

6 · Peretele de postere

Dă clic pe 🎬 perete în bara de sus. Peretele transformă indexul tău într-un browser media: fiecare film și release TV recunoscut ca o placă de poster cu notă, an, genuri, distribuție și sinopsis - newsgroup-urile tale, navigabile ca un catalog.

7 · Previzualizare și verificare

Nu trebuie să aștepți să se termine o descărcare ca să știi că e fișierul potrivit. Deschide-l în timp ce se descarcă, verifică dacă conținutul, limba și calitatea sunt cele așteptate și anulează din timp dacă nu sunt - în loc să afli abia după descărcarea completă.

Notă despre playerVLC, IINA, mpv și Infuse deschid toate URL-urile /stream. Pentru a verifica de pe altă mașină, folosește adresa LAN a mașinii tale în locul lui localhost.
Notă despre autentificareCu o cheie API setată, deschiderea unei intrări de bibliotecă parcate prin /stream/<id> necesită un token per job (?t=…) - playerele nu pot trimite chei API, așa că predarea /m3u și pointerul .strm îl încorporează pentru tine; generarea lui (/m3u) necesită cheia. Servirea simplă de octeți a unei descărcări deja active rămâne deschisă, iar instalările fără cheie se comportă ca înainte.

8 · Servere Usenet

Setări → Servere Usenet este editorul complet: adăugare, editare, ștergere, reordonare și includerea sau excluderea oricărui server din pool. Fiecare server are:

CâmpNote
Host / portFolosește portul SSL 563. TLS nu costă nimic măsurabil - nzbfast criptează întotdeauna.
Nume de utilizator / parolăStocate local în config.local.json, nearătate niciodată înapoi browserului. Lăsând parola goală la editare, se păstrează cea stocată.
ConexiuniConexiuni simultane per server. Folosește Reglarea conexiunilor (§13) pentru a găsi punctul optim al fiecărui provider în loc să ghicești mare.
Nivel (treaptă)0 = primar; nivelurile mai mari sunt servere de umplere, întrebate doar pentru articolele pe care le-a ratat fiecare nivel inferior. Pune conturile nelimitate la 0, conturile cu bloc la 1+.
Dimensiunea blocului (GB)Pentru conturile cu bloc (plată-per-GB): nzbfast urmărește utilizarea pe toată durata față de aceasta și nu mai folosește serverul când e consumat (avertisment la 85%).

Alte două opțiuni per server nu au încă un control în panou: adaugă-le manual în intrarea acelui server din config.local.json (vezi §17) și repornește.

CheieNote
bind_ipLeagă conexiunile de ieșire ale acestui server de o adresă locală anume, pentru mașini cu mai multe ieșiri și tuneluri VPN divizate. Familia de adrese alege și familia țintă: o legare v4 se conectează la adresa v4 a serverului.
socks5Trimite traficul NNTP al acestui server printr-un proxy SOCKS5: host:port sau user:pass@host:port. Numele gazdei este rezolvat de proxy, deci nu există scurgere DNS locală.
RecomandareDoi provideri pe backbone-uri diferite întrec trei pe același. Rulează Diversitatea serverelor (§13) pentru a vedea care dintre providerii tăi îți diversifică efectiv acoperirea și care sunt copii redundante unul al altuia.

9 · Referință de setări

Aproape tot se poate configura din panou, la ⚙ Setări; cele patru excepții sunt enumerate la finalul acestei secțiuni. Valorile marcate live se aplică imediat, cele restart la următoarea pornire. Fiecare modificare făcută aici este salvată în settings.json și supraviețuiește repornirilor (valorile din interfață bat opțiunile din linia de comandă).

Viteză și programare live

SetareCe face
Limită de vitezăPlafon în octeți/sec (50M, 1G, 0 = nelimitat). Aplicațiile la distanță pot trimite procentaje - setează Viteza liniei ca ele să se traducă corect.
Viteză automatăPlafon guvernat de RTT care cedează celuilalt trafic din casă și se reextinde când linia e liniștită.
Amână automat descărcările lenteUn job blocat pe un singur server lent în timp ce altele așteaptă este mutat la coada cozii (progresul e păstrat). Vezi §13.
Preîncărcare pe serverele inactiveServerele inutile pentru jobul activ pornesc următorul job din coadă. Vezi §13.
Actualizare automată / URL de verificare a actualizărilorVezi §14.
Viteza linieiViteza nominală a conexiunii tale - activează limitele procentuale de la aplicațiile compatibile SABnzbd.
Program săptămânalEditor de rânduri pentru reguli după momentul săptămânii: pauză, reluare sau setarea unei limite de viteză la anumite zile/ore (ora locală). Ex. limitează la 20 MB/s în zilele lucrătoare 9–17, nelimitat altfel.

Următoarea descărcare live

Conexiuni (per server), fereastra (adâncimea de pipelining per conexiune), decodoare (fire de decodare paralele). Eșantionate când pornește fiecare job. Valorile implicite sunt potrivite pentru majoritatea liniilor; folosește instrumentele de reglare înainte de a mări orbește.

Verificare rapidă (CRC32) (activată implicit) revendică blocurile PAR2 prin CRC32 cât timp descărcarea încă rulează, ceea ce e de 2-3x mai rapid pe un procesor lent. Suma de control proprie fiecărui articol este oricum verificată, iar trecerea finală folosește întotdeauna MD5 complet: nu se sacrifică nimic din corectitudine. Debifeaz-o pentru a calcula MD5 pe bloc și în timpul descărcării.

Disc și cotă live

Spațiu liber minim (pune în pauză joburile noi sub el), cotă de descărcare pe zi sau lună (UTC; joburile Forțate ignoră), limită de memorie - bugetul de RAM al motorului (implicit: ¼ din RAM, limitat; mărește-l pe o mașină cu mult RAM pentru viteză maximă la joburi uriașe și vezi cât costă memoria redusă înainte de a-l scădea) repornire.

Mută finalizatele în: după dezarhivare, curățare și redenumire, descărcările finalizate se mută aici - un share NAS, un disc media, oriunde îți stă biblioteca. Structura pe categorii se păstrează (un job terminat sub tv/ ajunge sub tv/ la destinație), iar istoricul urmează mutarea, așa că aplicațiile conectate importă și șterg din noua locație. Dacă destinația nu e accesibilă când se termină un job (share offline, spațiu epuizat), fișierele rămân în folderul de descărcare și jobul se încheie oricum normal. Gol = dezactivat. Destinații per categorie trimit anumite categorii în altă parte (tv=/Volumes/NAS/TV, movies=/Volumes/NAS/Movies); fiecare cale listată este folderul acelei categorii, deci în ea nu se creează niciun subfolder de categorie suplimentar. Categoriile nelistate urmează Mută finalizatele în.

Adâncimea arhivelor imbricate (implicit 5) este numărul de straturi arhivă-în-arhivă dezarhivate automat: un set RAR care conține un 7z care conține alt RAR este ceva obișnuit pe Usenet, iar nzbfast urmează lanțul fără o a doua trecere. La limită, arhiva cea mai adâncă este pur și simplu lăsată pe loc, nedezarhivată, iar descărcarea se finalizează oricum. Mărește valoarea doar pentru release-uri neobișnuit de adânci.

Redenumire automată și curățare live

Redenumește descărcările finalizate (activată implicit) dă folderului și fișierului principal un nume curat și clar: un film devine Example Movie (2024), serialele păstrează Show - S01E02. Numele ofuscate sau nerecunoscute sunt lăsate exact așa cum au fost postate, în loc să fie ghicite.

SetareCe face
Include rezoluțiaAdaugă 1080p, 2160p… în nume. Activată implicit; celelalte patru marcaje sunt dezactivate.
Include codecul videox265, x264, AV1
Include codecul audioAtmos, DTS-HD, AC3
Include sursaBluRay, WEB, REMUX
Include grupul de releaseMarcajul -GROUP de la final.
Elimină fișierele inutileActivată implicit. Șterge fișierele .par2, .nzb, .sfv, .nfo rămase și clipurile-eșantion din folderele de film și serial finalizate. Niciodată videoclipul sau subtitrările lui.
Păstrează doar fișierul mediaDezactivată implicit și distructivă: șterge definitiv tot din folder în afară de videoclip(uri) și subtitrări. Fiecare episod dintr-un pachet de sezon este păstrat. Are întâietate față de Elimină fișierele inutile când ambele sunt active.

Întregul grup rulează după reparare și dezarhivare și înainte de Mută finalizatele în, și este sărit complet pentru o sarcină care încă așteaptă o parolă. Ambii pași de ștergere se aplică doar release-urilor recunoscute ca film sau serial: o încărcătură software sau un set neclasificabil (ofuscat) nu este niciodată curățat.

Foldere și procesare

Folder de descărcare repornire, folder monitorizat, script de post-procesare (rulat după fiecare job cu argumente compatibile SABnzbd și mediul SAB_* - scripturile SAB existente funcționează neschimbate), extensii de curățare (fișiere gunoi șterse după finalizare), Foldere inteligente și arhivare TV (vezi §10).

Indexare live

SetareCe face
GrupuriNewsgroup-urile pe care le scanează indexerul integrat (ex. alt.binaries.teevee).
Interval de scanareSecunde între treceri (implicit 900).
Articole de backfillAntete preluate la prima scanare a unui grup.
Aprofundare per scanareFiecare trecere indexează și acest număr de articole mai vechi, extinzând istoricul tău căutabil în fundal până la atingerea Vârstei maxime (implicit 200.000 per trecere ≈ zeci de milioane de articole per zi de funcționare).
Vârsta maximăIgnoră postările mai vechi de atât (90d, 6m, 2y) - limitează dimensiunea indexului și timpul de scanare.
Restrânge la fereastra de vârstăActivată implicit. Șterge și release-urile deja stocate odată ce depășesc vârsta maximă, astfel încât indexul să țină aproximativ acea fereastră în loc să crească la nesfârșit. Dezactivată = doar postările noi sunt filtrate, iar ce e stocat rămâne. Fragmentele moarte (ascunse, încă incomplete după o săptămână) sunt strânse oricum.
Filtre de preluareReguli JSON care filtrează ce intră în index: tipuri (gunoiul obfuscat este eliminat implicit), an/rezoluție/limbă, limite de dimensiune.
Scanează acum / rescanare profundăRulează imediat o trecere; cu o adâncime, rescanează acel număr de antete recente.
Cheie OMDb / reîmprospătare metadate / golireControale de îmbogățire a peretelui (§6). Golirea reconstruiește baza de date de la zero - soluția de recuperare dacă e vreodată coruptă.

Bibliotecă, Securitate, Interfață

Bibliotecă: categorii tratate ca intrări instantanee de bibliotecă + interval de reverificare. Securitate: cheia API completă (tot) și cheia NZB (doar adăugare - sigur de dat site-urilor de indexer), ambele rotibile live. Interfață: sunete la clic, notificări desktop la finalizare, interval de resortare a providerilor.

Unități de viteză live decide cum este afișată fiecare viteză din panou: megaocteți (MB/s, norma managerelor de descărcare, valoarea implicită) sau megabiți (Mb/s, așa cum își anunță furnizorii liniile). Dimensiunile fișierelor rămân în octeți. Este o proprietate a daemonului, nu a navigatorului tău, deci se aplică oricărui dispozitiv care privește această instalare.

Avansat: setări fără control în panou

Patru setări nu au nici control în interfață, nici opțiune în linia de comandă. Setează-le prin API (§16), de ex. /api?mode=config&name=verify_mode&value=lean&apikey=…. Ca toate celelalte, ajung în settings.json.

NumeCe face
verify_modefull | fast | lean (implicit fast). lean este impulsul pentru procesoare lente: ca fast, dar sare în plus peste CRC-ul yEnc per articol de îndată ce PAR2 acoperă un fișier, lăsând un singur strat CRC32 în loc de două. Descărcările fără PAR2 își păstrează CRC-urile de articol, iar verificarea și repararea de la finalul sarcinii rămân neschimbate în ambele cazuri. Verificarea rapidă de mai sus este același control pentru full față de fast.
auto_retry_minsAșteptarea dinaintea singurei reîncercări automate pe care o primește un prim eșec cu articole lipsă (implicit 20). Întârzierea de propagare este o cauză reală a articolelor lipsă și se rezolvă de la sine; datorită jurnalului, reluarea aduce doar ce încă lipsește. Eșecurile din cauza parolei sau a retragerii nu se califică niciodată.
index_scan_parCâte grupuri scanează indexatorul în paralel (implicit 3, limitat la 1-8).
oracle_sampleBugetul de STAT în repaus al oracolului de disponibilitate (§13), sondaje pe oră și pe server. Implicit 300, maximum 3600, 0 dezactivează complet eșantionarea.

10 · Automatizare

Watchlist

Cea mai simplă automatizare: adaugă un titlu pe panou, setează preferințele de calitate, gata. Release-urile noi sunt preluate pe măsură ce apar în grupurile tale indexate; copiile de calitate mai bună fac upgrade preluărilor anterioare; o vizualizare de tip calendar arată ce urmează.

Feeduri RSS

Setări → RSS: orice URL RSS newznab/indexer cu interval per feed, categorie și reguli de filtrare (tipare de titlu, limite de dimensiune). Elementele care se potrivesc sunt descărcate automat.

Foldere inteligente

Reguli evaluate când un job este adăugat: potrivire după tipar/cuvinte-cheie și dimensiune, atribuie o categorie (prima potrivire câștigă). Cu arhivarea TV activă, episoadele TV terminate sunt redenumite și arhivate ca Show/Season 01/Show - S01E02.mkv - gata pentru Plex/Jellyfin fără un instrument extern.

Planificator

Programul săptămânal (vezi §9) automatizează pauza/reluarea/viteza după ora zilei.

Scripturi

Un script de post-procesare primește argumentele poziționale ale SABnzbd și variabilele de mediu SAB_* - ecosistemul mare de scripturi SAB rulează ca atare.

11 · Sonarr, Radarr și prietenii

nzbfast vorbește nativ API-ul SABnzbd, așa că fiecare *arr funcționează imediat - și poate acționa și ca indexer al lor.

Ca client de descărcare

  1. În Sonarr/Radarr: Settings → Download Clients → adaugă SABnzbd.
  2. Host: mașina ta nzbfast · Port: 6789 · Cheie API: cheia ta API completă (Setări → Securitate; controlul QR/copiere este lângă ea).
  3. Categorie după preferință (ex. tv / movies). Test → bifă verde → Save.

Coada, istoricul, starea per job, „remove & delete”, reîncercarea și rutarea pe categorii se comportă toate cum se așteaptă *arr-urile.

Ca indexer (newznab)

  1. Settings → Indexers → adaugă Newznab.
  2. URL: http://<host>:6789/ · Calea API: /api · cheie: cheia ta API.
  3. nzbfast servește interogările caps, search, tvsearch și movie din propriul index al grupurilor tale urmărite, iar /getnzb/<id> returnează NZB-ul.
De ce să te obosești?Un indexer auto-găzduit exact al grupurilor care te interesează: fără conturi, fără limite de accesări API, retenție atât de adâncă pe cât o lași să scaneze.

12 · Telefon și aplicații la distanță

nzbfast implementează ambele protocoale majore de control la distanță, așa că aproape fiecare aplicație de mobil/tabletă funcționează. Alege protocolul pe care îl acceptă aplicația ta:

Aplicații care vorbesc NZBGet (nzb360, LunaSea, NZB Unity…)

Câmpul din aplicațieValoare
TipNZBGet
Host / portmașina ta : 6789
Nume de utilizatororice (ex. nzbfast)
Parolăcheia ta API

Întreaga suprafață JSON-RPC folosită de aceste aplicații este servită: stare, coadă cu reordonare/pauză/ștergere, istoric, adăugare-NZB, limită de viteză, pauză/reluare, jurnal.

Aplicații care vorbesc SABnzbd

Câmpul din aplicațieValoare
TipSABnzbd
Host / portmașina ta : 6789
Cheie APIcheia ta API (sau cheia NZB pentru acces doar-adăugare)

Panoul pe telefonul tău

Doar deschide http://<machine>:6789 într-un browser mobil - întregul panou și perete au un aspect tactil. Panoul Setări → Acces la distanță arată URL-urile exacte și un cod QR de scanat.

13 · Instrumente de performanță

Benchmark de sistem

Un singur clic măsoară cele trei plafoane ale tale - debitul de rețea (o sondă reală de 8 secunde cu mai multe conexiuni), rata de verificare CPU și viteza de scriere pe disc - și începe cu răspunsul: viteza maximă de descărcare estimată și care plafon este limita. Bara cea mai scurtă este strangularea ta; celelalte arată marja lor. Programează-l (la 6 ore → săptămânal) și fiecare rulare este înregistrată într-un tabel de istoric, ca să poți vedea când providerul, ISP-ul sau hardware-ul tău și-au schimbat comportamentul. Rulările programate au loc doar când coada e inactivă.

Reglarea conexiunilor

Măsoară un provider la numere crescânde de conexiuni și recomandă setarea - mai multe socketuri ajută până când providerul sau linia ta se saturează, iar unii provideri penalizează cererea excesivă. Testează tot compară fiecare provider, apoi le pornește pe toate împreună pentru a verifica dacă pool-ul îți saturează linia.

Diversitatea serverelor

Eșantionează cu STAT articole de diferite vârste pe fiecare server și grupează providerii după lacunele comune: providerii cu ~100% articole lipsă comune sunt același backbone (redundant pentru recuperare); cei independenți îți extind cu adevărat acoperirea. Se încheie cu o recomandare în limbaj clar.

Inteligență automată a cozii

Oracolul de disponibilitate

Retragerile sunt principalul motiv pentru care eșuează o descărcare Usenet și sunt previzibile: același release dispare de pe un backbone în timp ce altul încă îl are. nzbfast ține un mic registru al a ceea ce au servit efectiv propriii tăi provideri și cheltuiește un buget minuscul de sondaje STAT în repaus (câteva sute pe oră și pe server, niciodată în timpul unei descărcări) ca să-l țină la zi. Nu descarcă niciodată încărcătură utilă pentru asta.

Ce obții din asta:

Verdictul este o predicție pornind de la indicii, nu o garanție. Pentru un răspuns ferm despre un NZB, nzbfast check (§15) numără articolele reale.

Buget de memorie - și cât costă memoria redusă

Toate cache-urile motorului împart un singur buget (implicit ¼ din RAM-ul fizic, limitat la 256 MB–16 GB). Setează-l explicit cu Limită de memorie în Setări sau cu --mem-limit pe linia de comandă.

nzbfast este construit să-ți satureze rețeaua și discul în același timp, iar RAM-ul este ce îi permite să facă ambele într-o singură trecere: articolele sunt decodate, verificate și scrise direct la offset-urile lor finale, așa că volumele de arhivă nu trebuie să atingă deloc discul. Înfometează-l de memorie și nimic nu se rupe - fiecare cache are o cale de spill, iar motorul degradează spre mai mult I/O pe disc în loc să facă swap sau să eșueze. Dar acel spill nu e gratuit, iar la joburi mari îl poți măsura.

Măsurat pe o singură mașină și o singură linie (M1 Ultra, 10 GbE), aceleași fișiere la fiecare buget. Fiecare rulare a produs un rezultat corect, complet verificat și extras:

Dimensiunea jobuluiSuficient RAMBuget 2 GB
≈ mașină 8 GB
Buget 1 GB
≈ mașină 4 GB
Buget 256 MB
≈ NAS 2 GB
7 GB15 s15 s15 s15 s
35 GB65 s70 s70 s65 s
87 GB148 s206 s +39%196 s +32%180 s +22%
190 GB330 s427 s +29%402 s +22%411 s +25%

Memoria de vârf urmărește bugetul, nu jobul: acea descărcare de 190 GB se finalizează în aproximativ 1.1 GB de RAM. Ce plătești în schimb este timp - și doar la joburi mari.

RecomandareDă-i nzbfast aproximativ 2 GB de buget per 100 GB din cel mai mare job pe care îl descarci și lasă valoarea implicită în pace altfel - ¼ din RAM este deja răspunsul corect pe majoritatea mașinilor. În practică: 4 GB RAM acoperă joburi până la ~35 GB la viteză maximă; 8–16 GB le ține acolo și pe cele de peste 100 GB; un NAS de 2 GB va termina orice îi dai, dar tratează-l ca pe un descărcător de fundal, nu ca pe ceva care va satura o linie rapidă.

Pe un NAS mic, scade și Conexiunile (2–4) odată cu bugetul. La un buget de 256 MB și 2 conexiuni, memoria de vârf rămâne aproape de 190 MB - confortabil în ce are liber un NAS de 2 GB. Ține cont că în acel punct numărul de conexiuni, nu memoria, este ce te limitează: același job de 35 GB a durat 286 s în loc de 65 s. Aceasta este forma onestă a compromisului - va termina întotdeauna și va termina corect; doar nu va satura linia.

Benchmark-urile sunt rerulate pentru fiecare release; metoda și cifrele per mașină sunt publicate alături de rezultate.

14 · Actualizări

15 · Linia de comandă

Tot ce face daemonul poate fi și scriptat. Comenzile de zi cu zi:

ComandăScop
nzbfast setupConfigurare interactivă a serverului.
nzbfast serveRulează daemonul (panou + API + automatizare). --open deschide browserul; vezi --help pentru lista completă de flaguri - fiecare setare din panou are un flag geamăn.
nzbfast get file.nzbDescarcă un NZB, pipeline complet, fără daemon. --preflight abandonează devreme dacă postarea nu se poate finaliza; --password pentru seturi criptate.
nzbfast check file.nzbVerdict de disponibilitate - COMPLETE / REPAIRABLE / IMPOSSIBLE - fără a descărca payload-ul.
nzbfast verify DIRVerifică fișierele în raport cu setul PAR2 dintr-un director.
nzbfast sysbenchBenchmark-ul de sistem + raportul de diversitate, în terminal.
nzbfast index / searchScanează grupurile în index / caută în el, fără daemon.
nzbfast import-sabImportă servere dintr-un ini SABnzbd.

Disponibile și: inspect, probe, bench, bench-cpu, soak, fetch, spots/spot-search/spot-get (Spotnet), make-release-nzb/make-test-nzb (fixturi de test). Fiecare comandă acceptă --config și --help. Li se adaugă post: încarcă fișiere ca articole yEnc și scrie NZB-ul corespunzător. Este o unealtă de operare, cere un --post-server explicit și nu alege niciodată un server în locul tău.

16 · Prezentare API

Endpoint de bază: http://host:6789/api?mode=…&apikey=…&output=json - compatibil SABnzbd, așa că integrările SAB existente funcționează neschimbate. Două chei: cheia API (control complet) și cheia NZB (doar adăugare: addfile/addurl).

ZonăModuri
Coadăqueue (cu name=delete/pause/resume/priority/switch), pause, resume, addfile, addurl, retry, set_password
Infohistory, status/fullstatus, stats, version, server_stats, usage, log, warnings
Configget_config, config&name=<setting>&value=… (fiecare câmp din Setări), server_save/delete/test/enable/reorder, import_probe/apply
Index și pereteindex_search, index_get, index_stats, index_scan_now, wall, wall_search/fix/refresh/art, plus newznab la /api?t=caps|search|tvsearch|movie și /getnzb/<id>
Automatizarewatchlist, watchlist_check_now, watch_calendar, feeds, smart_folders, schedule
Diagnosticesysbench, bench_history, connladder, pooltest, diversity, update_check, update_apply
NZBGet JSON-RPC/jsonrpc - status, listgroups, history, append, editqueue, rate, pause, log (autentificare Basic: orice utilizator, cheia API drept parolă)
Previzualizare / redare/stream/<nzo_id> (intervale HTTP; pornirea unui job de bibliotecă parcat necesită token ?t= sau cheie), /m3u/<id> (necesită cheie; generează tokenul), /wall, /art/…

17 · Fișiere și locații

FișierConținut
config.local.jsonCredențiale de server și opțiuni per server. Creat de asistent; editabil în Setări. Păstrează-l privat.
settings.jsonFiecare setare schimbată în panou. Se află lângă config; valorile din interfață au prioritate față de flagurile din linia de comandă. Șterge o cheie (sau fișierul) pentru a reveni la flaguri/valori implicite.
index.dbIndexul de release-uri (SQLite) + metadatele peretelui. Sigur de șters - se reconstruiește prin scanare (Setări → Indexare → Golire face asta pentru tine).
<config>/.spool/Starea cozii (supraviețuiește repornirilor), NZB-uri per job, registrul de utilizare, istoricul benchmark-urilor, cache-ul de imagini poster.
Jurnal de articoleÎn interiorul folderului de ieșire al fiecărui job cât timp e incomplet - alimentează reluarea după blocare și reîncercarea. Eliminat la succes.
Instrumente externeNu e nevoie de niciunul - extragerea RAR și repararea PAR2 sunt native. Dacă un set exotic are vreodată nevoie de un unrar sau par2 extern ca rezervă, nzbfast caută lângă executabilul său, apoi în $PATH.

18 · Depanare

SimptomVerificare
Descărcări lenteRulează Benchmark de sistem - numește strangularea direct. Dacă e rețeaua: rulează Reglarea conexiunilor, verifică numărul de conexiuni per server și confirmă că providerii tăi nu sunt toți un singur backbone (Diversitatea serverelor).
Lent doar la joburi foarte mari
(NAS sau mașină cu RAM redus)
De așteptat și măsurabil: un buget de memorie înfometat face spill cache-urilor pe disc și costă 20–40% peste ~87 GB. Vezi Buget de memorie pentru cifre și câtă memorie să-i dai. Joburile mai mici nu sunt afectate.
Descărcarea eșuează cu „articole lipsă”Postarea a expirat sau a fost retrasă la providerii tăi. Un al doilea provider pe un backbone diferit salvează majoritatea acestora. nzbfast check prezice asta înainte de descărcare. Iar peretele semnalează din timp release-urile probabil dispărute prin punctul său de disponibilitate (§13). Un prim eșec de acest fel se reia singur o dată după o așteptare, fiindcă întârzierea de propagare arată exact la fel și se rezolvă de la sine.
Arhiva terminată cere o parolăRândul din Istoric arată 🔑 - introdu parola acolo; jobul se finalizează pe loc.
Sonarr/Radarr nu se poate conectaPortul 6789 e accesibil? Cheia API e corectă (cheia completă, nu cheia NZB)? Tipul de client setat pe SABnzbd?
Cardul Răsfoiește rămâne micIndexerul crește în fundal - verifică dacă grupurile din Setări → Indexare sunt setate și dă-i timp Aprofundării per scanare să acumuleze istoric. „Scanează acum” forțează o trecere; linia de stare arată progresul în timp real.
Peretele arată grafică greșită/lipsăFișa de detalii → ✎ Corectează potrivirea sau ↻ Reîmprospătează metadatele. Căutările de filme se îmbunătățesc cu o cheie OMDb gratuită.
Daemonul nu pornește: portul e ocupatRulează altă instanță - sau schimbă --port.
Unde sunt jurnalele?Cardul Jurnal din panou sau terminalul/fișierul de jurnal cu care ai lansat serve.
Tot blocat?Cardul Jurnal numește de obicei vinovatul - include coada lui când raportezi o problemă, împreună cu nzbfast --version.

nzbfast - acest manual vine cu fiecare release. Setările, endpointurile și valorile implicite menționate aici corespund versiunii cu care a fost livrat.