NzbDav Documentation

repository·main·Indexed 21 days ago

https://github.com/nzbdav-dev/nzbdav

NzbDav is a WebDAV server that allows users to mount and browse NZB documents as a virtual file system, enabling streaming of media directly from Usenet providers to tools like Plex or Jellyfin without local storage. It features a SABnzbd-compatible API for integration with Sonarr and Radarr, support for RAR and 7z archives, and automated maintenance for replacing removed content. The documentation covers Docker deployment, Rclone integration for symlink translation, and Usenet configuration.

Tokens
5.6K
Snippets
14
Records
31
Agent score
78%

What's inside NzbDav

  1. Overview of NzbDav features

    main

    NzbDav is a WebDAV server that mounts NZB documents as a virtual file system without requiring local downloads. Key capabilities include:

    • Virtual File System: Browse and mount NZB documents over HTTP(S).
    • Streaming: Full streaming and seeking capabilities for video files.
    • Archive Support: Stream and seek content within RAR and 7z archives, including password-protected ones.
    • SABnzbd Compatibility: Provides a SABnzbd-compatible API, allowing it to act as a drop-in replacement for media management tools like Sonarr and Radarr.
    • Automated Maintenance: Includes healthchecks and repairs to automatically replace content removed from usenet providers.
  2. How the NzbDav 'Infinite Library' works

    main

    NzbDav enables an 'infinite library' by mounting Usenet content via WebDAV without downloading the full files to local storage. It supports two primary workflows:

    Path A: Automation Flow (Radarr/Sonarr + Plex/Jellyfin)

    1. Radarr/Sonarr sends an .nzb to NzbDav.
    2. NzbDav mounts the nzb onto WebDAV without a full download.
    3. NzbDav notifies the automation tool that the 'download' is complete and provides a path to Symlinks located at /mnt/remote/nzbdav/completed-symlinks.
    4. These symlinks point to the /mnt/remote/nzbdav/.ids folder containing the streamable content.
    5. Plex/Jellyfin reads the symlink, which traverses through an Rclone Mount to stream the content directly from the Usenet provider.

    Path B: On-Demand Flow (Stremio)

    1. Stremio (via AIOStreams) finds a release using a Newznab addon.
    2. AIOStreams calls the NzbDav API to mount the .nzb.
    3. NzbDav mounts the file instantly via WebDAV.
    4. AIOStreams generates a streamable URL (potentially via a Proxy) which Stremio plays directly, bypassing Rclone and symlinks.
  3. Configure the Newznab addon in AIOStreams

    main

    When setting up the Newznab addon in the AIOStreams Marketplace (under the Usenet type), use the following specific settings for optimal performance:

    • Search Mode: Set to Forced Query (instead of the default Auto).
    • Timeout: Set to 5000 ms (instead of the default 7000 ms).
    • AIOStreams Proxy Auth: It is recommended to use the AIOSTREAMS_AUTH value from your AIOStreams .env file (format user:pass).
  4. Integrate NzbDav with Radarr and Sonarr

    main

    1. Add NzbDav as a Download Client

    In Radarr/Sonarr, go to Settings > Download Clients > Add Download Client:

    • Client: SABnzbd
    • Name: NzbDav
    • Host: nzbdav
    • Port: 3000
    • API Key: Found in NzbDav Settings > SABnzbd.

    2. Configure NzbDav for Radarr/Sonarr

    In NzbDav, go to Settings > Radarr/Sonarr:

    • Radarr Instances: Add host (e.g., http://radarr:7878) and API Key.
    • Sonarr Instances: Add host (e.g., http://sonarr:8989) and API Key.
    • Automatic Queue Management: Configure rules (e.g., Remove and Blocklist for non-upgrades) to keep the queue clean.

    3. Configure Mount & Repairs

    In NzbDav, go to Settings > SABnzbd:

    • Rclone Mount Directory: /mnt/remote/nzbdav (This tells NzbDav where files exist on the host so it can pass correct paths to Radarr/Sonarr).

    In NzbDav, go to Settings > Repairs:

    • Library Directory: /mnt/media (The root folder of your actual Movie/TV libraries on the host).
    • Enable Background Repairs: Checked (Enables monitoring for dead links and automatic redownloads).
  5. Stream Usenet content in Stremio via AIOStreams

    main

    You can integrate NzbDav with Stremio by using the AIOStreams addon. This requires configuring both the NzbDav service and a Newznab addon within the AIOStreams UI to bridge your Usenet content to the Stremio interface.

    ### 1. Configure NzbDav Service
    
    In the AIOStreams UI:
    
    1. Go to the **Services** menu and select **NzbDav**.
    2. Enter the details:
       * **NzbDAV URL:** `http://nzbdav:3000` (Use your public URL if accessing remotely).
       * **NzbDAV API Key:** (From NzbDav `Settings` > `SABnzbd`).
       * **NzbDAV WebDAV Username:** (From NzbDav `Settings` > `WebDAV`).
       * **NzbDAV WebDAV Password:** (From NzbDav `Settings` > `WebDAV`).
       * **AIOStreams Auth Token (Recommended):** Get it from your self-hosted AIOStreams' `.env` file's `AIOSTREAMS_AUTH` environment variable. (e.g., `user:pass`).
    
    ### 2. Configure Newznab Addon
    
    In the AIOStreams UI:
    
    1. Go to **Addons** > **Marketplace** > From the Types dropdown, select **Usenet**.
    2. Find the **Newznab** addon and click **Configure**.
    3. Add your indexers (repeat for each one):
       * **Name:** `NZBGeek` (or similar).
       * **Newznab URL:** Select `NZBgeek` from dropdown.
       * **API Key:** Your indexer's API key.
       * **AIOStreams Proxy Auth (Recommended):** Get it from your self-hosted AIOStreams' `.env` file's `AIOSTREAMS_AUTH` environment variable. (e.g., `user:pass`).
       * **Search Mode:** **Forced Query** (was `Auto` by default)
       * **Timeout:** `5000` ms (was `7000` by default)
    4. Leave everything else as default and click **Install**
    
    ### 3. Install to Stremio
    
    Go to the **Save & Install** tab, click **Save**, and then install the addon to Stremio.
  6. Configure NzbDav Usenet and WebDAV settings

    main

    After deployment, access the UI at http://your-server-ip:3000 to perform core configuration:

    Admin Account

    Set your username and password.

    Usenet Settings (Settings > Usenet)

    • Host: Your provider's host (e.g., news.newshosting.com).
    • Port: Typically 563.
    • Username / Password: Your Usenet credentials.
    • Max Connections: Set to your provider's maximum allowed.
    • Type: Pool Connections.
    • Use SSL: Checked.

    WebDAV Settings (Settings > WebDAV)

    • Set WebDAV Password: Create a password (required for Rclone).
    • Enforce Read-Only: Uncheck if you want to delete files via terminal; otherwise, leave checked.
  7. Manage the nzbdav queue in `/nzbs`

    main

    The /nzbs directory mirrors the nzbdav queue and allows for direct queue manipulation via WebDAV.

    Operations:

    • Retrieve: Download any NZB currently in the queue.
    • Remove: Delete an NZB file from this directory to remove it from the queue.
    • Add: Upload NZB files to this directory to add them to the queue.

    Important: File operations (upload, delete, etc.) must be performed using a compatible WebDAV client or Rclone. The "Dav Explore" page in the nzbdav UI does not support file operations.