Search, verify, and stream Usenet releases through Jellyfin or the built-in web preview—without a traditional download, import, and cleanup workflow.
Quick start · Documentation · Releases · Contributing
Streamarr is intended for legally obtained content. You are responsible for ensuring that your use complies with the laws and terms that apply to you.
Streamarr turns Newznab search results into seekable, on-demand streams from your Usenet provider. It chooses a suitable release, checks that it is still available, and can try an alternative before playback; provider failover and built-in repair cover common interruptions. Jellyfin supplies the clients and transcoding; Streamarr also works independently through its browser preview.
Jellyfin or browser → Streamarr → Newznab indexers + Usenet providers
- Start sooner — playback can begin without waiting for a complete download.
- Feels native in Jellyfin — movies, series, seasons, and episodes appear beside local media and use Jellyfin's normal clients and transcoding.
- Chooses intelligently — quality profiles, transparent scoring, availability checks, and quality-profile imports from Sonarr or Radarr help select the right release.
- Recovers gracefully — provider failover, automatic release fallback, and built-in repair cover common Usenet failure modes.
- Understands TV — season packs, exact episode selection, and optional preparation of the next episode are built in.
- Explains itself — the management UI shows searches, rejections, active streams, cache use, repairs, history, logs, and per-stream diagnostics.
No Sonarr, Radarr, or Prowlarr is required. Streamarr replaces the parts needed for on-demand playback; it is not a general download manager or media-file organizer.
- A 64-bit Intel/AMD or ARM Linux host with Docker Engine and Docker Compose.
- A Usenet provider and at least one Newznab-compatible indexer.
- A TMDB API credential for catalog search, metadata, artwork, and Jellyfin results.
- Jellyfin only if you want its apps and transcoding—Streamarr can preview browser-compatible releases by itself.
Streamarr supports Usenet/NZB only. It does not support torrents.
Save this as compose.yml in a new directory:
services:
streamarr:
image: ghcr.io/tildoescode/streamarr:latest
init: true
read_only: true
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
ports:
- "127.0.0.1:8080:8080"
environment:
Streamarr__Admin__Password: "${STREAMARR_ADMIN_PASSWORD:?Set in .env}"
Streamarr__ApiKey: "${STREAMARR_API_KEY:?Set in .env}"
volumes:
- streamarr-data:/app/data
- streamarr-keys:/app/keys
tmpfs:
- /tmp:rw,noexec,nosuid,nodev,size=64m
restart: unless-stopped
volumes:
streamarr-data:
streamarr-keys:Generate two different secrets:
openssl rand -hex 32
openssl rand -hex 32Save them as .env beside compose.yml:
STREAMARR_ADMIN_PASSWORD=paste-the-first-value-here
STREAMARR_API_KEY=paste-the-second-value-hereProtect the file, then start Streamarr:
chmod 600 .env
docker compose pull
docker compose up -dRun docker compose ps again until the service reports healthy:
docker compose psOpen http://127.0.0.1:8080 and sign in as admin with
STREAMARR_ADMIN_PASSWORD. The loopback bind is deliberate; for access from another
device, see network access and reverse proxies.
In the management UI:
- Add and test a Usenet provider.
- Add and test a Newznab indexer.
- Add a TMDB credential under Settings → General.
- Keep the built-in Standard quality profile or customize one later.
- Search for a title, resolve a browser-compatible release, and use Preview to validate the complete source path before connecting Jellyfin.
Database migrations happen automatically. The two named volumes preserve the database,
caches, encrypted secrets, and their encryption keys; back up streamarr-data and
streamarr-keys together.
For a version-pinned home bundle, a hardened full Compose file, checksum verification, or a bundled Jellyfin container, follow the installation guide.
Streamarr is currently tested against Jellyfin 10.11.11.
- In Jellyfin, open Dashboard → Plugins → Repositories and add:
https://raw.githubusercontent.com/TilDoesCode/streamarr/main/manifest.json - Install Streamarr from the catalog and restart Jellyfin.
- In the plugin settings, enter the Core URL, the exact
STREAMARR_API_KEY, and a client-reachable public stream URL when the Core URL is container-only. Test the connection, then enable search interception.
Keep the plugin and Core on matching Streamarr versions. Read the Jellyfin setup and compatibility notes before upgrading Jellyfin.
| Guide | Use it for |
|---|---|
| Installation | Release bundles, Docker, Jellyfin, Komodo, and first playback |
| Configuration | Providers, indexers, TMDB, profiles, and optional features |
| Operations | Networking, upgrades, backups, logs, and troubleshooting |
| All documentation | Architecture, API, ranker tuning, compatibility, and development |
Komodo users can go directly to the copy-paste Komodo guide.
Streamarr is under active 0.x development. Releases are usable, packaged for
linux/amd64 and linux/arm64, and covered by automated server, web, plugin,
container, and browser-to-stream tests—but configuration and behavior can still change
between minor versions. Read the release notes
before upgrading.
Performance depends on the provider, indexer, release layout, and network. Search interception is tied to a tested Jellyfin version and deliberately falls back to native Jellyfin search if Streamarr is unavailable.
Contributions are welcome; start with CONTRIBUTING.md. Please report vulnerabilities privately as described in SECURITY.md, not in a public issue.
Streamarr is licensed under GPL-3.0. Third-party notices and attribution are listed in NOTICE.