team-spotube /spotube

🎧 Open source music streaming app! Available for both desktop & mobile!

★ 50,707⑂ 2,391
KotlinCreated 2021-02-14spotube.cc/
50,707
stars
+20
2,391
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

A cross-platform extensible open-source music streaming platform.
Bring your own music metadata/playlist/audio-source with plugins created by community or by
yourself. A small step towards the decentralized music streaming era!











---

!Spotube Desktop
!Spotube Mobile



 🌃 Features

- 🧩 Plugin powered, supports any platform or custom music service through plugins.
- 🗺️ Community driven plugins for popular platforms or create your own.
- ⬇️ Freely downloadable tracks with tagged metadata.
- 🖥️ 📱 Cross-platform support.
- 🪶 Small size & less data usage.
- 🕒 Time synced lyrics regardless of the plugin support.
- ✋ No telemetry, diagnostics or user data collection.
- 🚀 Native performance.
- 📖 Open source/libre software.
- 🔉 Playback control is done locally, not on the server.

 ⬇️ Download

Download Spotube from the Official Website: https://spotube.cc

 🔄 Nightly Builds

Grab the latest nightly builds of
Spotube from the Offical Website.



🕳️ Building from source [Click to expand]




Spotube is a Compose Multiplatform app.

 1. Prerequisites

- JDK 21 to run Gradle (the Gradle daemon JDK and GraalVM are provisioned automatically).
- Rust (rustup + cargo), for the composeApp library built
  through Gobley.
- Android SDK, only for Android builds.
- ComposeNativeWebview, which isn't on
  Maven Central yet. Clone it at the commit pinned as COMPOSE_WEBVIEW_COMMIT in 
  spotube-release-binary.yml and run
  ./gradlew publishToMavenLocal in it.
- Linux only: runtime libraries, including VLC. Needed to run the app, including
  :composeApp:run:

  | Distro                   | Command                                                                                                                                                          |
  | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Debian/Ubuntu            | sudo apt-get install libvlc5 vlc-plugin-base libwebkit2gtk-4.1-0 libgtk-3-0 libasound2 libgl1 libxtst6 libxi6 libxrender1                                      |
  | Fedora                   | sudo dnf install vlc-libs webkit2gtk4.1 gtk3 alsa-lib mesa-libGL libXtst libXi libXrender (vlc-libs needs RPM Fusion) |
  | Arch / CachyOS / Manjaro | sudo pacman -S vlc webkit2gtk-4.1 gtk3 alsa-lib libglvnd libxtst libxi libxrender                                                                              |
  | openSUSE                 | sudo zypper install libvlc5 libwebkit2gtk-4_1-0 libgtk-3-0 libasound2 Mesa-libGL1 libXtst6 libXi6 libXrender1                                                  |

  On Ubuntu 24.04+/Debian 13, libgtk-3-0 and libasound2 are libgtk-3-0t64 and libasound2t64;
  apt resolves this itself.

 2. Run in development

Desktop (JVM), fastest edit/run loop
bash
./gradlew :composeApp:run


Android debug APK
bash
./gradlew :composeApp:assembleStableDebug

 Use ./gradlew :composeApp:assem

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON