SimoHypers/limusic

Media & Design

A desktop YouTube Music client built with Rust and Tauri that streams ad-free audio through libmpv, for listeners who want a native player.

1,550
102
Rust
GPL-3.0
4 months old

What it is

Limusic is a native desktop client for YouTube Music, written in Rust with Tauri and a SvelteKit front end. It talks directly to YouTube's InnerTube API instead of embedding a browser runtime or running a backend server, and plays audio through libmpv. The result is ad-free streaming, gapless transitions, on-disk caching and loudness normalization using YouTube's own metadata. The UI process never contacts YouTube itself; the Rust core handles API calls, and the obfuscated stream-protection JavaScript runs hidden inside a webview isolated from the interface.

Beyond playback, it covers YouTube Music account sign-in (Google login or pasted cookie, multiple accounts), library write actions such as likes and playlist editing, play history, synced lyrics with optional word-by-word timing, optional music videos, a queue with radio continuation, Last.fm and ListenBrainz scrobbling, Discord Rich Presence, OS media keys, a tray, and a Mini Player. The intended users are people who already listen to YouTube Music on desktop and want a lighter, native-feeling player with scrobbling and richer controls.

Getting started

Builds are published on the releases page. Install the package for your platform:

Platform File Notes
Windows -setup.exe self-updating
Windows .msi no auto-update
Linux .AppImage self-updating, libmpv bundled, needs glibc 2.39+
Linux (Ubuntu/Debian) .deb apt pulls in libmpv and webkit2gtk
Linux (Fedora/RHEL) .rpm requires mpv-libs (sudo dnf install mpv-libs)
macOS (Apple Silicon) .dmg unsigned; first launch needs xattr -dr com.apple.quarantine /Applications/limusic.app

Intel Macs have no prebuilt binary and must build from source per BUILD-PLATFORMS.md. Arch, Fedora COPR and openSUSE Tumbleweed packages exist as community-maintained repos (for example yay -S limusic-bin on Arch), updated by their maintainers rather than the project.

After launching, sign in to YouTube Music from within the app, then search and play. Optional integrations: click the Last.fm mark in the title bar and approve the app in the browser; paste a ListenBrainz user token under Settings ▸ Scrobbling; toggle Discord Rich Presence from its icon. Lyrics open from the microphone button in the player bar.

To build on Fedora:

sudo dnf install mpv-libs mpv-libs-devel webkit2gtk4.1-devel \
  gcc gcc-c++ make openssl-devel librsvg2-devel
cd ui && pnpm install && cd ..
cargo tauri build

Self-hosted Listen Together rooms require running the relay: cargo run -p sync-server, which serves plain WebSocket on 0.0.0.0:8080; put a TLS terminator in front and paste the resulting wss:// URL into the app's Listen Together panel.

Constraints and limitations

  • Distribution targets: Windows, Linux and Apple Silicon macOS are the supported release targets; Intel macOS builds are source-only.
  • Linux package requirements differ: AppImage needs glibc 2.39+ (Ubuntu 24.04+, Debian 13+, Fedora 40+); the RPM path requires mpv-libs; .deb and .rpm packages do not self-update.
  • The macOS .dmg is unsigned, so the quarantine attribute must be cleared before first launch.
  • Building from source without src-tauri/lastfm.keys (your own LIMUSIC_LASTFM_API_KEY and LIMUSIC_LASTFM_API_SECRET from the Last.fm API page) still builds; only the Last.fm button reports as unconfigured.
  • Word-by-word lyrics depend on Boidu, which is queried for every track by default; the setting can be disabled, and other sources provide line-level lyrics only. YouTube Music's own lyrics are licensed per region and may be absent entirely in some countries.
  • Last.fm scrobbles at the halfway point or four minutes, whichever comes first; ListenBrainz requires a verified email on a new account.
  • The project is not affiliated with YouTube or Google, and is licensed GPL-3.0.

HotRepo's take

Limusic entered HotRepo's Rust monthly list on 2026-11-01 with 1,550 stars (872 gained in the month) and a best position of 20. That is the only snapshot available, so it establishes a single-date fact rather than a trend line; no all-language GitHub daily rank has been recorded for the project. The language-scoped monthly figure does show that a native Rust YouTube Music client — a category where the usual answer is an Electron app or the web player — found an audience in that window. Whether that holds beyond one month is not yet visible in the data.

Written by AI from the project's README, updated . The project's own docs are the source of truth.