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

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.


FlareSolverr (Optional)

FlareSolverr is optional but required for some sites (e.g., AL) that use Cloudflare protection. You can skip FlareSolverr during setup and configure it later via the web UI.

If using FlareSolverr, provide your URL including the version path:

http://192.168.1.1:8191/v1

Note: Sites requiring FlareSolverr will show a warning in the console when it's not configured.


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:

🔗 quasarr-hostnames.pages.dev — third-party guide for finding hostnames

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


JDownloader

⚠️ If using Docker: JDownloader's download path must be available to Radarr/Sonarr/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/LazyLibrarian integration.


Radarr / Sonarr

⚠️ Sonarr users: Set all shows (including anime) to the Standard series type. Quasarr cannot find releases for shows set to Anime/Absolute.

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

Show download status in Radarr/Sonarr

Activity → Queue → Options → Enable Release Title

Restrict results to a specific mirror

Append the mirror name to your Newznab URL:

/api/dropbox/

Only releases with dropbox in a link will be returned. If the mirror isn't available, the release will fail.


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 'HOSTNAMES'='https://pastebin.com/raw/eX4Mpl3'
  -e 'SILENT'='True' \
  -e 'DEBUG'='' \
  -e 'TZ'='Europe/Berlin' \
  ghcr.io/rix1337/quasarr:latest
  • INTERNAL_ADDRESS is required so Radarr/Sonarr/LazyLibrarian can reach Quasarr. Must include port!
  • EXTERNAL_ADDRESS is optional and helpful if using a reverse proxy. Always protect external access with basic auth!
  • DISCORD is optional and must be a valid Discord webhook URL.
  • HOSTNAMES is optional and allows skipping the manual hostname step during setup.
    • Must be a publicly available HTTP or HTTPs link
    • Must be a raw .ini / text file (not HTML or JSON)
    • Must contain at least one valid Hostname per line ab = xyz
  • SILENT is optional and silences all discord notifications except for error messages from SponsorsHelper if True.
  • DEBUG is optional and enables debug logging if True.
  • TZ is optional, wrong timezone can cause HTTPS/SSL issues

Manual setup

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

pip install quasarr

  • Requires Python 3.12 or later
  --port=8080
  --discord=https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN
  --external_address=https://foo.bar/
  --hostnames=https://pastebin.com/raw/eX4Mpl3
  • --discord see DISCORDdocker variable
  • --external_address see EXTERNAL_ADDRESSdocker variable
  • --hostnames see HOSTNAMESdocker 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/LazyLibrarian
  • Existing settings in JDownloader
  • Existing tools from the *arr ecosystem that integrate directly with Radarr/Sonarr/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 in /docker/dev-setup.md
    • 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.
    • 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.
Image access is limited to active monthly GitHub sponsors.

Github Sponsorship


🔑 GitHub Token Setup

  1. Start your sponsorship first.
  2. Open GitHub Classic Token Settings
  3. Name it (e.g., SponsorsHelper) and choose unlimited expiration
  4. Enable these scopes:
    • read:packages
    • read:user
    • read:org
  5. Click Generate token and copy it for the next steps

🐋 Docker Login

⚠️ Before logging in, the image will not download.

echo "GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
  • USERNAME → your GitHub username
  • GITHUB_TOKEN → the token you just created

▶️ Run SponsorsHelper

⚠️ Without a valid GitHub token linked to an active sponsorship, the image will not run.

docker run -d \
  --name='SponsorsHelper' \
  -e 'QUASARR_URL'='http://192.168.0.1:8080' \
  -e 'DEATHBYCAPTCHA_TOKEN'='2FMum5zuDBxMmbXDIsADnllEFl73bomydIpzo7...' \
  -e 'GITHUB_TOKEN'='ghp_123.....456789' \
  -e 'FLARESOLVERR_URL'='http://10.10.0.1:8191/v1' \
  -e 'NX_USER'='your_nx_username' \
  -e 'NX_PASS'='your_nx_password' \
  -e 'JUNKIES_USER'='your_junkies_username' \
  -e 'JUNKIES_PASS'='your_junkies_password' \
  -e 'JUNKIES_HOSTER'='your_desired_hoster' \
  ghcr.io/rix1337-sponsors/docker/helper:latest
  • QUASARR_URL → Local URL of Quasarr
  • DEATHBYCAPTCHA_TOKENDeathByCaptcha account token
  • GITHUB_TOKEN → Classic GitHub PAT with the scopes listed above
  • FLARESOLVERR_URL → Local URL of FlareSolverr - required!
  • NX_USER / NX_PASS → NX account credentials
  • JUNKIES_USER / JUNKIES_PASS → Junkies account credentials
  • JUNKIES_HOSTER → Preferred hoster for Junkies links

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-1.28.1.tar.gz (627.3 kB view details)

Uploaded Source

Built Distributions

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

quasarr-1.28.1-py3-none-manylinux2014_aarch64.whl (671.1 kB view details)

Uploaded Python 3

quasarr-1.28.1-py3-none-any.whl (671.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quasarr-1.28.1.tar.gz
  • Upload date:
  • Size: 627.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for quasarr-1.28.1.tar.gz
Algorithm Hash digest
SHA256 84fcae73a0501b0152b17f08b8a23b3a6b2e52e854d7898e5d7346e9374f788e
MD5 5b75327adc196623020a06518ed9d6fc
BLAKE2b-256 bd1a58209f6269e3f8a2f9cb8b7020e104674c81fde6d02e2ba759e86ab743f3

See more details on using hashes here.

File details

Details for the file quasarr-1.28.1-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for quasarr-1.28.1-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b84200ef83b0c992044a52efe890c45a9cf5e83a18829402dbd873fbfe497f8
MD5 f43b7364e3562c3b2d2248716986b130
BLAKE2b-256 773b8e0fe293a4c979b798449b0c73f0b03c024729972d347f1f5a9201b4b177

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quasarr-1.28.1-py3-none-any.whl
  • Upload date:
  • Size: 671.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for quasarr-1.28.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a65f96d810b95c6447536115d18953ff0d212607fc1150cde045c93fc7c79f9
MD5 d7fed4ade0d7dd317a6417f367e148ba
BLAKE2b-256 bed8f7c994fa8e1e9a672fe242463d77fcd952c41d2b6797fbbfaf37cb56b96e

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