This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Affected surfaces
ReleasePort's take
Moderate signalThe v0.9 release resolves the ALTCHA captcha‑related 403 errors for SquidWTF Qobuz and introduces end‑to‑end release‑type metadata across all supported providers.
Why it matters: Fixes Qobuz download failures caused by captcha (severity 50) and adds unified metadata, improving reliability and discoverability of tracks from Deezer, SquidWTF, Yandex, etc.; severity 50 indicates moderate impact.
Summary
AI summaryFixes the SquidWTF Qobuz 403 caused by ALTCHA captcha and adds release-type metadata across providers.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Automatic captcha bypass for SquidWTF Qobuz using new SquidWTFCaptchaSolver service Automatic captcha bypass for SquidWTF Qobuz using new SquidWTFCaptchaSolver service Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Transparent retry of download requests with fresh captcha cookie on 403 Transparent retry of download requests with fresh captcha cookie on 403 Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Customizable SquidWTF Tidal instance and registry URLs Customizable SquidWTF Tidal instance and registry URLs Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Switched SquidWTF Tidal default registry from removed Monochrome to tidal-uptime Switched SquidWTF Tidal default registry from removed Monochrome to tidal-uptime Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Tidal song versions appended to track titles Tidal song versions appended to track titles Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Deduplication filters duplicate songs/albums in SquidWTF Tidal Deduplication filters duplicate songs/albums in SquidWTF Tidal Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
End-to-end release type metadata fetched from Deezer, SquidWTF, Yandex and written to file tags and OpenSubsonic API End-to-end release type metadata fetched from Deezer, SquidWTF, Yandex and written to file tags and OpenSubsonic API Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Yandex track/album versions appended to titles Yandex track/album versions appended to titles Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
New admin account for server-to-server actions via SUBSONIC_ADMIN_USERNAME/PASSWORD settings New admin account for server-to-server actions via SUBSONIC_ADMIN_USERNAME/PASSWORD settings Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Password-based authentication added to Subsonic credential capture alongside token-based auth Password-based authentication added to Subsonic credential capture alongside token-based auth Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fix getTranscodeDecision errors for external songs Fix getTranscodeDecision errors for external songs Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fix scrobble requests for unresolved external songs (previously silent success) Fix scrobble requests for unresolved external songs (previously silent success) Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fix playlists losing entries when cached songs are promoted to permanent storage Fix playlists losing entries when cached songs are promoted to permanent storage Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fix external songs added to a playlist not being permanently saved (#198) Fix external songs added to a playlist not being permanently saved (#198) Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Refactor | Medium |
Replaced ad-hoc Dictionary<string, string> credential passing with typed SubsonicCredentials record Replaced ad-hoc Dictionary<string, string> credential passing with typed SubsonicCredentials record Source: llm_adapter@2026-05-21 Confidence: low |
— |
Full changelog
Summary
Release v0.9 fixes the SquidWTF Qobuz 403 caused by the new ALTCHA proof-of-work captcha, adds release-type metadata across all providers (Deezer, SquidWTF, Yandex), introduces customizable SquidWTF Tidal instance/registry URLs, and ships an admin account for server-to-server actions.
What's New in v0.9
SquidWTF Qobuz: ALTCHA Captcha Solver
- Automatic Captcha Bypass: New
SquidWTFCaptchaSolverservice solves the ALTCHA v2 proof-of-work challenge that recently started gating/api/download-music. The captcha cookie is cached for 28 minutes and automatically refreshed on 403. - Transparent Retry: Download requests automatically retry once with a fresh captcha cookie when the server returns "Captcha required".
SquidWTF Tidal Improvements
- Custom Instance/Registry URL: New settings to point at a custom SquidWTF Tidal instance and registry instead of the bundled default.
- Default Registry Switch: Switched from removed Monochrome registry to
tidal-uptime; now also supports the object response format. - Song Version in Titles: Tidal song versions (e.g. remixes) are now appended to track titles instead of being lost.
- Deduplication: Filters out duplicate songs/albums and ensures consistent album artist IDs.
Release Type Metadata
- End-to-End Support: Album/single/EP/compilation type is now fetched from Deezer, SquidWTF (Qobuz & Tidal), and Yandex, then written to file tags (
MusicBrainzReleaseType) and exposed via the OpenSubsonicreleaseTypesfield — letting clients group albums by release type. - Yandex Track/Album Versions: Yandex
versionfield is appended to track and album titles (e.g.Track Name (Deluxe Edition)).
Admin Account
- Server-to-Server Actions: New
SUBSONIC_ADMIN_USERNAME/SUBSONIC_ADMIN_PASSWORDsettings let octo-fiesta perform admin-only actions against Navidrome (library scan, user lookup) without depending on the current user being an admin. - Password-Based Auth: Subsonic credential capture now supports password-based authentication in addition to token-based.
Deezer
- Paginated Tracklists: Albums with more than 25 tracks now load completely via the paginated
tracklistendpoint instead of being silently truncated. - Cover Art Propagation: Track cover URLs are now populated from album-level metadata when the paginated tracklist returns lightweight track objects.
Bug Fixes
- Fix
getTranscodeDecisionreturning errors for external songs - Fix scrobble requests for unresolved external songs (silent success instead of error)
- Fix playlists losing entries when cached songs are promoted to permanent storage
- Fix external songs added to a playlist not being permanently saved (#198)
Refactoring
- Replaced ad-hoc
Dictionary<string, string>credential passing with a typedSubsonicCredentialsrecord
Contributors
- @V1ck3s: ALTCHA captcha solver, Tidal custom instance/registry, transcode decision fix, password-based auth, playlist cache promotion fix, scrobble fix
- @m8tec: Release type metadata (Deezer/Tidal/Qobuz), Tidal song version in titles, SquidWTF duplicate filtering, album artist ID consistency
- @Flobenki: Admin account & server-to-server actions, playlist external song persistence, typed credentials refactor
- @Wolle-Lukas: Deezer paginated tracklist, album cover propagation
- @kamaeff: Yandex Music release type, Yandex track/album version metadata
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About octo-fiesta
A Subsonic API proxy server that transparently integrates multiple music streaming providers as sources.
Related context
Related tools
Beta — feedback welcome: [email protected]