explaingit

krtirtho/spotube

46,337DartAudience · vibe coderComplexity · 3/5MaintainedLicenseSetup · moderate

TLDR

Free, open-source music player for desktop and mobile that streams from community plugins instead of a single service, with no ads or tracking.

Mindmap

mindmap
  root((Spotube))
    What it does
      Stream music freely
      Play across devices
      Download tracks
      Sync lyrics
    How it works
      Plugin architecture
      Community audio sources
      Native playback
      No server dependency
    Use cases
      Replace paid streaming
      Linux music player
      Privacy-focused listening
      Custom music setup
    Tech stack
      Dart and Flutter
      Native compilation
      Cross-platform code
    Key features
      Zero telemetry
      Lightweight app
      Embedded metadata
      Time-synced lyrics

Things people build with this

USE CASE 1

Listen to music for free without paying for a streaming subscription or dealing with ads.

USE CASE 2

Stream music on Linux where official music apps are unavailable or limited.

USE CASE 3

Download your favorite tracks with metadata tags embedded for offline listening.

USE CASE 4

Build custom music plugins to connect Spotube to your own audio sources or services.

Tech stack

DartFlutterAndroidiOSWindowsmacOSLinux

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Flutter SDK setup and platform-specific tooling (Android SDK or Xcode depending on target platform).

Open-source software available under a permissive license allowing free use, modification, and distribution for any purpose including commercial use.

In plain English

Spotube is an open-source music streaming application that lets you listen to music across desktop and mobile devices without paying for a streaming subscription. It works by pulling music metadata, playlists, and audio from community-built plugins rather than storing any music itself, the app acts as a front-end player that delegates the heavy lifting to whichever audio sources the plugins connect to. The core idea is that the app itself is completely platform-agnostic. You bring your own music source via plugins created by the community or by yourself. This plugin architecture is the foundation of the whole project, it means Spotube is not tied to any single music service and can theoretically support any platform someone builds a plugin for. Audio playback and controls happen entirely on your device, not on a remote server, keeping the experience fast and private. Other notable features include time-synced lyrics (the words scroll in time with the song), the ability to freely download tracks with embedded metadata tags, and zero telemetry or data collection of any kind. The app is notably lightweight because it avoids using Electron, a common cross-platform framework that tends to produce large, memory-hungry apps, opting instead for Flutter, which compiles to native code on each platform. Someone would use Spotube if they want a free, open-source alternative to paying music streaming services, value their privacy, or want to listen to music on Linux where official clients are often limited or absent. It is also appealing to technically inclined users who want to customize their music experience through plugins. The tech stack is Dart and Flutter, which allows the same codebase to run natively on Android, iOS, Windows, macOS, and Linux. It is available through standard package managers and app stores, including F-Droid on Android.

Copy-paste prompts

Prompt 1
How do I set up Spotube on my Windows PC and connect it to a music source plugin?
Prompt 2
Show me how to create a custom Spotube plugin that pulls music from a specific audio source.
Prompt 3
What are the steps to download a song in Spotube and keep the metadata tags?
Prompt 4
How can I contribute to Spotube's plugin ecosystem or improve the app's features?
Prompt 5
Explain how Spotube's plugin architecture works and why it doesn't need a central music service.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.