Skip to content

Veneziaisking/dksubs-proxy-installer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DKSubs NFO-Hunter Proxy

An async Python proxy that sits between Radarr/Sonarr and Prowlarr to detect Danish subtitles and audio tracks. It scans release titles and NFO files from Usenet indexers, adding surgical tags to release titles so Radarr/Sonarr custom formats can automatically prioritize Danish releases.

Why this exists

Many Usenet indexers don't correctly tag Danish/Nordic subtitles or audio in their metadata. Radarr and Sonarr miss high-quality Danish releases because Danish isn't in the title. This proxy fixes that by:

  • Title scanning: Instantly tags releases with NORDiC, DANISH, DANSK, etc. in the title
  • NFO deep scan: Downloads and parses NFO/MediaInfo files for releases that don't advertise Danish in the title — catches multi-language releases with hidden Danish tracks
  • Smart caching: SQLite cache remembers results (positives forever, negatives 6h), so each release is only fetched once
  • Background processing: Returns tagged results in ~5 seconds; remaining NFO fetches continue in the background for the next poll

Tags added to release titles

Tag Meaning
[DKSubs:Title] Danish subtitles detected from the release title
[DKAudio:Title] Danish audio detected from the release title
[DKSubs:NFO] Danish subtitles found in the NFO/MediaInfo file
[DKAudio:NFO] Danish audio found in the NFO/MediaInfo file

Quick Start

git clone https://github.com/unknown0152/dksubs-proxy.git
cd dksubs-proxy
bash setup-proxy.sh

The setup script auto-discovers your Prowlarr/Radarr/Sonarr containers, extracts real API keys from Prowlarr's database, configures networking, starts the proxy, and syncs all Arr indexers to route through the proxy.

After setup: In Radarr/Sonarr, the DKSubs custom format is created automatically with a score of 10,000 in Danish/Nordic/Mandatory quality profiles.

How It Works

Radarr/Sonarr → dksubs-proxy:9699/{indexer_id} → Prowlarr → NZB Indexer
                      ↓
              [Scans titles + fetches NFOs]
                      ↓
              Returns tagged RSS to Radarr/Sonarr

NFO fetching uses two stages per release:

  1. Prowlarr's t=getnfo proxy (usually returns error 202 — most indexers don't support it via Prowlarr)
  2. Direct call to the indexer's own API using real API keys extracted from Prowlarr's database

Background model: The proxy returns partial results (title hits + fast NFO fetches) within 5 seconds. Slow NFO fetches continue in the background and populate the cache for the next poll.

Environment Variables

All variables are written to .env by setup-proxy.sh. You can override them manually:

Variable Default Description
PROWLARR_URL http://Prowlarr:9696 Prowlarr internal URL
PROWLARR_API_KEY (required) Prowlarr API key
NFO_INDEXERS auto-detected Comma-separated Prowlarr indexer IDs for NFO scanning
INDEXER_{id}_APIKEY auto Real API key for indexer (from Prowlarr's SQLite DB)
INDEXER_{id}_BASEURL auto Base URL for indexer
NFO_TIMEOUT 5.0 Foreground NFO fetch budget in seconds
NFO_DIRECT_RATE_CALLS 8 Max direct NFO API calls per rate window
NFO_DIRECT_RATE_WINDOW 10 Rate limit window in seconds
CACHE_TTL_NEGATIVE 21600 Seconds before a "no Danish" result is retried (6h)
DEBUG_LOGGING 0 Set to 1 for verbose logs

Monitoring

# Live logs
docker logs -f dksubs-proxy

# Health check
curl http://dksubs-proxy:9699/health

# Metrics (JSON)
curl http://dksubs-proxy:9699/metrics

Metrics include: requests_total, hunt_total, dk_hits, nfo_fetches, nfo_direct_fetches, nfo_direct_hits, cache_hits, cache_misses.

After Changing Indexers in Prowlarr

bash setup-proxy.sh && docker compose up -d

Rate Limiting

Direct NFO API calls are rate-limited per indexer (default: 8 requests/10s). For indexers with stricter limits, add to .env:

INDEXER_{id}_RATE_CALLS=5
INDEXER_{id}_RATE_WINDOW=10

For indexers with very strict limits (e.g. 300 calls/5 min):

INDEXER_{id}_RATE_CALLS=250
INDEXER_{id}_RATE_WINDOW=300

License

MIT — built for the home-lab community.

About

Auto-setup proxy for Danish subtitle/audio detection between Radarr/Sonarr and Prowlarr

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 56.0%
  • Python 43.7%
  • Dockerfile 0.3%