SimoHypers/limusic

▲ 37 stars today★ 850⑂ 58

Feature rich, native desktop, YouTube Music client. Tauri + Rust + SvelteKit, ad-free playback through libmpv, Last.fm scrobbling and Discord Rich Presence, no Electron.

About SimoHypers/limusic

SimoHypers/limusic is an open-source project on GitHub, mainly written in Rust. Feature rich, native desktop, YouTube Music client. Tauri + Rust + SvelteKit, ad-free playback through libmpv, Last.fm scrobbling and Discord Rich Presence It currently holds 850 stars and 58 forks with 61 open issues, and was last pushed on 2026-10-06 (repository created 2026-07-03).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #86 with 37 new stars today.

GitHub Repository Details

Repository SimoHypers/limusic · default branch master · size 7412 KB · watchers 3 · source: GitHub REST API and repository README

README

https://github.com/SimoHypers/limusic/blob/HEAD/Limusic Banner

Limusic

A native desktop YouTube Music client. Rust + Tauri, ad-free, no Electron.

https://github.com/SimoHypers/limusic/blob/HEAD/GitHub Downloads https://github.com/SimoHypers/limusic/blob/HEAD/GitHub Release https://github.com/SimoHypers/limusic/blob/HEAD/License https://github.com/SimoHypers/limusic/blob/HEAD/Translation status https://github.com/SimoHypers/limusic/blob/HEAD/Website https://github.com/SimoHypers/limusic/blob/HEAD/Support on Ko-fi
https://github.com/SimoHypers/limusic/blob/HEAD/Linux https://github.com/SimoHypers/limusic/blob/HEAD/Windows https://github.com/SimoHypers/limusic/blob/HEAD/macOS https://github.com/SimoHypers/limusic/blob/HEAD/Tauri 2 https://github.com/SimoHypers/limusic/blob/HEAD/Rust

Limusic talks directly to YouTube's internal API and plays audio through libmpv: no bundled browser runtime, no backend server, no ads in the audio. It started as a desktop rebuild of the playback engine behind Metrolist, an Android YouTube Music client, and grew from there.

---

Features

---

Screenshots

https://github.com/SimoHypers/limusic/blob/HEAD/A playlist in Limusic https://github.com/SimoHypers/limusic/blob/HEAD/Word-by-word synced lyrics
https://github.com/SimoHypers/limusic/blob/HEAD/An album page, colors adapted to the cover https://github.com/SimoHypers/limusic/blob/HEAD/A music video playing with lyrics alongside

---

Download & Install

| Platform | File | Notes | |---|---|---| | Windows | -setup.exe | Self-updating | | Windows | .msi | Plain installer, no auto-update | | Linux | .AppImage | Self-updating, libmpv bundled. Needs glibc 2.39+ (Ubuntu 24.04+, Debian 13+, Fedora 40+) | | Linux (Ubuntu/Debian) | .deb | No self-update. Needs Ubuntu 24.04+ / Debian 13+; apt pulls libmpv and webkit2gtk in for you | | Linux (Fedora/RHEL) | .rpm | Needs mpv-libs installed (sudo dnf install mpv-libs). No updates, redownload each release | | macOS (Apple Silicon) | .dmg | Self-updating. Unsigned, so the first launch needs xattr -dr com.apple.quarantine /Applications/limusic.app | | macOS (Intel) | none | Build from source, see docs/BUILD-PLATFORMS.md |

Community-maintained repositories, packaged and updated by their maintainers rather than by this project:

| Platform | Source | Notes | |---|---|---| | Linux (Arch) | AUR | yay -S limusic-bin. Maintained by @xiryuudev, updates through pacman | | Linux (Fedora COPR) | COPR | sudo dnf copr enable oguzkarayemis/limusic then sudo dnf install limusic. Maintained by @oguzkarayemis, updates through dnf | | Linux (openSUSE Tumbleweed) | OBS | sudo zypper ar -p 100 https://download.opensuse.org/repositories/home:/itachi_re/openSUSE_Tumbleweed/home:itachi_re.repo then sudo zypper install limusic. Maintained by @itachi-re, updates through zypper. The repo carries the maintainer's other packages too, so -p 100 keeps it below the distro repos |

---

Scrobbling & Discord

Both live in the title bar, next to the window controls.

opens, and you're connected for good. Tracks scrobble at the halfway point (or four minutes, whichever comes first), which is Last.fm's own rule. Click again to see the account or disconnect. it's live. The card shows the track, artist, album art, and a progress bar, and it disappears when you pause.

Building from source? Last.fm needs your own API credentials, and they are not in the repo. Get a key at last.fm/api/account/create and put it in src-tauri/lastfm.keys:

LIMUSIC_LASTFM_API_KEY=your_key
LIMUSIC_LASTFM_API_SECRET=your_secret

Without that file everything else still builds and runs; the Last.fm button just reports that it isn't configured.

---

Lyrics

Open the panel with the microphone button in the player bar, next to the queue button. It takes the same side of the window as the queue, so opening one closes the other.

Lyrics come from Boidu first, then LRCLIB, then YouTube Music's own timed lyrics, then Netease, QQ Music and Kugou, falling back to plain un-timed text when nobody has a synced version. Matching is keyed on the track's exact length, because popular songs exist as several cuts and the wrong one drifts a few seconds out. Results are cached locally, so replaying a track is instant.

Boidu is the only source with per-word timings, which is what lets a line highlight word by word as it's sung. It goes first for that reason, which also means it is asked about every track you play. Turn it off in Settings -> Playback -> Word-by-word lyrics and the other sources still provide line-by-line lyrics. Netease additionally supplies translations, shown under each line where it has them.

Note that YouTube Music's lyrics are licensed per region and are missing entirely in some countries. Where that's the case, LRCLIB does all the work.

---

Listen Together

Synced listening with friends. Everyone streams their own audio from YouTube; the room only relays play/pause, seeks, track changes and the queue. One person hosts the relay:

cargo run -p sync-server        # plain WebSocket on 0.0.0.0:8080

Front it with something that terminates TLS (Tailscale Funnel, Cloudflare Tunnel), then paste the wss:// URL into the Listen Together panel in the app. Rooms have join codes and the host approves every join and every track suggestion.

---

Translations

Limusic is translated on Weblate, who host it free for libre projects.

https://github.com/SimoHypers/limusic/blob/HEAD/Translation status

English, Spanish, French, Turkish, Brazilian Portuguese and Indonesian ship in the app today. The badge above shows everything else in flight.

Translate on Weblate, not in a pull request. Weblate keeps its own copy of the catalogs, so a hand-edited fr.json merged here puts the two out of sync and the next batch of real translations arrives as a merge conflict. Weblate also shows you the English original beside each string, flags translations that went stale when the English changed, checks that placeholders like {count} survived, and opens the pull request for you. Anything untranslated falls back to English in the app, so partial work is safe to submit.

en.json is the exception: it changes by hand, in whichever pull request changes the UI. Switching a finished language on in the picker takes a small code change too, see CONTRIBUTING.md.

---

Building from Source

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

Windows and macOS instructions live in docs/BUILD-PLATFORMS.md.

---

How It Works, Briefly

official client identities and falling back between them when one fails. cipher and the n parameter) and by BotGuard attestation. Limusic runs that JavaScript where it expects to run, in a real webview, hidden, and never lets any of it touch the UI process. loudness normalization from YouTube's own metadata. contacts YouTube itself.

---

Star History

https://github.com/SimoHypers/limusic/blob/HEAD/Star History Chart

---

Support

Limusic is free and stays free. If it earned a coffee, ko-fi.com/simohypers is where to leave one.

---

Disclaimer

This project is not affiliated with, funded, authorized, endorsed by, or in any way associated with YouTube, Google LLC, or any of their affiliates and subsidiaries.

All trademarks, service marks, and intellectual property rights referenced in this project belong to their respective owners.

---

License

GPL-3.0

GitHub Stars & Activity

850Stars
58Forks
61Open issues
RustLanguage

GitHub Popularity

GitHub stars850
Forks58
Open issues61
Primary languageRust
LicenseGPL-3.0
Stars gained today37
Created2026-07-03
Last pushed2026-10-06

Trending History

Daily boardrank #86 · ▲ 37 stars

Related GitHub Projects

1

rustdesk / rustdesk

Rust★ 125,290⑂ 19,486▲ 81 stars
→
2

rtk-ai / rtk

Rust★ 82,568⑂ 5,251▲ 101 stars
→
3

block / buzz

Rust★ 35,623⑂ 4,709▲ 41 stars
→
4

cjpais / Handy

Rust★ 33,060⑂ 3,075▲ 114 stars
→
5

AprilNEA / OpenLogi

Rust★ 23,004⑂ 767▲ 163 stars
→
6

rui314 / mold

Rust★ 17,513⑂ 573▲ 168 stars
→
7

RyanCodrai / turbovec

Rust★ 17,344⑂ 1,485▲ 26 stars
→
8

FalkorDB / FalkorDB

Rust★ 7,714⑂ 517▲ 343 stars
→

More Trending Repositories