Stash v0.9.37 build 74 (Spotify + YouTube Music client)
Requirements: 8.0+
Overview: Stash is an offline-first Android music player that syncs your liked songs, playlists, daily mixes, and discover mixes from both Spotify and YouTube Music into a single unified local library. Tracks are downloaded as high-quality FLAC audio.
Your Spotify + YouTube Music library, offline in FLAC for free.
Stash is an offline-first Android music player that syncs your liked songs, playlists, daily mixes, and discover mixes from both Spotify and YouTube Music into a single unified local library. Tracks are downloaded as high-quality FLAC audio.
Stash is not an online streaming service. It’s a personal-library tool for people who already have Spotify or YouTube Music accounts and want their library available offline on their terms. Studio quality tracks, they’re yours to keep.
Features
● Offline everything — tracks download as high-quality lossless audio
● Bulletproof matching — finds the right version of tracks 99% of the time
● Custom playlists — create your own playlists and save tracks to them from anywhere.
● Spotify & YT sync preferences — choose exactly which playlists, liked songs, daily mixes, and discovery mixes to sync. Individual toggles for each. Don’t want Daily Mix 3? Turn it off.
● Expanded Spotify mix detection — Release Radar, Discover Weekly, On Repeat, Daylist, Repeat Rewind, Time Capsule, and Daily Mixes 1-6 are all automatically detected when available. Each gets its own toggle.
● Refresh vs Accumulate sync modes — mixes can either replace their contents each sync (Refresh) or stack new tracks on top of what’s already there (Accumulate). Your call.
● Parallel downloads — 8 simultaneous tracks. Background sync runs as a foreground service so it actually finishes with the phone locked.
● High-res album art
● Automatic update notifications — checks GitHub for new releases daily and notifies you when one is available.
● Full equalizer — 5-band EQ with presets, bass boost, and virtualizer
● Spotify sign-in built in — just log into Spotify inside the app
● Private by design — credentials encrypted with AES-256-GCM, no servers, no telemetry, nothing leaves your phone
● Free and open source — no subscriptions, no ads, GPL-3.0
★ Untouched apk with Original Hash Signature
★ Certificate MD5 digest: 51572c31db0cf8ec5d499a5da790aebf
★ No changes were applied
➡ Languages: Full Multi Languages
➡ CPU architectures: arm64-v8a, armeabi-v7a, x86, x86_64
➡ Screen DPIs: 160dpi, 240dpi, 320dpi, 480dpi, 640dpi
What’s New:
Stash v0.9.37 — Mixes streaming + Now Playing fixes + YT scrobbler restored
Mixes go stream-only
Every new Stash Mix discovery from Last.fm now lands as a stream-only
TrackEntity instead of an automatic download. Existing downloaded
Mix tracks are untouched and keep playing from local file — only new
discoveries change. Tap a stream-only Mix track while offline and a
Snackbar reads “Online only — connect to play this track”; the queue
auto-skips stream-only tracks silently when offline mid-playback, then
pauses with “End of offline Mix” when nothing playable remains. The
v0.9.30 streaming engine handles the actual playback; this just diverts
the discovery worker from the download pipeline.
Now Playing favorites + download finally work on streaming tracks (#105)
The v0.9.30 streaming engine had been synthesising a track id as
videoId.hashCode().toLong() for stream-only tracks, and every Now
Playing action that wrote to the DB (heart, download, notification
heart) was FK-violating against the synthetic id. Symptoms: “Couldn’t
add to Liked Songs” toast, notification heart crashing the service,
download button lying with “Queued for download” while never downloading.
Now Playing actions now resolve the synthetic id to a real Room PK via
a new ensureTrackPersisted upsert, mirroring SearchDownloadCoordinator.
The notification heart is wrapped in try/catch so a future regression
can’t kill the process. queueDownload returns Boolean so the toast tells
the truth. Liked Songs card count + duration display also fixed for
stream-only tracks.
YT Music play history sync restored
The “Send plays to YouTube Music” feature had silently stopped writing
to play history. Two layered InnerTube regressions: (1) YouTube migrated
the unfiltered /search response shape — searchCanonical now sends a
Songs filter param to get the legacy musicShelfRenderer shape back;
(2) YouTube’s anti-bot RELOAD_PAGE challenge rejected bare WEB_REMIX
/player requests — getPlaybackTracking now includes
playbackContext.contentPlaybackContext.signatureTimestamp to pass the
freshness check. Pending plays are scrobbling end-to-end again.
SyncStatusCard relocated from Home to Sync tab (#103)
At-a-glance library stats now live at the top of the Sync tab where
library-status info naturally belongs, freeing vertical space on Home.
Pure relocation — no new fields, no removed counts.
Co-Authored-By: Claude Opus 4.7 (1M context) [email protected]
This app has no advertisements
More Info:https://github.com/rawnaldclark/Stash
Download Instructions:
https://ouo.io/3skgoI
Mirrors:
https://ouo.io/0EjKcX
https://ouo.io/ggvGLZ … 1.apk.html