quasarr 1.26.7__tar.gz → 1.27.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of quasarr might be problematic. Click here for more details.
- {quasarr-1.26.7 → quasarr-1.27.0}/PKG-INFO +79 -93
- {quasarr-1.26.7 → quasarr-1.27.0}/README.md +78 -92
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/__init__.py +23 -152
- quasarr-1.27.0/quasarr/api/config/__init__.py +135 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/sessions/al.py +21 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/sessions/dd.py +8 -1
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/sessions/dl.py +34 -23
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/sessions/nx.py +8 -1
- quasarr-1.27.0/quasarr/providers/utils.py +168 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/version.py +1 -1
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/storage/config.py +3 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/storage/setup.py +456 -15
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr.egg-info/PKG-INFO +79 -93
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr.egg-info/SOURCES.txt +1 -0
- quasarr-1.26.7/quasarr/api/config/__init__.py +0 -23
- {quasarr-1.26.7 → quasarr-1.27.0}/LICENSE +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/api/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/api/arr/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/api/captcha/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/api/sponsors_helper/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/api/statistics/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/linkcrypters/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/linkcrypters/al.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/linkcrypters/filecrypt.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/linkcrypters/hide.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/packages/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/al.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/by.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/dd.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/dj.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/dl.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/dt.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/dw.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/he.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/mb.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/nk.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/nx.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/sf.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/sj.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/sl.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/wd.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/downloads/sources/wx.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/cloudflare.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/html_images.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/html_templates.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/imdb_metadata.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/log.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/myjd_api.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/notifications.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/obfuscated.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/sessions/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/shared_state.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/statistics.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/providers/web_server.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/al.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/by.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/dd.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/dj.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/dl.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/dt.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/dw.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/fx.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/he.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/mb.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/nk.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/nx.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/sf.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/sj.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/sl.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/wd.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/search/sources/wx.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/storage/__init__.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr/storage/sqlite_database.py +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr.egg-info/dependency_links.txt +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr.egg-info/entry_points.txt +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr.egg-info/not-zip-safe +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr.egg-info/requires.txt +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/quasarr.egg-info/top_level.txt +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/setup.cfg +0 -0
- {quasarr-1.26.7 → quasarr-1.27.0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: quasarr
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.27.0
|
|
4
4
|
Summary: Quasarr connects JDownloader with Radarr, Sonarr and LazyLibrarian. It also decrypts links protected by CAPTCHAs.
|
|
5
5
|
Home-page: https://github.com/rix1337/Quasarr
|
|
6
6
|
Author: rix1337
|
|
@@ -44,97 +44,115 @@ Alternatively, follow the link from the console output (or discord notification)
|
|
|
44
44
|
Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonkey](https://www.tampermonkey.net/) to be installed in your browser.
|
|
45
45
|
|
|
46
46
|
# Instructions
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
|
|
48
|
+
1. Set up and run [FlareSolverr 3](https://github.com/FlareSolverr/FlareSolverr)
|
|
49
|
+
2. Set up and run [JDownloader 2](https://jdownloader.org/download/index)
|
|
50
|
+
3. Configure the integrations below
|
|
51
|
+
|
|
52
|
+
> **Finding your Quasarr URL and API Key**
|
|
53
|
+
> Both values are shown in the console output under **API Information**, or in the Quasarr web UI.
|
|
50
54
|
|
|
51
55
|
---
|
|
52
56
|
|
|
53
57
|
## FlareSolverr
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
|
|
59
|
+
Provide your FlareSolverr URL during setup. Include the version path:
|
|
60
|
+
```
|
|
61
|
+
http://192.168.1.1:8191/v1
|
|
62
|
+
```
|
|
57
63
|
|
|
58
64
|
---
|
|
59
65
|
|
|
60
66
|
## Quasarr
|
|
61
67
|
|
|
62
|
-
|
|
68
|
+
> ⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but community-maintained lists are available:
|
|
69
|
+
|
|
70
|
+
🔗 **[quasarr-hostnames.pages.dev](https://quasarr-hostnames.pages.dev)** — third-party guide for finding hostnames
|
|
63
71
|
|
|
64
|
-
|
|
65
|
-
> - The setup will guide you through the process of providing valid hostnames for Quasarr to scrape.
|
|
66
|
-
> - Do **not** ask for help here if you do not know which hostnames to use. Picking them is solely your responsibility.
|
|
67
|
-
> - You may check sites like [Pastebin](https://pastebin.com/search?q=hostnames+quasarr) for user‑submitted suggestions.
|
|
72
|
+
📋 Alternatively, browse community suggestions via [pastebin search](https://pastebin.com/search?q=hostnames+quasarr) (login required).
|
|
68
73
|
|
|
69
74
|
---
|
|
70
75
|
|
|
71
76
|
## JDownloader
|
|
72
77
|
|
|
73
|
-
|
|
74
|
-
|
|
78
|
+
> ⚠️ If using Docker:
|
|
79
|
+
> JDownloader's download path must be available to Radarr/Sonarr/LazyLibrarian with **identical internal and external path mappings**!
|
|
80
|
+
> Matching only the external path is not sufficient.
|
|
75
81
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
>
|
|
82
|
+
1. Start and connect JDownloader to [My JDownloader](https://my.jdownloader.org)
|
|
83
|
+
2. Provide your My JDownloader credentials during Quasarr setup
|
|
84
|
+
|
|
85
|
+
<details>
|
|
86
|
+
<summary>Fresh install recommended</summary>
|
|
87
|
+
|
|
88
|
+
Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable Radarr/Sonarr/LazyLibrarian integration.
|
|
89
|
+
|
|
90
|
+
</details>
|
|
80
91
|
|
|
81
92
|
---
|
|
82
93
|
|
|
83
94
|
## Radarr / Sonarr
|
|
84
95
|
|
|
85
|
-
Set
|
|
96
|
+
> ⚠️ **Sonarr users:** Set all shows (including anime) to the **Standard** series type. Quasarr cannot find releases for shows set to Anime/Absolute.
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
Add Quasarr as both a **Newznab Indexer** and **SABnzbd Download Client** using your Quasarr URL and API Key.
|
|
100
|
+
|
|
101
|
+
<details>
|
|
102
|
+
<summary>Show download status in Radarr/Sonarr</summary>
|
|
86
103
|
|
|
87
|
-
|
|
88
|
-
2. **API Key**: Use the `API Key` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
89
|
-
3. Leave all other settings at their defaults.
|
|
104
|
+
**Activity → Queue → Options** → Enable `Release Title`
|
|
90
105
|
|
|
91
|
-
>
|
|
92
|
-
|
|
93
|
-
>
|
|
106
|
+
</details>
|
|
107
|
+
|
|
108
|
+
<details>
|
|
109
|
+
<summary>Restrict results to a specific mirror</summary>
|
|
110
|
+
|
|
111
|
+
Append the mirror name to your Newznab URL:
|
|
112
|
+
```
|
|
113
|
+
/api/dropbox/
|
|
114
|
+
```
|
|
115
|
+
Only releases with `dropbox` in a link will be returned. If the mirror isn't available, the release will fail.
|
|
116
|
+
|
|
117
|
+
</details>
|
|
94
118
|
|
|
95
119
|
---
|
|
96
120
|
|
|
97
121
|
## LazyLibrarian
|
|
98
122
|
|
|
99
|
-
> **
|
|
100
|
-
> - This feature is experimental and may not work as expected.
|
|
101
|
-
> - Quasarr cannot help you with metadata issues, missing covers, or other LazyLibrarian problems.
|
|
102
|
-
> - Please report issues when one of your hostnames yields results through their website, but not in LazyLibrarian.
|
|
103
|
-
|
|
104
|
-
Set up Quasarr as a **SABnzbd+ Downloader**
|
|
123
|
+
> ⚠️ **Experimental feature** — Report issues when a hostname returns results on its website but not in LazyLibrarian.
|
|
105
124
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
3. **SABnzbd Category**: Use `docs` to ensure LazyLibrarian does not interfere with Radarr/Sonarr.
|
|
109
|
-
4. Press `Test SABnzbd` to verify the connection, then `Save changes`.
|
|
125
|
+
<details>
|
|
126
|
+
<summary>Setup instructions</summary>
|
|
110
127
|
|
|
111
|
-
|
|
112
|
-
1. **Newznab URL**: Use the `URL` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
113
|
-
2. **Newznab API** Use the `API Key` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
114
|
-
3. Press `Test` to verify the connection, then `Save changes`.
|
|
128
|
+
### SABnzbd+ Downloader
|
|
115
129
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
130
|
+
| Setting | Value |
|
|
131
|
+
|---------|-------|
|
|
132
|
+
| URL/Port | Your Quasarr host and port |
|
|
133
|
+
| API Key | Your Quasarr API Key |
|
|
134
|
+
| Category | `docs` |
|
|
120
135
|
|
|
121
|
-
|
|
122
|
-
1. Under `Folders` add the full Quasarr download path, typically `/downloads/Quasarr/`
|
|
123
|
-
2. If you do not do this, processing after the download will fail.
|
|
136
|
+
### Newznab Provider
|
|
124
137
|
|
|
138
|
+
| Setting | Value |
|
|
139
|
+
|---------|-------|
|
|
140
|
+
| URL | Your Quasarr URL |
|
|
141
|
+
| API | Your Quasarr API Key |
|
|
125
142
|
|
|
143
|
+
### Fix Import & Processing
|
|
126
144
|
|
|
127
|
-
|
|
145
|
+
**Importing:**
|
|
146
|
+
- Enable `OpenLibrary api for book/author information`
|
|
147
|
+
- Set Primary Information Source to `OpenLibrary`
|
|
148
|
+
- Add to Import languages: `, Unknown` (German users: `, de, ger, de-DE`)
|
|
128
149
|
|
|
129
|
-
|
|
150
|
+
**Processing → Folders:**
|
|
151
|
+
- Add your Quasarr download path (typically `/downloads/Quasarr/`)
|
|
130
152
|
|
|
131
|
-
|
|
132
|
-
> **Example:** Appending `/api/dropbox/` will only return releases where `dropbox` is explicitly mentioned in a link.
|
|
133
|
-
> **Caution:** If a mirror is not available at a hostname, the release will be ignored or the download will fail. Use this option carefully.
|
|
153
|
+
</details>
|
|
134
154
|
|
|
135
|
-
|
|
136
|
-
1. Open `Activity` → `Queue` → `Options`
|
|
137
|
-
2. Enable `Release Title`
|
|
155
|
+
---
|
|
138
156
|
|
|
139
157
|
# Docker
|
|
140
158
|
|
|
@@ -173,8 +191,6 @@ Use this only in case you can't run the docker image.
|
|
|
173
191
|
`pip install quasarr`
|
|
174
192
|
|
|
175
193
|
* Requires Python 3.12 or later
|
|
176
|
-
* Requires [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
177
|
-
* Requires [JDownloader 2](https://jdownloader.org/download/index) with [My JDownloader](https://my.jdownloader.org/)
|
|
178
194
|
|
|
179
195
|
```
|
|
180
196
|
--port=8080
|
|
@@ -205,10 +221,11 @@ Most feature requests can be satisfied by:
|
|
|
205
221
|
- Still having an issue? Provide a detailed report [here](https://github.com/rix1337/Quasarr/issues/new/choose)!
|
|
206
222
|
- There are no hostname integrations in active development unless you see an open pull request
|
|
207
223
|
[here](https://github.com/rix1337/Quasarr/pulls).
|
|
208
|
-
- Pull requests are welcome
|
|
224
|
+
- **Pull requests are welcome!** Especially for popular hostnames.
|
|
225
|
+
- A short guide to set up required dev services is found in [/docker/dev-setup.md](https://github.com/rix1337/Quasarr/blob/main/docker/dev-setup.md)
|
|
209
226
|
- Always reach out on Discord before starting work on a new feature to prevent waste of time.
|
|
210
227
|
- Please follow the existing code style and project structure.
|
|
211
|
-
- Anti-bot measures must be circumvented fully by Quasarr. Thus you will need to provide a working solution for new
|
|
228
|
+
- Anti-bot measures must be circumvented fully by Quasarr. Thus, you will need to provide a working solution for new
|
|
212
229
|
CAPTCHA types by integrating it in the Quasarr Web UI.
|
|
213
230
|
- Please provide proof of functionality (screenshots/examples) when submitting your pull request.
|
|
214
231
|
|
|
@@ -238,6 +255,8 @@ Image access is limited to [active monthly GitHub sponsors](https://github.com/u
|
|
|
238
255
|
|
|
239
256
|
## 🐋 Docker Login
|
|
240
257
|
|
|
258
|
+
⚠️ **Before logging in, the image will not download.**
|
|
259
|
+
|
|
241
260
|
```bash
|
|
242
261
|
echo "GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
|
|
243
262
|
````
|
|
@@ -245,14 +264,10 @@ echo "GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
|
|
|
245
264
|
* `USERNAME` → your GitHub username
|
|
246
265
|
* `GITHUB_TOKEN` → the token you just created
|
|
247
266
|
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
⚠️ **Before logging in, the image will not download.**
|
|
251
|
-
|
|
252
|
-
---
|
|
253
|
-
|
|
254
267
|
## ▶️ Run SponsorsHelper
|
|
255
268
|
|
|
269
|
+
⚠️ **Without a valid GitHub token linked to an active sponsorship, the image will not run.**
|
|
270
|
+
|
|
256
271
|
```bash
|
|
257
272
|
docker run -d \
|
|
258
273
|
--name='SponsorsHelper' \
|
|
@@ -268,8 +283,6 @@ docker run -d \
|
|
|
268
283
|
ghcr.io/rix1337-sponsors/docker/helper:latest
|
|
269
284
|
```
|
|
270
285
|
|
|
271
|
-
### Required Parameters
|
|
272
|
-
|
|
273
286
|
* `QUASARR_URL` → Local URL of Quasarr
|
|
274
287
|
* `DEATHBYCAPTCHA_TOKEN` → [DeathByCaptcha](https://deathbycaptcha.com/register?refid=6184288242b) account token
|
|
275
288
|
* `GITHUB_TOKEN` → Classic GitHub PAT with the scopes listed above
|
|
@@ -277,30 +290,3 @@ docker run -d \
|
|
|
277
290
|
* `NX_USER` / `NX_PASS` → NX account credentials
|
|
278
291
|
* `JUNKIES_USER` / `JUNKIES_PASS` → Junkies account credentials
|
|
279
292
|
* `JUNKIES_HOSTER` → Preferred hoster for Junkies links
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
⚠️ **Without a valid GitHub token linked to an active sponsorship, the image will not run.**
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
# Development Setup for Pull Requests
|
|
287
|
-
|
|
288
|
-
To test your changes before submitting a pull request:
|
|
289
|
-
|
|
290
|
-
**Run Quasarr with the `--internal_address` parameter:**
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
python Quasarr.py --internal_address=http://<host-ip>:<port>
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
Replace `<host-ip>` and `<port>` with the scheme, IP, and port of your host machine.
|
|
297
|
-
The `--internal_address` parameter is **mandatory**.
|
|
298
|
-
|
|
299
|
-
**Start the required services using the `dev-services-compose.yml` file:**
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
CONFIG_VOLUMES=/path/to/config docker-compose -f docker/dev-services-compose.yml up
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
Replace `/path/to/config` with your desired configuration location.
|
|
306
|
-
The `CONFIG_VOLUMES` environment variable is **mandatory**.
|
|
@@ -17,97 +17,115 @@ Alternatively, follow the link from the console output (or discord notification)
|
|
|
17
17
|
Quasarr will confidently handle the rest. Some CAPTCHA types require [Tampermonkey](https://www.tampermonkey.net/) to be installed in your browser.
|
|
18
18
|
|
|
19
19
|
# Instructions
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
|
|
21
|
+
1. Set up and run [FlareSolverr 3](https://github.com/FlareSolverr/FlareSolverr)
|
|
22
|
+
2. Set up and run [JDownloader 2](https://jdownloader.org/download/index)
|
|
23
|
+
3. Configure the integrations below
|
|
24
|
+
|
|
25
|
+
> **Finding your Quasarr URL and API Key**
|
|
26
|
+
> Both values are shown in the console output under **API Information**, or in the Quasarr web UI.
|
|
23
27
|
|
|
24
28
|
---
|
|
25
29
|
|
|
26
30
|
## FlareSolverr
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
|
|
32
|
+
Provide your FlareSolverr URL during setup. Include the version path:
|
|
33
|
+
```
|
|
34
|
+
http://192.168.1.1:8191/v1
|
|
35
|
+
```
|
|
30
36
|
|
|
31
37
|
---
|
|
32
38
|
|
|
33
39
|
## Quasarr
|
|
34
40
|
|
|
35
|
-
|
|
41
|
+
> ⚠️ Quasarr requires at least one valid hostname to start. It does not provide or endorse any specific sources, but community-maintained lists are available:
|
|
42
|
+
|
|
43
|
+
🔗 **[quasarr-hostnames.pages.dev](https://quasarr-hostnames.pages.dev)** — third-party guide for finding hostnames
|
|
36
44
|
|
|
37
|
-
|
|
38
|
-
> - The setup will guide you through the process of providing valid hostnames for Quasarr to scrape.
|
|
39
|
-
> - Do **not** ask for help here if you do not know which hostnames to use. Picking them is solely your responsibility.
|
|
40
|
-
> - You may check sites like [Pastebin](https://pastebin.com/search?q=hostnames+quasarr) for user‑submitted suggestions.
|
|
45
|
+
📋 Alternatively, browse community suggestions via [pastebin search](https://pastebin.com/search?q=hostnames+quasarr) (login required).
|
|
41
46
|
|
|
42
47
|
---
|
|
43
48
|
|
|
44
49
|
## JDownloader
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
> ⚠️ If using Docker:
|
|
52
|
+
> JDownloader's download path must be available to Radarr/Sonarr/LazyLibrarian with **identical internal and external path mappings**!
|
|
53
|
+
> Matching only the external path is not sufficient.
|
|
48
54
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
>
|
|
55
|
+
1. Start and connect JDownloader to [My JDownloader](https://my.jdownloader.org)
|
|
56
|
+
2. Provide your My JDownloader credentials during Quasarr setup
|
|
57
|
+
|
|
58
|
+
<details>
|
|
59
|
+
<summary>Fresh install recommended</summary>
|
|
60
|
+
|
|
61
|
+
Consider setting up a fresh JDownloader instance. Quasarr will modify JDownloader's settings to enable Radarr/Sonarr/LazyLibrarian integration.
|
|
62
|
+
|
|
63
|
+
</details>
|
|
53
64
|
|
|
54
65
|
---
|
|
55
66
|
|
|
56
67
|
## Radarr / Sonarr
|
|
57
68
|
|
|
58
|
-
Set
|
|
69
|
+
> ⚠️ **Sonarr users:** Set all shows (including anime) to the **Standard** series type. Quasarr cannot find releases for shows set to Anime/Absolute.
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
Add Quasarr as both a **Newznab Indexer** and **SABnzbd Download Client** using your Quasarr URL and API Key.
|
|
73
|
+
|
|
74
|
+
<details>
|
|
75
|
+
<summary>Show download status in Radarr/Sonarr</summary>
|
|
59
76
|
|
|
60
|
-
|
|
61
|
-
2. **API Key**: Use the `API Key` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
62
|
-
3. Leave all other settings at their defaults.
|
|
77
|
+
**Activity → Queue → Options** → Enable `Release Title`
|
|
63
78
|
|
|
64
|
-
>
|
|
65
|
-
|
|
66
|
-
>
|
|
79
|
+
</details>
|
|
80
|
+
|
|
81
|
+
<details>
|
|
82
|
+
<summary>Restrict results to a specific mirror</summary>
|
|
83
|
+
|
|
84
|
+
Append the mirror name to your Newznab URL:
|
|
85
|
+
```
|
|
86
|
+
/api/dropbox/
|
|
87
|
+
```
|
|
88
|
+
Only releases with `dropbox` in a link will be returned. If the mirror isn't available, the release will fail.
|
|
89
|
+
|
|
90
|
+
</details>
|
|
67
91
|
|
|
68
92
|
---
|
|
69
93
|
|
|
70
94
|
## LazyLibrarian
|
|
71
95
|
|
|
72
|
-
> **
|
|
73
|
-
> - This feature is experimental and may not work as expected.
|
|
74
|
-
> - Quasarr cannot help you with metadata issues, missing covers, or other LazyLibrarian problems.
|
|
75
|
-
> - Please report issues when one of your hostnames yields results through their website, but not in LazyLibrarian.
|
|
76
|
-
|
|
77
|
-
Set up Quasarr as a **SABnzbd+ Downloader**
|
|
96
|
+
> ⚠️ **Experimental feature** — Report issues when a hostname returns results on its website but not in LazyLibrarian.
|
|
78
97
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
3. **SABnzbd Category**: Use `docs` to ensure LazyLibrarian does not interfere with Radarr/Sonarr.
|
|
82
|
-
4. Press `Test SABnzbd` to verify the connection, then `Save changes`.
|
|
98
|
+
<details>
|
|
99
|
+
<summary>Setup instructions</summary>
|
|
83
100
|
|
|
84
|
-
|
|
85
|
-
1. **Newznab URL**: Use the `URL` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
86
|
-
2. **Newznab API** Use the `API Key` from the **API Information** section of the console output (or copy it from the Quasarr web UI).
|
|
87
|
-
3. Press `Test` to verify the connection, then `Save changes`.
|
|
101
|
+
### SABnzbd+ Downloader
|
|
88
102
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
103
|
+
| Setting | Value |
|
|
104
|
+
|---------|-------|
|
|
105
|
+
| URL/Port | Your Quasarr host and port |
|
|
106
|
+
| API Key | Your Quasarr API Key |
|
|
107
|
+
| Category | `docs` |
|
|
93
108
|
|
|
94
|
-
|
|
95
|
-
1. Under `Folders` add the full Quasarr download path, typically `/downloads/Quasarr/`
|
|
96
|
-
2. If you do not do this, processing after the download will fail.
|
|
109
|
+
### Newznab Provider
|
|
97
110
|
|
|
111
|
+
| Setting | Value |
|
|
112
|
+
|---------|-------|
|
|
113
|
+
| URL | Your Quasarr URL |
|
|
114
|
+
| API | Your Quasarr API Key |
|
|
98
115
|
|
|
116
|
+
### Fix Import & Processing
|
|
99
117
|
|
|
100
|
-
|
|
118
|
+
**Importing:**
|
|
119
|
+
- Enable `OpenLibrary api for book/author information`
|
|
120
|
+
- Set Primary Information Source to `OpenLibrary`
|
|
121
|
+
- Add to Import languages: `, Unknown` (German users: `, de, ger, de-DE`)
|
|
101
122
|
|
|
102
|
-
|
|
123
|
+
**Processing → Folders:**
|
|
124
|
+
- Add your Quasarr download path (typically `/downloads/Quasarr/`)
|
|
103
125
|
|
|
104
|
-
|
|
105
|
-
> **Example:** Appending `/api/dropbox/` will only return releases where `dropbox` is explicitly mentioned in a link.
|
|
106
|
-
> **Caution:** If a mirror is not available at a hostname, the release will be ignored or the download will fail. Use this option carefully.
|
|
126
|
+
</details>
|
|
107
127
|
|
|
108
|
-
|
|
109
|
-
1. Open `Activity` → `Queue` → `Options`
|
|
110
|
-
2. Enable `Release Title`
|
|
128
|
+
---
|
|
111
129
|
|
|
112
130
|
# Docker
|
|
113
131
|
|
|
@@ -146,8 +164,6 @@ Use this only in case you can't run the docker image.
|
|
|
146
164
|
`pip install quasarr`
|
|
147
165
|
|
|
148
166
|
* Requires Python 3.12 or later
|
|
149
|
-
* Requires [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
|
|
150
|
-
* Requires [JDownloader 2](https://jdownloader.org/download/index) with [My JDownloader](https://my.jdownloader.org/)
|
|
151
167
|
|
|
152
168
|
```
|
|
153
169
|
--port=8080
|
|
@@ -178,10 +194,11 @@ Most feature requests can be satisfied by:
|
|
|
178
194
|
- Still having an issue? Provide a detailed report [here](https://github.com/rix1337/Quasarr/issues/new/choose)!
|
|
179
195
|
- There are no hostname integrations in active development unless you see an open pull request
|
|
180
196
|
[here](https://github.com/rix1337/Quasarr/pulls).
|
|
181
|
-
- Pull requests are welcome
|
|
197
|
+
- **Pull requests are welcome!** Especially for popular hostnames.
|
|
198
|
+
- A short guide to set up required dev services is found in [/docker/dev-setup.md](https://github.com/rix1337/Quasarr/blob/main/docker/dev-setup.md)
|
|
182
199
|
- Always reach out on Discord before starting work on a new feature to prevent waste of time.
|
|
183
200
|
- Please follow the existing code style and project structure.
|
|
184
|
-
- Anti-bot measures must be circumvented fully by Quasarr. Thus you will need to provide a working solution for new
|
|
201
|
+
- Anti-bot measures must be circumvented fully by Quasarr. Thus, you will need to provide a working solution for new
|
|
185
202
|
CAPTCHA types by integrating it in the Quasarr Web UI.
|
|
186
203
|
- Please provide proof of functionality (screenshots/examples) when submitting your pull request.
|
|
187
204
|
|
|
@@ -211,6 +228,8 @@ Image access is limited to [active monthly GitHub sponsors](https://github.com/u
|
|
|
211
228
|
|
|
212
229
|
## 🐋 Docker Login
|
|
213
230
|
|
|
231
|
+
⚠️ **Before logging in, the image will not download.**
|
|
232
|
+
|
|
214
233
|
```bash
|
|
215
234
|
echo "GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
|
|
216
235
|
````
|
|
@@ -218,14 +237,10 @@ echo "GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
|
|
|
218
237
|
* `USERNAME` → your GitHub username
|
|
219
238
|
* `GITHUB_TOKEN` → the token you just created
|
|
220
239
|
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
⚠️ **Before logging in, the image will not download.**
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
240
|
## ▶️ Run SponsorsHelper
|
|
228
241
|
|
|
242
|
+
⚠️ **Without a valid GitHub token linked to an active sponsorship, the image will not run.**
|
|
243
|
+
|
|
229
244
|
```bash
|
|
230
245
|
docker run -d \
|
|
231
246
|
--name='SponsorsHelper' \
|
|
@@ -241,8 +256,6 @@ docker run -d \
|
|
|
241
256
|
ghcr.io/rix1337-sponsors/docker/helper:latest
|
|
242
257
|
```
|
|
243
258
|
|
|
244
|
-
### Required Parameters
|
|
245
|
-
|
|
246
259
|
* `QUASARR_URL` → Local URL of Quasarr
|
|
247
260
|
* `DEATHBYCAPTCHA_TOKEN` → [DeathByCaptcha](https://deathbycaptcha.com/register?refid=6184288242b) account token
|
|
248
261
|
* `GITHUB_TOKEN` → Classic GitHub PAT with the scopes listed above
|
|
@@ -250,30 +263,3 @@ docker run -d \
|
|
|
250
263
|
* `NX_USER` / `NX_PASS` → NX account credentials
|
|
251
264
|
* `JUNKIES_USER` / `JUNKIES_PASS` → Junkies account credentials
|
|
252
265
|
* `JUNKIES_HOSTER` → Preferred hoster for Junkies links
|
|
253
|
-
---
|
|
254
|
-
|
|
255
|
-
⚠️ **Without a valid GitHub token linked to an active sponsorship, the image will not run.**
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
# Development Setup for Pull Requests
|
|
260
|
-
|
|
261
|
-
To test your changes before submitting a pull request:
|
|
262
|
-
|
|
263
|
-
**Run Quasarr with the `--internal_address` parameter:**
|
|
264
|
-
|
|
265
|
-
```bash
|
|
266
|
-
python Quasarr.py --internal_address=http://<host-ip>:<port>
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
Replace `<host-ip>` and `<port>` with the scheme, IP, and port of your host machine.
|
|
270
|
-
The `--internal_address` parameter is **mandatory**.
|
|
271
|
-
|
|
272
|
-
**Start the required services using the `dev-services-compose.yml` file:**
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
CONFIG_VOLUMES=/path/to/config docker-compose -f docker/dev-services-compose.yml up
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
Replace `/path/to/config` with your desired configuration location.
|
|
279
|
-
The `CONFIG_VOLUMES` environment variable is **mandatory**.
|