About this project

Stash is an Android app (8.0+) that mirrors your Spotify and YouTube Music libraries onto your phone. You connect each service with your own login cookies, choose the playlists and mixes to sync, and then either download tracks for offline playback or build a streaming index to save storage. It is GPL-3.0 licensed and distributed through GitHub Releases rather than the Play Store. Key capabilities described in the README: - Unified library: liked songs, playlists and daily mixes from Spotify and YouTube Music in one place, with track matching, a wrong-match flag, and optional mirroring of likes and history back to the services. - Two modes: Offline mode downloads tracks for permanent offline playback (roughly 9–15 GB for a medium library); Online mode builds a streamable local index with minimal storage but requires a connection. - Lossless: FLAC playback and downloads come from a source you own, such as your own Qobuz account or a self-hosted relay endpoint. Without one, playback falls back to AAC/Opus. The official build can use a project-run relay, while a self-built checkout has that path disabled. - Playback features: 5-band equalizer with presets, bass boost, virtualizer, crossfader, normalizer, and synced lyrics from LRCLIB. - Optional integrations: Last.fm scrobbling and recommendations, ListenBrainz scrobbling, MusicBrainz artist metadata, and Discord Rich Presence (off by default, with an explicit warning about Discord's self-bot policy). - Privacy: no Stash account server, no analytics or third-party crash reporters; credentials are stored on-device, encrypted with AES-256-GCM via Google Tink, and only sent back to the originating service. The README lists every host the app contacts and what each is used for. - Setup: in-app sign-in or manual cookie extraction for Spotify and YouTube Music; Discord setup via in-app login or pasted token. Background sync may require setting the app's battery usage to Unrestricted on some Android devices. - Build: Android Studio Hedgehog or later, JDK 17, Android SDK 35; `./gradlew assembleDebug`. The README also notes that the app downloads audio from YouTube and Spotify, which conflicts with those services' terms of service, and includes a legal disclaimer and takedown process. Community support is via GitHub Issues, a Discord server, and Crowdin for translations.