Skip to content

Prowlarr Integration

o51r15 edited this page Jul 11, 2026 · 1 revision

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.


Why use bitmagnet with Prowlarr?

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.


Configuration

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      # Audio

Add --keys=prowlarr_crawler to your compose command block. See Worker Keys.


Newznab category reference

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

Indexer compatibility

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).


Classification

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.


Network setup with gluetun

If bitmagnet runs under gluetun's network namespace, the Prowlarr URL must be reachable from inside the VPN. Options:

  1. FIREWALL_OUTBOUND_SUBNETS — allow outbound to your LAN: FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24
  2. Split sidecar — run the main bitmagnet on the regular network (direct Prowlarr access) and only the DHT crawler behind gluetun. See DHT Sidecar Setup.

Seed counts

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.


Indexer display names

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.


Crawl Now

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.

Clone this wiki locally