Skip to content

v.5.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:47
· 38 commits to main since this release
e206616

Docker:

docker pull ghcr.io/rix1337/quasarr:latest

Python:

uv tool upgrade quasarr

Note

Resolving interactive Google reCAPTCHA challenges requires flaresolverr-next v3.5.3 or newer, configured with a 2Captcha API key (TWOCAPTCHA_API_KEY). If Google blocks you, FlareSolverr automatically delegates the reCAPTCHA token solve to 2Captcha, injects the response, and returns the clearance session to Quasarr.

Overview

RM recently started presenting interactive reCAPTCHA security gates on challenged requests. While FlareSolverr automatically attempts to click the initial checkbox, server-grade and datacenter IPs often trigger Google's interactive image challenge. To reliably pass these gates without blocking manual searches or automated grabs, this PR routes RM's challenge clearance through FlareSolverr (with 2Captcha fallback support), updates session cookie persistence so solves are reused across requests, and introduces configurable solver timeout settings.

Changes

  • Source Challenge Handling:
    • Declared requires_flaresolverr = True on RM in the Web UI so the capability chip is displayed and status checks reflect the dependency.
    • Routed RM responses encountering HTTP 403 or challenge pages through LazyFlareSolverrSession.
    • Stored clearance cookies (rapidmzzz) into RM's long-lived requests.Session so subsequent searches and link extractions bypass challenges directly without repeated solver calls.
    • Solves one security check at a time: parallel RM requests wait for the running solve and reuse its cookie instead of each starting their own.
    • Keeps a removed release (404) behind the security check out of hostname issues, and reports a missing FlareSolverr as a security check instead of an unexpected page layout.
    • Logs a short note when a solve outlasts the Radarr/Sonarr search deadline, since that search comes back without RM and the next one answers normally.
  • Configurable Solver Timeout & Slow Mode:
    • Added FLARESOLVERR_REQUEST_TIMEOUT_SECONDS (90s fast / 180s slow mode) to timeout slow mode definitions and exposed it under Timeouts in the Web UI settings.
    • Guarded RM's FlareSolverr session calls with max(timeout, FLARESOLVERR_REQUEST_TIMEOUT_SECONDS) so 2Captcha workers have enough headroom to finish solving without premature timeouts.
  • Web UI & Security Quality-of-Life:
    • Masked Radarr and Sonarr API key inputs with type="password" in both the main settings view and setup forms so configured secrets are not immediately displayed on screen.
  • Agent Rules:
    • Clarified in AGENTS.md that only crypter CAPTCHAs are reserved for userscripts; security checks in front of source sites go through FlareSolverr.
  • Version Bump:
    • Bumped version to 5.3.0 (minor version bump).

Verification

  • Tested live solving against RM using the updated FlareSolverr container with 2Captcha configured. Verified end-to-end token solve, form submission, and clearance cookie return.
  • Verified persistent session lifecycle across 5 consecutive live requests (movie feed, show feed, 2 searches, and release link extraction), all passing directly in <1.5s with HTTP 200 and zero re-challenges.
  • Ran full unit test suite (573 tests passed), ruff linting/formatting, and privacy gate checks (check_trail.py and trail check).

Changelog:

  • e206616 - Merge pull request #488 from rix1337/dev
  • 171f2ca - Route RM security checks through FlareSolverr and expose solver timeout

Attestation