github rawnaldclark/Stash v0.9.0-beta1
Stash v0.9.0-beta1

latest releases: v0.9.93, v0.9.92, v0.9.91...
pre-release3 months ago

feat: 0.9.0-beta1 — lossless FLAC integration (beta)

Stash can now download tracks as FLAC instead of Opus when a track
exists in Qobuz's catalogue. Mainstream commercial music gets pulled
as 16-bit/44.1kHz or 24-bit/up-to-192kHz lossless from Qobuz via
the public squid.wtf proxy; everything else falls through to the
existing yt-dlp pipeline unchanged.

This is a beta because the captcha gate is still manual — see "Known
limitations" below. The whole pipeline is correct and proven on real
tracks; the rough edge is purely the cookie workflow.

What's new

  • Lossless source: Qobuz via qobuz.squid.wtf. Off by default —
    flip Settings → "Lossless downloads (experimental)" on. When on,
    every track first asks Qobuz; on a confident artist+title match
    it streams the signed FLAC URL to disk through the existing
    metadata-tagging + file-organising pipeline. On a miss (no
    match, captcha expired, server hiccup) it silently falls through
    to yt-dlp — lossless never surfaces a hard error.
  • FLAC quality badge. Small Hi-Res icon next to the title in
    every track row: library, playlists, mini player, now playing,
    queue, long-press menu. Visible only on lossless files.
  • FLAC library filter. Library → Tracks → new "FLAC" chip
    alongside All / YouTube / Spotify. Filter to your lossless tracks
    in one tap.
  • MAX quality tier (yt-dlp). Experimental tier that asks YouTube
    Music for format 141 (AAC LC 256 kbps) on the music-specific
    InnerTube clients before falling back to Opus 160. Real yield
    depends on Google's gating — the Library Health screen lets you
    see what you actually got.
  • Library Health screen. Settings → Library Health. Format and
    bitrate breakdown of every downloaded file. Useful for sanity-
    checking what MAX or lossless mode is actually pulling.
  • Duration reconciliation. Track lengths now come from the
    file's container after download, not just Spotify's metadata.
    When yt-dlp matches a different cut (live vs studio, extended vs
    edit), the player shows the real length instead of the wrong one.
  • Home: full supporter messages. Ko-fi messages no longer
    truncate at one line — the full quote is visible.

How to use lossless mode

  1. Settings → flip "Lossless downloads (experimental)" on.
  2. Open https://qobuz.squid.wtf/ in your browser, click Download
    on any track, solve the captcha when prompted.
  3. DevTools → Application → Cookies → qobuz.squid.wtf → copy the
    captcha_verified_at value (a long number).
  4. Paste it into Settings → "squid.wtf captcha cookie" field.
  5. Sync. Tracks Qobuz has show up as .flac with the Hi-Res badge.

Known limitations

  • Captcha cookie expires every ~30 minutes server-side. When
    downloads start falling back to yt-dlp again, repaste a fresh
    value. WebView-based auto-harvest is the next iteration and
    would eliminate the manual step entirely.
  • squid.wtf goes down sometimes. When it does, every lossless
    attempt 403s and falls through to yt-dlp. Sync still completes;
    you just don't get FLAC during the outage.
  • Library coverage is mixed. Mainstream commercial tracks
    usually match. YouTube user-uploads ("wolverine9391 - Frankie
    Valli cover", "Capitol Records - fade into you 🖤 #mazzystar")
    correctly fall through to yt-dlp because Qobuz indexes by real
    artist, not the YouTuber's handle.
  • No Qobuz subscription required for users. squid.wtf runs on
    the operator's own paid sub. If you'd rather use your own Qobuz
    account, that's a planned future toggle — not in this beta.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com


Install

Download the .apk below and open it on your Android device. If you've got a previous Stash release installed, this upgrades in place — your library, sync history, and settings are preserved.

Requires: Android 8.0 (API 26) or newer.

See the README for first-time setup.

Full Changelog: v0.8.1...v0.9.0-beta1

Don't miss a new Stash release

NewReleases is sending notifications on new releases.