StreamNZB is a stream-based Usenet addon for Stremio clients and AIOStreams. It searches your configured indexers, checks availability via AvailNZB, and streams releases on-the-fly from your Usenet providers. One binary provides the addon UI, stream management, NNTP proxy, and playback pipeline behind a single IP. No extra containers, just your Usenet provider(s) and indexer(s).
- Stream-based addon — Define global providers, indexers, and search requests once, then create one or more streams that decide which of those resources are used for a given manifest token.
- Works with Stremio and AIOStreams — Use StreamNZB directly as a Stremio-compatible addon, or plug it into AIOStreams and let AIOStreams do the final presentation and triage.
- NNTP proxy — Standard NNTP (default port 119) for SABnzbd or NZBGet. Same provider pool as the addon.
- AvailNZB — Community availability database. Bad releases are skipped; success/failure is reported on play so the shared DB stays current.
- Single binary — Docker image or native Windows/Linux/macOS. No other containers required.
Streaming is done on-the-fly from archive segments. That only works when the inner file is stored uncompressed:
- Compressed RAR — RAR must be STORE (no compression). Compressed RAR releases will not play.
- Compressed 7z — Same idea: only uncompressed (copy/store) 7z content is streamable.
Docker (recommended):
services:
streamnzb:
image: ghcr.io/gaisberg/streamnzb:latest
container_name: streamnzb
restart: unless-stopped
ports:
- "7000:7000"
- "119:119"
volumes:
- /path/to/config:/app/dataOr run the binary from the releases page (Windows, Linux, macOS). See .env.example for config via environment variables.
When updating from older device-based versions:
- Global configuration is kept.
- Providers and indexers are kept.
- Legacy device entries are intentionally reset and are not migrated to the new stream model.
- After updating, recreate your streams in the UI.
For Docker, keep your existing /app/data volume mounted so config.json and the rest of the persistent state survive the container update.
First use:
- Open
http://localhost:7000. Default login isadmin/admin; you'll be asked to change the password. - Go to Settings → Network and set your addon Base URL and Port.
- If using Tailscale, use the IP address of the machine running StreamNZB. Example:
http://100.64.0.1:7000 - If using a domain name, make sure it is reachable from the client or AIOStreams host. Example:
http://streamnzb.example.com:7000orhttps://streamnzb.example.com
- Go to Settings → Providers and add at least one Usenet provider (host, port, username, password, connections).
- Go to Settings → Indexers and add at least one Newznab-compatible indexer (URL + API key).
- Go to Settings → Search Requests and create at least one movie and/or TV request.
- Go to Streams and create a stream.
- Choose which providers, indexers, and search requests belong to that stream.
- Configure the stream's General options such as indexer mode, search request mode, results mode, failover, and AvailNZB behavior.
- Save the stream and copy its manifest URL from the install action or stream list.
- Add that manifest URL to your Stremio client or AIOStreams.
StreamNZB now separates global configuration from per-stream behavior:
- Settings → Providers stores all Usenet providers globally.
- Settings → Indexers stores all supported indexers globally.
- Settings → Search Requests stores reusable movie and TV search templates globally.
- Streams chooses which providers, indexers, and search requests are active for a specific manifest token.
Each stream also controls how its search pipeline behaves:
- Indexers —
CombineorFailover - Search requests —
CombineorFirst hit - Results — how the final stream list is returned
- Failover — whether playback should walk fallback slots internally
- AvailNZB — whether AvailNZB is allowed for that stream, in addition to the global setting
This makes it possible to run multiple different manifests from one StreamNZB instance, each with different search behavior and provider/indexer selection.
AIOStreams is THE way to use StreamNZB. It consolidates multiple Stremio addons into a single super-addon with advanced filtering, sorting, and formatting — all configured in one place.
Setup:
- In StreamNZB, create or choose the stream you want AIOStreams to use.
- Copy that stream's manifest URL (for example
https://your-host:7000/<token>/manifest.json). - In AIOStreams, add the StreamNZB preset and paste the manifest URL.
- No Usenet service required in AIOStreams — StreamNZB handles all Usenet provider connections, NZB fetching, and streaming internally. Skip the AIOStreams Usenet service configuration entirely.
- Configure your filtering, sorting, and stream formatting rules in the AIOStreams UI. AIOStreams will aggregate StreamNZB results alongside any other addons you use and apply your rules uniformly.
If you want an AIO-oriented stream, create a dedicated stream for it and configure that stream accordingly. Stream behavior is no longer driven by User-Agent detection.
AvailNZB is a community availability database. StreamNZB doesn't download or validate NZBs before showing results — it builds an ordered play list from indexer search plus AvailNZB (skipping releases already reported bad), then tries on play. Success/failure is reported so the shared DB stays current.
AvailNZB is controlled at two levels:
- Global in Settings → Advanced
- Per stream in Streams → Add/Change → General
AvailNZB is only used when both the global setting and the stream setting allow it.
If you're stuck, please either open a GitHub issue or report it in the Discord #help channel (they sync via GitThread). Include downloaded logs when relevant, and include the copied bad match report from NZB History when the issue is about a wrong or poor release match. Sensitive data should be automatically redacted but please double-check before posting.
If StreamNZB is useful to you, you can support development here: