Stash v0.9.35 — Metadata + album-art embedding
The downloads problem
For a while now, files downloaded by Stash have shown up blank in
third-party players. Open one in Plex, Foobar, Symfonium, your car
stereo — you'd see "Unknown Artist", no album grouping, no cover.
Inside Stash it looked fine because Stash already knew the metadata
from the sync. But the file itself was untagged, so anything that
wasn't Stash had nothing to read.
That ends in v0.9.35. Every file the pipeline produces now leaves
with clean TITLE / ARTIST / ALBUMARTIST / ALBUM / ISRC / ENCODER
tags and an embedded cover-art image. Pull a track off the device,
drop it into any tag-aware player, and it'll group, sort, and
display exactly like a track ripped from the source.
Backfill on first launch
The new tagging only runs on new downloads, but your existing
library shouldn't be left behind. On your first launch after this
update, Stash queues every previously-downloaded track for a
one-time re-tag pass. A small "Re-tagging library — N / M" banner
shows up on Home so you can watch the progress; when it finishes
you'll see "Library re-tagged" for a moment and the banner goes
away. The whole pass runs in the background — you can keep using
the app, play music, sync, whatever.
If you have tracks stored on a removable SD card or other SAF
location, those can't be re-tagged in place. The banner will note
"X tracks on external storage will be tagged on next download" so
you know what's still pending; the next time those tracks come
through the pipeline, they get the new tags.
Cover art
M4A files (yt-dlp path) and FLAC files (lossless path) both get
the album cover embedded. Open the file in Plex and the artwork
renders the way it should.
Opus files are a known gap. ffmpeg's Opus muxer doesn't accept
attached pictures, so v0.9.35 writes the text tags for Opus tracks
but skips the cover. Proper Opus art support uses a different
embedding format (METADATA_BLOCK_PICTURE base64) and is tracked
separately as #95.
Diagnostics
When the embed step fails for any reason, Stash now captures the
full ffmpeg stderr output. If you ever hit a tagging issue and
file a bug, the log will tell us exactly what ffmpeg complained
about instead of just "embed failed".
Closes #76 (part 1) and #90 on rawnaldclark/Stash.
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.9.34...v0.9.35