Skip to content

Spooty

A personal Android client for Spotify with a fully native Jetpack Compose UI. A hidden, hardened WebView runs the real web player for login and audio, while the app adds the Spicetify Marketplace, visualizers, a free DJ, music videos and quietly-muted ads by default.

Why Spooty?

The official mobile apps push you down a curated path. Spooty hands you the real web player — every feature the browser gives you — and lets you bend it to your liking the same way Spicetify does on desktop.

📱 Native app

  • Home, Search, Library, Marketplace and Profile in Material 3
  • Liquid Glass, Glassmorph and Frutiger Aero styles
  • Or a phone-sized web view of the real web player

🧩 Spicetify Marketplace

  • Themes, extensions and snippets with previews and READMEs
  • Themes restyle the native app; extensions run on Spooty's Spicetify layer
  • Each extension is labelled with how well it works

🎛️ Player look

  • Visualizers that follow the real audio: bars, wave, spectrum, LED, ring, liquid…
  • Animated seek bars: Nyan Cat, Sonic, Pokémon and every playbar snippet
  • Cat Jam nodding along at the song's tempo

🎤 Song extras

  • Credits, song radio, downloads and sharing
  • Music videos: Spotify's own, or YouTube's
  • Spooty DJ: a set built from your music, introduced out loud

🔇 Quiet ad handling

  • Ads are muted by default, with no network interception
  • Optional skip behind an explicit toggle (guarded, rate-limited)

🔐 Hardened WebView

  • No file/universal access, no mixed content, no cleartext
  • SSL errors always cancelled
  • Every JS→native method is gated by @JavascriptInterface

Playback & background audio

The WebView's own Spotify <audio> element owns the real stream. A lightweight foreground MediaSession service mirrors the state to the OS, so you get lockscreen controls and uninterrupted background playback — without ever re-hosting the audio natively.

Personal use

Spooty is a personal, non-distributed app built to be sideloaded. It interacts with Spotify's web player in ways the official apps don't, so don't publish it. See the overview for the full picture.

**[Explore the docs →](overview.md)**  |  **[Build it yourself →](building.md)**