-
Notifications
You must be signed in to change notification settings - Fork 0
Prowlarr Integration
Connect bitmagnet to a running Prowlarr instance to crawl configured indexers on a schedule. Imported torrents persist in the local database and remain searchable even when the source indexer goes offline.
Prowlarr is a live proxy — the source indexer must be up to get results. bitmagnet + Prowlarr creates a persistent local index where source uptime is irrelevant after the initial import.
Real example: Internet Archive (indexer 118) is notoriously unreliable in Prowlarr — frequent 400/timeout errors. But torrents already crawled from it remain in bitmagnet's DB and fully searchable regardless of IA's uptime.
Add to config.yml:
prowlarr:
url: http://your-prowlarr:9696
api_key: your_api_key_here
seed_refresh_enabled: true # update seed counts on existing torrents (default: true)
seed_refresh_max_age_days: 30 # refresh if source row older than X days (default: 30)
indexers:
- id: 20 # The Pirate Bay
enabled: true
categories:
- 2000 # Movies
- 5000 # TV
- id: 74 # 1337x
enabled: true
categories:
- 2000 # Movies
- 5000 # TV
- 3000 # AudioAdd --keys=prowlarr_crawler to your compose command block. See Worker Keys.
Categories must use numeric Newznab IDs in config.yml.
| ID | Category |
|---|---|
| 2000 | Movies |
| 5000 | TV |
| 3000 | Audio / Music |
| 7000 | Books / E-Books |
| 4000 | PC / Software |
| 1000 | Console / Games |
| 6000 | XXX |
| 8000 | Other |
Not all Prowlarr indexers return torrent hashes. bitmagnet requires a valid SHA1 info_hash to import — without it, results are silently skipped.
How to tell if an indexer works: Check your first crawl log. If you see "imported": 0, "new_results": 35+ every cycle, that indexer doesn't return hashes and is not compatible.
Startup hash check: On startup, each configured indexer is probed with a small test search. Indexers that return no hashes are logged as WARN and skipped automatically.
Known working (public, return hashes): The Pirate Bay, kickasstorrents.ws, EZTV, showRSS, YTS, Knaben, Nyaa.si, Bangumi Moe, Uindex, FileMood
Known broken (no hashes): Torrenting.com, LimeTorrents, MagnetDownload, DaMagNet, TorrentsCSV
Note: 0Magnet (id 37) is XXX-only (category 6000).
Prowlarr-sourced torrents go through the full TMDB + OMDb classification pipeline — the same as DHT-sourced torrents. Poster art, genre/cast/crew data, Rotten Tomatoes scores, and content matching all work on Prowlarr imports.
If bitmagnet runs under gluetun's network namespace, the Prowlarr URL must be reachable from inside the VPN. Options:
-
FIREWALL_OUTBOUND_SUBNETS — allow outbound to your LAN:
FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24 - Split sidecar — run the main bitmagnet on the regular network (direct Prowlarr access) and only the DHT crawler behind gluetun. See DHT Sidecar Setup.
Prowlarr's search API returns seeders/leechers in every result. These are saved during import — no separate DHT lookup is needed. The seed_refresh_enabled option updates seed counts for existing torrents that reappear in crawl results, piggybacking on existing crawl cycles with zero extra API calls.
Limitation: Seed counts are only updated for torrents that appear in search results. Older torrents that fall off the results page will have stale counts over time.
Sources are stored internally as prowlarr-<indexer_id> (e.g. prowlarr-20). Display names (e.g. "The Pirate Bay") are fetched from the Prowlarr API and update automatically on each crawl. If you see a numeric ID instead of a name in the UI, wait for the next crawl cycle.
A REST endpoint (POST /api/prowlarr/crawl) allows on-demand crawling. The web UI has a "Crawl Now" button per indexer on the Prowlarr page.