Skip to main content

Full template for python web projects with Docker, GitHub Actions, PyPI, and more.

Project description

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

PyPI version Discord GitHub Sponsorship

Quasarr poses as a Newznab Indexer and a SABnzbd client. It will thus never work in parallel with a real NZB indexer and download client set up. Torrents are unaffected. To still use NZB indexers, you must set fixed download clients in the advanced indexer settings for Radarr/Sonarr.

Quasarr includes a solution to quickly and easily decrypt protected links. Active Sponsors get access to SponsorsHelper to do so automatically. Alternatively follow the link from the console output (or discord notification) to solve the CAPTCHA manually. Quasarr will confidently handle the rest.

Instructions

  • Set up at least one hostname for Quasarr to use
    • Chose your own or use the HOSTNAMES variable to provide a list of hostnames.
    • This project will not condone nor provide you with hostnames. Search Google, Pastebin, etc. for suggestions.
    • Always redact hostnames when creating issues in this repo.
    • Quasarr will become available once at least one suitable hostname is set.
  • Provide your My-JDownloader-Credentials
    • Consider setting up a fresh JDownloader before you begin.
    • Quasarr will modify settings of JDownloader so downloads can be properly handled by Radarr/Sonarr.
    • If using docker make extra sure that JDownloader's download path is available to Radarr/Sonarr with the exakt same internal and external path mapping. Just matching the external path is not enough.
  • Set up Quasarr as Newznab Indexer and SABnzbd Download Client in Radarr/Sonarr
    • Use the API key from console output (or copy it from the Quasarr web UI)
    • Leave all other settings at default.
  • To see download status information
    • Open ActivityQueueOptions in Radarr/Sonarr
    • Enable Release Title

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'
  ghcr.io/rix1337/Quasarr:latest
  • INTERNAL_ADDRESS is required so Radarr/Sonarr can reach Quasarr. Must include port!
  • EXTERNAL_ADDRESS is optional and used in Discord notifications.
  • 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

Manual setup

Use this only in case you cant run the docker image.

pip install

  • 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 solo projects like this one. It must be fought at all cost!

Therefore, feature toggles to modify Quasarr's behavior will never be introduced to this project.

Consider that every choice for the user must be reflected throughout the project. Every feature toggle therefore is a negative multiplier for future development efforts. This project's predecessor FeedCrawler died because it allowed an insane amount of flexibility.

I will not waste my precious time on features that will slow future development cycles down. Issues, feature and pull requests that are meant to introduce feature toggles will therefore be rejected.

  • If you need to update hostnames or My-JDownloader-Credentials, simply delete the config and restart Quasarr.
  • Radarr/Sonarr provide custom formats to automatically chose the most fitting release for a given search.
  • Quasarr will always prefix release titles with the source hostname in square brackets in case you want to apply custom format scores to certain hostnames.

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!
  • The feature set is considered complete. Most feature requests can be satisfied by:
    • Existing settings in Radarr/Sonarr
    • Existing settings in JDownloader
    • Existing tools from the *arr ecosystem that integrate directly with Radarr/Sonarr
  • Exposing the mirrors of a release to Radarr/Sonarr is a desired feature. This will allow scoring desired mirrors using custom profiles in Radarr/Sonarr. Quasarr will always provide all found mirrors at once, if they are protected by the same or no CAPTCHA.
  • There are no hostname integrations in active development.
  • Adding one or more hostnames focused on English content is highly desired.
    • Please provide suggestions in a private thread on Discord.
  • Pull requests are welcome. Especially for popular hostnames.
    • Always reach out on Discord before starting work on a new feature.
    • Please follow the existing code style and project structure.
    • Anti-bot measures must be circumvented without relying on third party tools like Flaresolverr.
    • Please provide proof of functionality (screenshots/examples) when submitting your pull request.

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.0.13.tar.gz (109.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.0.13-py3-none-manylinux2014_aarch64.whl (121.9 kB view details)

Uploaded Python 3

quasarr-1.0.13-py3-none-any.whl (121.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for quasarr-1.0.13.tar.gz
Algorithm Hash digest
SHA256 22b203b393ea695ed2b4142d5da3da23992f4463cb7e9a8d572a52087a37883e
MD5 c72a910cd59ca402b720a7a54712ffa0
BLAKE2b-256 36658b76492fb8b96b81591645b0ff7d7de1b27bc8982d02227c8268a2b5cee9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quasarr-1.0.13-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 80b94591c694a91da1d4f73ee80c6f045a24f6071265c8a99085894ba3c78ff6
MD5 8deb59df12b0f0f0c64d177d5c90e064
BLAKE2b-256 dc7643d1d2583833721698248b9fcabd5f01fba66ee8369362a1c4f29c5eb797

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for quasarr-1.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 5ba72e3cfbe3696335e618b403d75792de3b8c00450fc63ed89faa169dde6b46
MD5 e900372dc85217f3b169188a234fbf3a
BLAKE2b-256 2d14cbb930e562c24165079a28464856ca36e45104ae078acf056c2e69cdb3d1

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