#
Quasarr connects JDownloader with Radarr, Sonarr, Lidarr and Magazarr. It also handles links protected by CAPTCHAs.
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 notification) to solve CAPTCHAs in your browser. This requires Tampermonkey and the matching Quasarr userscript. The CAPTCHA page guides you through installing both once. Solve the CAPTCHA on the crypter's own page and the userscript sends the links back, so Quasarr can confidently handle the rest.
If a link crypter's CAPTCHAs become temporarily unsolvable, you can disable it under Web UI → Link Protection. Affected releases then fail so your *arr app grabs an alternative instead of stalling.
Instructions
- Set up and run JDownloader 2
- Configure the integrations below
- (Optional) Set up flaresolverr-next 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-hostnames.pages.dev: community guide for finding hostnames
📋 Alternatively, browse community suggestions via pastebin search ( login required).
Authentication is optional but strongly recommended.
> - 🔐 SetUSERandPASSto 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/Magazarr with **identical internal andexternal path mappings**!
Matching only the external path is not sufficient.
- Start and connect JDownloader to My JDownloader
- 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/Magazarr integration.
Categories & Mirrors
You can manage categories in the Quasarr Web UI.
- Setup: Add or edit categories to organize your downloads.
- Download Mirror Whitelist:
- Search Hostname Whitelist:
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 category2000(Movies) or5000(TV) - Simple text search is not supported.
Music / Books / Magazines:
- Use simple text search and pick category
3000(Music) or7000(Books/Magazines).
Magazarr
Magazarr is the magazine companion for Quasarr. It keeps your magazine list, searches Quasarr, sends selected releases to Quasarr for download, imports completed PDFs from JDownloader folders, and serves your library through OPDS.
Configure Magazarr
Run Magazarr and open http://127.0.0.1:8090:
docker run -d \
--name="Magazarr" \
-p 8090:8090 \
-v /path/to/magazarr-config:/config:rw \
-v /path/to/magazine-library:/library:rw \
-v /path/to/jdownloader-output:/output:rw \
-e 'TZ'='Europe/Berlin' \
ghcr.io/rix1337/magazarr:latest
Set these values in Magazarr:
| Setting | Value |
|----------------------------|-------------------------------------------------------------------------------------------------|
| Quasarr URL | Your Quasarr URL |
| Quasarr API Key | Your Quasarr API Key |
| Search category | 7000 |
| Download category | docs |
| JDownloader import root | /output, or the same internal path where completed JDownloader packages are visible |
| Library directory | /library, or wherever Magazarr should store imported PDFs |
Magazarr will import the PDF and clean up the completed package folder.
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 'USER'='admin' \
-e 'PASS'='change-me' \
-e 'AUTH'='form' \
-e 'TZ'='Europe/Berlin' \
ghcr.io/rix1337/quasarr:latest
🪟 Windows users: the single quotes above are for Linux/macOS shells. In Windowscmdand PowerShell the quotes are not stripped, so they end up as part of the variable name ('INTERNAL_ADDRESS'instead ofINTERNAL_ADDRESS) and Quasarr stops withYou must set the INTERNAL_ADDRESS variable.... Drop the single quotes and put everything on one line, e.g.-e INTERNAL_ADDRESS=http://192.168.0.1:8080.
| Parameter | Description |
|--------------------|------------------------------------------------------------------------------------------------------------|
| INTERNAL_ADDRESS | Required. Internal URL so Radarr/Sonarr/Lidarr/Magazarr can reach Quasarr. Must include port. |
| EXTERNAL_ADDRESS | Optional. External URL (e.g. reverse proxy). Always protect external access with authentication. |
| USER / PASS | Optional, but recommended! Username / Password to protect the web UI. |
| AUTH | Authentication mode. Supported values: form or basic. |
| 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/
quasarr
EXTERNAL_ADDRESSseeEXTERNAL_ADDRESSdocker variable
Notifications
Configure notifications in Web UI → Notifications Configuration:- Set provider credentials
- Choose notification types per provider
- Silent notifications won't play any sound
Discord
Configure Discord
- Open your Discord server and go to Server Settings → Integrations → Webhooks.
- Click New Webhook, choose the target channel, and copy the Webhook URL.
- Open Quasarr UI and go to Notifications.
- Paste the webhook URL into Discord → Webhook URL.
- Click Save Notification Settings and then Send Discord Test.
Telegram
Configure Telegram Bot
- Create a bot: Open Telegram and search for @BotFather. Send
/newbotand follow the prompts to choose a name and username for your bot. - Copy the token: BotFather will reply with an HTTP API token (e.g.
123456789:ABCdefGHI...). This is yourTELEGRAM_BOT_TOKEN. - Start a chat with the bot: Open a chat with your new bot and send any message (e.g.
/start). This is required so the bot can send messages back to you. - Get your chat ID: Open the following URL in a browser (replace
with your bot token):
https://api.telegram.org/bot<TOKEN>/getUpdates
Look for "chat":{"id": in the JSON response. That number is your TELEGRAM_CHAT_ID.
> Tip: For a group chat, add the bot to the group first, send a message in the group, then call getUpdates.
- Configure Quasarr: Open Notifications in Quasarr UI.
- Paste both values into Telegram → Bot Token / Chat ID.
- Click Save Notification Settings and then Send Telegram Test.
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/Magazarr
- Existing settings in JDownloader
- Existing tools from the *arr ecosystem that integrate directly with Radarr/Sonarr/Lidarr/Magazarr
Roadmap
- Assume there are zero known
- Still having an issue? Provide a detailed report here!
- There are no hostname integrations in active development unless you see an open pull request
- Pull requests are welcome! Especially for popular hostnames.
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.
🔐 Quasarr API Key Setup
- Open your Quasarr web UI in a browser
- On the main page, expand "Show API Settings"
- Copy the API Key value
- Use this value for the
QUASARR_API_KEYenvironment 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.
- Start your sponsorship.
- Start SponsorsHelper.
- In container logs, open the GitHub authorization URL shown by SponsorsHelper.
- Confirm the authorization in browser.
- 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://192.168.0.1:8191/v1' \
-e 'APIKEY_2CAPTCHA'='your_2captcha_api_key_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-next |
| APIKEY_2CAPTCHA | 2Captcha account API key |
| TZ | Optional. Timezone for SponsorsHelper (e.g., Europe/Berlin) |