Multi-source Android music player with lossless FLAC, YouTube matching, and Spotify sync.
Connect your real Spotify account. Lossless FLAC via public TIDAL backends, YouTube audio matching, offline downloads, crossfade, and DJ mixing.
Features • Screenshots • Download • Build • Architecture • Credits • License
Spotufi is a multi-source Android music player that combines Spotify syncing, lossless FLAC streaming (TIDAL monochrome DASH), and YouTube audio matching into one app. Play without a Spotify account, download for offline, export to MP3/FLAC, and enjoy DJ-style crossfade with tri-state repeat.
|
|
|
|
|
|
Notes: The trusted download source is listed above; we are not responsible for any risks you may encounter from downloading from other sources. Spotufi requires Android 8.0 (API 26) or higher.
# Prerequisites: JDK 21 LTS, Android SDK 37
git clone https://github.com/fr0stb1rd/Spotufi.git
cd Spotufi
./gradlew assembleDebugDebug APKs are output to app/build/outputs/apk/debug/ (one per ABI + universal).
Spotufi is built on a clean MVVM architecture with Jetpack Compose. All song lists are deduplicated at the data layer to prevent LazyColumn key collisions (see Data Integrity below).
| Layer | Technology |
|---|---|
| UI | Jetpack Compose + Material 3 (Compose BOM 2026.06.01 → Material3 1.4.0) |
| Navigation | Navigation Compose (16 routes) |
| DI | Hilt |
| Playback | Media3 ExoPlayer 1.10.1 — custom audio processors for crossfade, MediaLibraryService for Android Auto, Compose Material3 widgets (PlayPauseButton, PositionAndDurationText) |
| Lossless | SpotiFLAC — TIDAL monochrome DASH, Qobuz, Amazon |
| Networking | Ktor 3.5.1 (OkHttp engine) |
| Image Loading | Coil 3 — Compose integration, built-in disk caching |
| Serialization | kotlinx.serialization |
| Persistence | SharedPreferences with JSON — small key-value caches (lyrics, stream URLs, playback state, downloads, history) |
| YouTube | InnerTube API (NewPipe Extractor 0.26.3) — search, stream URL resolution |
| HTML Parsing | Jsoup 1.22.2 — artist biography parser |
| Module | Type | Purpose |
|---|---|---|
:app |
Android app (compileSdk 37) | Main application — UI, playback, data layer, DI, services |
:spotify |
JVM library | Spotify Web API client — auth, search, playlists, lyrics, FLAC resolver |
:innertube |
Android lib (compileSdk 34) | YouTube InnerTube API client — search, stream URL resolution |
| API | Status | Replacement | Blocked By |
|---|---|---|---|
ModalBottomSheet + rememberModalBottomSheetState |
@Deprecated in Material3 1.4.0 |
rememberBottomSheetState |
Material3 1.5.0 not yet stable in current BOM |
Spotufi enforces ID uniqueness across all song lists at the data layer. Every list — playlists, albums, liked songs, artist tracks, and the queue — is deduplicated by song.id via distinctBy { it.id } the moment it enters the app. This prevents LazyColumn key collisions from duplicate tracks, ensuring stable scrolling, animations, and drag-to-reorder without crashes.
All persistence uses SharedPreferences with JSON serialization — lightweight, synchronous, suitable for small key-value caches (stream URLs, download state, listening history, playback position, lyrics).
Spotufi builds on the work of several open-source projects:
- Meld — Spotify metadata + YouTube streaming layer
- Neptune — the original Jetpack Compose Spotify clone this app started from
- SpotiFLAC — lossless (FLAC) track resolving
- SimpMusic — crossfade / DJ-style audio filter processing
- Metrolist — base framework reference
- Spotui/Spotui — lossless FLAC, TIDAL DASH remux, server status, export/clear downloads
- H4zh4n/Spotui — persistent lyrics/playback caches, batch queueing, artist ID navigation, sleep timer, tri-state repeat, stream caching, battery optimization, downloads/playlist search & sort, history redesign, slide-to-dismiss player, PoToken fixes, HTML anchor & raw URL support in UpdatePrompt
- CyberSecSleuth/Spotui — artist biography with clickable links via Jsoup
This project is for educational purposes only. Spotify is a trademark of Spotify AB. Spotufi is not affiliated with or endorsed by Spotify AB. Users are encouraged to support artists by subscribing to Spotify Premium and purchasing music through official channels.
Spotufi is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
If Spotufi elevated your music experience, please consider giving us a ⭐









