Skip to content
This repository was archived by the owner on Aug 19, 2026. It is now read-only.

Repository files navigation

Spotufi Logo

Spotufi

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

Latest Version Downloads Stars MVVM Architecture Kotlin Language Jetpack Compose Material Design 3 Android 8.0+ License: GPLv3

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.


Features

Playback

  • Connect with your real Spotify account
  • Full playlist, album, and artist playback
  • Queue management with drag-to-reorder
  • Swipe-to-queue — swipe right on any song to add to queue
  • Batch queueing — add entire playlists/albums to queue at once
  • Session restore — queue and playback position saved across restarts
  • Sleep timer with precise control
  • Spotify radio / autoplay — queue continues with real recommendations
  • Spotify Web Player fallback (hidden WebView, episodes support)
  • Mini player with album-art powered colors
  • Slide-to-dismiss player gesture
  • Tri-state repeat: Off, One, All

Audio Quality

  • 4-tier quality: Low, Normal, High, Lossless
  • Separate quality settings for Wi-Fi, cellular, and downloads
  • Lossless FLAC streaming via Tidal/Qobuz/Amazon
  • Crossfade between tracks (0–12 seconds)
  • DJ-style mixing — real LPF/HPF frequency sweep
  • Gapless playback via Media3 ExoPlayer
  • Preloading for instant track switching
  • Stream URL caching — skips re-resolution for repeated plays
  • Persistent YouTube video candidate cache

Lyrics

  • Synced lyrics — Spotify's own color-lyrics
  • Full-screen lyrics view with auto-scroll
  • Tap any line to seek to that position
  • Fallback to LRCLIB for community-sourced lyrics
  • Background prefetch — lyrics ready before you ask
  • Persistent lyrics cache — cached on first fetch

Library & Sync

  • Full Spotify library — playlists, liked songs, saved albums
  • Create playlists and sync with your Spotify account
  • Real-time sync — likes, follows, playlist changes reflect on Spotify
  • Grid or list view for your library
  • Downloaded tracks for offline playback
  • Download search and sort (date, title, artist)
  • Automatic export to configurable Music/ folder
  • Configurable download folder name (Settings → Updates)
  • Clear all downloads with confirmation
  • Offline access — works without login
  • Local listening history with stats, top artists, top tracks
  • Interactive playback from history

Discovery

  • Personalized home feed from Spotify
  • Search tracks, albums, artists, and podcasts
  • Browse genre categories with curated playlists
  • Full artist pages — Jsoup-parsed biography with clickable links, discography, related artists
  • Verified artist badge on artist pages
  • Smart recommendation engine with taste profiling
  • Spotify Canvas video backgrounds

Interface

  • Material 3 design language
  • Album-art powered dynamic colors
  • Clean navigation — Home, Search, Library
  • Bottom sheet actions for every track
  • Alternative stream override (local files or YouTube URLs)
  • Android Auto support
  • Battery optimization bypass for background playback
  • Configurable update source with markdown release notes
  • Notification close button

Screenshots

Home Search Library Now Playing Song Options Playlist Queue Settings 1 Settings 2

Download

Obtainium GitHub
Get Spotufi on Obtainium Download from GitHub

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.


Build from Source

# Prerequisites: JDK 21 LTS, Android SDK 37
git clone https://github.com/fr0stb1rd/Spotufi.git
cd Spotufi
./gradlew assembleDebug

Debug APKs are output to app/build/outputs/apk/debug/ (one per ABI + universal).


Architecture

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 Structure

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

Known Deprecations

API Status Replacement Blocked By
ModalBottomSheet + rememberModalBottomSheetState @Deprecated in Material3 1.4.0 rememberBottomSheetState Material3 1.5.0 not yet stable in current BOM

Data Integrity

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).


Credits

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

Disclaimer

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.


License

GNU GPLv3

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 ⭐

About

Multi-source Android music player that connects your real Spotify account. Streams lossless FLAC via TIDAL/Qobuz/Amazon DASH, matches YouTube audio as fallback, downloads for offline playback with auto-export to Music/ folder, DJ-style crossfade with tri-state repeat, and Jsoup-parsed artist biographies with clickable links.

Resources

Stars

33 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages