team-spotube /spotube
🎧 Open source music streaming app! Available for both desktop & mobile!
★ 50,707⑂ 2,391
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