Skip to content

NZBGet backend

By default, NZB-DAV downloads and streams through nzbdav. As an alternative, it can use NZBGet as the backend: it submits the NZB to NZBGet, waits for NZBGet to download and post-process it, and then plays the finished file from an SMB share.

NZBGet mode replaces the streaming pipeline

In NZBGet mode, the nzbdav-specific features don't apply. There's no live WebDAV streaming, no local stream proxy tiers, and no mid-playback stream switching. NZBGet fully downloads and post-processes the file first, then you play it from the completed folder over SMB. Use this mode only if NZBGet is your download client. Broken-download protection is provided by Smart Duplicates failover instead.

Enable and configure

On the NZBGet tab:

Setting Default What to enter
Use NZBGet instead of nzbdav for playback Off Turn on to switch to NZBGet mode.
NZBGet URL http://localhost:6789 Your NZBGet address.
NZBGet Username nzbget NZBGet control username.
NZBGet Password (empty) NZBGet control password.
NZBGet Category (empty) The category to submit under. NZBGet nests completed downloads in a category subfolder, and NZB-DAV uses this to find the file.
SMB Completed Folder (empty) The SMB URL of NZBGet's completed downloads base, for example smb://server/downloads/completed.

Use Test NZBGet Connection to verify the control API, and Test SMB Share to verify the completed folder is reachable.

How it works

flowchart LR
    A[You pick a source] --> B[Submit NZB to NZBGet<br/>JSON-RPC append]
    B --> C[NZBGet downloads]
    C --> D[Post-processing<br/>par2 repair + unpack]
    D --> E{History status}
    E -->|SUCCESS| F[Locate file on SMB share]
    E -->|WARNING/FAILED| G[Report failure]
    F --> H[Kodi plays from SMB]
  • Submission uses NZBGet's JSON-RPC append method with HTTP Basic auth.
  • Post-processing is NZBGet's own — par2 repair and unpack. The progress dialog shows a "Post-processing…" stage while this runs.
  • Success is strict. A job counts as successful only when NZBGet reports a SUCCESS status. A WARNING result (including repairable or damaged downloads where repair didn't complete) is treated as failure, so you're never handed a corrupt file.
  • File discovery maps NZBGet's completed directory onto your SMB share, accounting for the category subfolder, then scans for a playable video. For episode requests, reliably named files are matched to the exact requested season and episode instead of choosing the largest video in the folder.

Smart Duplicates failover

The NZBGet backend downloads the whole release before playback, so it can't do live stream cutover. Instead it uses NZBGet's own Smart Duplicates. When you pick a release, the picker also submits every other result that shares the same release name (reposts / mirrors of the same release from other indexers), all with:

  • a shared duplicate key identifying the release — a canonical imdb=<id> / tvdbid=<id>-S<ss>-E<ee> when the id is known, otherwise a title-based fallback;
  • a per-item duplicate score, with your pick scored highest and each backup strictly lower;
  • duplicate mode SCORE.

NZBGet then downloads the highest-scored item — your pick, so the progress bar and completion behave exactly as before — and parks the rest in its history as duplicate backups (status dupe) without downloading them. Because the pick is chosen by score rather than by submission order, it reliably stays the one that plays, and the backups can be submitted at any time (in a background thread, so they never delay playback).

If the pick finishes unrepairable (par2 repair fails, unpack fails, or health drops below NZBGet's critical threshold), NZBGet automatically pulls the highest-scored backup out of history and downloads it instead. NZBGet does not combine recovery blocks across releases; it fails over to a whole alternate copy and repairs that with its own par2. The add-on follows this failover live within the same play: it tracks the promoted backup (a new download under the same duplicate set) and plays it when it completes — or plays a backup that already finished — instead of reporting a failed playback. Canceling the play removes everything this play submitted or was following (the pick, any promoted backup, and the parked backups), so NZBGet doesn't keep a backup running -- while another play of the same release stays untouched. Beyond the exact same-name reposts, the backup pool also includes same-content mirrors and NZBHydra's deferred duplicate uploads as lowest-priority backups.

HealthCheck must allow failover

Automatic failover requires NZBGet's HealthCheck option to be Delete, None, or Park (the modern default is Delete). If it is set to Pause, NZBGet pauses a broken download instead of promoting a backup; the add-on shows a one-time notice if it detects this.

The backups are capped by Maximum standby fallback streams, gated by Enable fallback streams, and best-effort — a backup that fails to submit never affects the pick's download or playback.

Reusing already-downloaded files

If you play a title that NZBGet already downloaded successfully, NZB-DAV reuses the completed file directly instead of resubmitting it. This is deliberate: NZBGet's duplicate check would otherwise delete a resubmission of a SUCCESS item and fail the playback.

Completed folders containing at least two reliably named episodes from one season are also remembered as season packs. Later episode pickers place an Already downloaded season pack — Episodes … row above online releases when that exact episode is present. The record is isolated by the nzbget backend, the exact NZBGet NZBID, and that job's DestDir; files from another job are never merged just because its name looks the same. Selecting the row validates that exact successful history item and SMB folder again, then plays the exact requested episode without a new submission.

A confirmed missing job, changed folder, or reachable folder without the requested episode removes the stale record. Temporary NZBGet, SMB, authentication, or network errors fail that reuse attempt without erasing the record. Ordinary online results remain available in either case.

Resume and playback

NZBGet mode supports the same Resume from… prompt as the nzbdav path, and the background service persists your resume point as you watch.