Skip to main content

Quasarr connects JDownloader with Radarr, Sonarr and LazyLibrarian. It also decrypts links protected by CAPTCHAs.

Project description

Quasarr connects JDownloader with Radarr, Sonarr, Lidarr and LazyLibrarian. It also decrypts links protected by CAPTCHAs.

PyPI version Discord GitHub Sponsorship

Quasarr pretends to be both Newznab Indexer and SABnzbd client. Therefore, do not try to use it with real usenet indexers. It simply does not know what NZB files are.

Quasarr includes a solution to quickly and easily decrypt protected links. Active monthly Sponsors get access to SponsorsHelper to do so automatically. Alternatively, follow the link from the console output (or discord notification) to solve CAPTCHAs manually. Quasarr will confidently handle the rest. Some CAPTCHA types require Tampermonkey to be installed in your browser.

Instructions

  1. Set up and run JDownloader 2
  2. Configure the integrations below
  3. (Optional) Set up FlareSolverr 3 for sites that require it

Finding your Quasarr URL and API Key
Both values are shown in the console output under API Information, or in the Quasarr web UI.


Quasarr

⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but community-maintained lists are available:

🔗 https://quasarr-host.name — community guide for finding hostnames

📋 Alternatively, browse community suggestions via pastebin search ( login required).

Authentication is optional but strongly recommended.

  • 🔐 Set USER and PASS to enable form-based login (30-day session)
  • 🔑 Set AUTH=basic to use HTTP Basic Authentication instead

JDownloader

⚠️ If using Docker: JDownloader's download path must be available to Radarr/Sonarr/Lidarr/LazyLibrarian with identical internal and external path mappings! Matching only the external path is not sufficient.

  1. Start and connect JDownloader to My JDownloader
  2. Provide your My JDownloader credentials during Quasarr setup
Fresh install recommended

Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable Radarr/Sonarr/Lidarr/LazyLibrarian integration.


Categories & Mirrors

You can manage categories in the Quasarr Web UI.

  • Setup: Add or edit categories to organize your downloads.
  • Download Mirror Whitelist:
    • Inside a download category, you can whitelist specific mirrors.
    • If specific mirrors are set, downloads will fail unless the release is available from them.
    • This does not affect search results.
    • This affects the Quasarr Download Client in Radarr/Sonarr/Lidarr/LazyLibrarian.
  • Search Hostname Whitelist:
    • Inside a search category, you can whitelist specific hostnames.
    • If specific hostnames are set, only these will be searched by the given search category.
    • This affects search results.
    • This affects the Quasarr Newznab Indexer in Radarr/Sonarr/Lidarr/LazyLibrarian.

Radarr / Sonarr / Lidarr

Add Quasarr as both a Newznab Indexer and SABnzbd Download Client using your Quasarr URL and API Key.

Be sure to set a category in the SABnzbd Download client (default: movies for Radarr, tv for Sonarr and music for Lidarr).

Show download status in Radarr/Sonarr/Lidarr

Activity → Queue → Options → Enable Release Title


Prowlarr

Add Quasarr as a Generic Newznab Indexer.

  • Url: Your Quasarr URL
  • ApiKey: Your Quasarr API Key
Allowed search parameters and categories

Movies / TV:

  • Use IMDb ID, Syntax: {ImdbId:tt0133093} and pick category 2000 (Movies) or 5000 (TV)
  • Simple text search is not supported.

Music / Books / Magazines:

  • Use simple text search and pick category 3000 (Music) or 7000 (Books/Magazines).

LazyLibrarian

⚠️ Experimental feature — Report issues when a hostname returns results on its website but not in LazyLibrarian.

Setup instructions

SABnzbd+ Downloader

Setting Value
URL/Port Your Quasarr host and port
API Key Your Quasarr API Key
Category docs

Newznab Provider

Setting Value
URL Your Quasarr URL
API Your Quasarr API Key

Fix Import & Processing

Importing:

  • Enable OpenLibrary api for book/author information
  • Set Primary Information Source to OpenLibrary
  • Add to Import languages: , Unknown (German users: , de, ger, de-DE)

Processing → Folders:

  • Add your Quasarr download path (typically /downloads/Quasarr/)

Docker

It is highly recommended to run the latest docker image with all optional variables set.

docker run -d \
  --name="Quasarr" \
  -p port:8080 \
  -v /path/to/config/:/config:rw \
  -e 'INTERNAL_ADDRESS'='http://192.168.0.1:8080' \
  -e 'EXTERNAL_ADDRESS'='https://foo.bar/' \
  -e 'DISCORD'='https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN' \
  -e 'USER'='admin' \
  -e 'PASS'='change-me' \
  -e 'AUTH'='form' \
  -e 'SILENT'='True' \
  -e 'TZ'='Europe/Berlin' \
  ghcr.io/rix1337/quasarr:latest
Parameter Description
INTERNAL_ADDRESS Required. Internal URL so Radarr/Sonarr/Lidarr/LazyLibrarian can reach Quasarr. Must include port.
EXTERNAL_ADDRESS Optional. External URL (e.g. reverse proxy). Always protect external access with authentication.
DISCORD Optional. Discord webhook URL for notifications.
USER / PASS Optional, but recommended! Username / Password to protect the web UI.
AUTH Authentication mode. Supported values: form or basic.
SILENT Optional. If True, silences all Discord notifications except SponsorHelper error messages. If MAX, blocks all Discord messages except SponsorHelper failure messages.
TZ Optional. Timezone. Incorrect values may cause HTTPS/SSL issues.

Manual setup

Use this only in case you can't run the docker image.

⚠️ Requires Python 3.12 (or later) and uv!

uv tool install quasarr

export INTERNAL_ADDRESS=http://192.168.0.1:8080
export EXTERNAL_ADDRESS=https://foo.bar/
export DISCORD=https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN
quasarr
  • DISCORD see DISCORDdocker variable
  • EXTERNAL_ADDRESS see EXTERNAL_ADDRESSdocker variable

Philosophy

Complexity is the killer of small projects like this one. It must be fought at all cost!

We will not waste precious time on features that will slow future development cycles down. Most feature requests can be satisfied by:

  • Existing settings in Radarr/Sonarr/Lidarr/LazyLibrarian
  • Existing settings in JDownloader
  • Existing tools from the *arr ecosystem that integrate directly with Radarr/Sonarr/Lidarr/LazyLibrarian

Roadmap

  • Assume there are zero known issues unless you find one or more open issues in this repository.
  • Still having an issue? Provide a detailed report here!
  • There are no hostname integrations in active development unless you see an open pull request here.
  • Pull requests are welcome! Especially for popular hostnames.
    • A short guide to set up required dev services is found here.
    • Always reach out on Discord before starting work on a new feature to prevent waste of time.
    • Please follow the existing code style and project structure.
    • Anti-bot measures must be circumvented fully by Quasarr. Thus, you will need to provide a working solution for new CAPTCHA types by integrating it in the Quasarr Web UI. The simplest CAPTCHA bypass involves creating a Tampermonkey user script.
    • Please provide proof of functionality (screenshots/examples) when submitting your pull request.

SponsorsHelper

SponsorsHelper is a Docker image that solves CAPTCHAs and decrypts links for Quasarr.
The image is public, but requires a valid active monthly GitHub sponsor check at runtime.

Github Sponsorship


🔐 Quasarr API Key Setup

  1. Open your Quasarr web UI in a browser
  2. On the main page, expand "Show API Settings"
  3. Copy the API Key value
  4. Use this value for the QUASARR_API_KEY environment variable

Note: The API key is required for SponsorsHelper to communicate securely with Quasarr. Without it, all requests will be rejected with a 401/403 error.


🔑 GitHub Auth

⚠️ Mount /config to persistent storage. Otherwise the auth token is lost on container recreation/update.

  1. Start your sponsorship.
  2. Start SponsorsHelper.
  3. In container logs, open the GitHub authorization URL shown by SponsorsHelper.
  4. Confirm the authorization in browser.
  5. Done. SponsorsHelper caches the auth token in /config/github_oauth_token.json.

▶️ Run SponsorsHelper

docker run -d \
  --name='SponsorsHelper' \
  -v '/path/to/sponsorshelper-config:/config' \
  -e 'QUASARR_URL'='http://192.168.0.1:8080' \
  -e 'QUASARR_API_KEY'='your_quasarr_api_key_here' \
  -e 'FLARESOLVERR_URL'='http://10.10.0.1:8191/v1' \
  -e 'APIKEY_2CAPTCHA'='your_2captcha_api_key_here' \
  -e 'DEATHBYCAPTCHA_TOKEN'='your_deathbycaptcha_token_here' \
  -e 'TZ'='Europe/Berlin' \
  ghcr.io/rix1337/sponsors-helper:latest
Parameter Description
QUASARR_URL Local URL of Quasarr (e.g., http://192.168.0.1:8080)
QUASARR_API_KEY Your Quasarr API key (found in Quasarr web UI under "API Settings")
FLARESOLVERR_URL Local URL of FlareSolverr
APIKEY_2CAPTCHA 2Captcha account API key
DEATHBYCAPTCHA_TOKEN DeathByCaptcha account token
TZ Optional. Timezone for SponsorsHelper (e.g., Europe/Berlin)
Volume Purpose
/config Persistent SponsorsHelper state (including cached GitHub auth token)
  • 2Captcha is the recommended CAPTCHA solving service.
  • DeathByCaptcha can serve as a fallback or work on its own.
  • If you set both APIKEY_2CAPTCHA and DEATHBYCAPTCHA_TOKEN both services will be used alternately.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quasarr-4.1.4.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quasarr-4.1.4-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file quasarr-4.1.4.tar.gz.

File metadata

  • Download URL: quasarr-4.1.4.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for quasarr-4.1.4.tar.gz
Algorithm Hash digest
SHA256 3d6a9f3c998c11c23a79fe77645dcbb754da5a098f6dbdc8557b718b337530b4
MD5 c883bbe68887e71fc5817a017a39c7df
BLAKE2b-256 7210a85d4645466b086c7e70ae91fc2f6815168fc366175ea80490360f4541d8

See more details on using hashes here.

File details

Details for the file quasarr-4.1.4-py3-none-any.whl.

File metadata

  • Download URL: quasarr-4.1.4-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for quasarr-4.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 deeebb594d73357346d717632c83a0aa5cd0ba6a0ee85153e90b7ec71ed3560f
MD5 70c5db8a1ad14d5d6fc5a9b84d84e3a8
BLAKE2b-256 5c1f44efa0395c15de275a18c410ab040b5da669115d353cbb3185535a0dc987

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page