A fast, native-feeling desktop client for YouTube Music.
Built with Tauri, React and TypeScript for Windows, macOS and Linux.
Important
Zuno is an independent, unofficial project. It is not affiliated with, authorized by, sponsored by, or endorsed by YouTube or Google.
Zuno brings YouTube Music to the desktop as a focused application rather than a browser tab. There is no official YouTube Music desktop client, so the goal here is a polished one that feels native on each platform and stays fast with large libraries.
If you find it useful, starring the repo genuinely helps.
| Home β dark | Home β light |
| The "Made for you" carousel, quick destinations and recently played. The carousel can be hidden from Settings. | |
| Lyrics β dark | Lyrics β light |
| Lines fade with distance from the one playing. Click any line to seek, nudge the timing if a match is a little off, and see which source the words came from. | |
| Artist β dark | Artist β light |
| Popular tracks and every release, filtered by albums, singles or EPs β with subscribe and shuffle in reach. | |
| Queue β dark | Library β light |
| The queue separates what you added by hand from what came next on its own. The library marks what is liked, downloaded and explicit at a glance. | |
Search is one keystroke away β Ctrl+Space from anywhere, across artists, songs, playlists and albums.
Settings β quality, lyrics source, translation and text size, downloads and the disk cap.
| Feature | Description |
|---|---|
| Multiple tabs | Each tab keeps its own queue, volume and player state β start an album in one, browse in another, and the first keeps playing |
| Offline downloads | Save a song, a selection, or a whole album or playlist, with its own quality setting and a size cap you control |
| Mini player | A morphing capsule that appears when you tab away; drag it anywhere, hover to expand |
| Synced lyrics | Line-by-line lyrics that follow the song β not available on the official web client. Click a line to jump to it, nudge the timing when a match is slightly off, and pick which source is tried first |
| Lyrics translation | Show a translation under each line, in any of twenty languages, with an adjustable text size |
| Like & dislike | Rate from the row, the player or the right-click menu; ratings sync to your YouTube Music account |
| Batch actions | Shift/ctrl-select rows, then queue, download, add to a playlist or remove them together |
| Queue control | Collapses to an artwork rail β end the queue here, build a queue from here, shuffle, clear |
| Recommendations | Personalised suggestions plus a "surprise me" shuffle β hide the carousel if you would rather open on your library |
| Browse | Explore, charts, moods and genres, and podcasts, with mood chips you can drill into |
| Local files | Folders from your own machine sit alongside your library, with a tag editor for fixing metadata |
| Discord & Last.fm | Rich Presence and scrobbling, each toggleable straight from the toolbar |
| Account support | Sign in with Google for your library and playlists, and switch between channels on the same account |
| Playlist import/export | Save a playlist to a file and bring it back, on this machine or another |
| Desktop integration | Media keys, minimise to tray, launch at login, remembered window position, rebindable shortcuts |
| Light & dark themes | Follows the OS by default, or pin either one β plus a reduced-motion mode |
| Caching | Playlists, lyrics and artwork are cached, so revisits are instant |
| Auto-updates | Signed updates install themselves; no manual re-download |
Grab the newest installer from the latest release for Windows, macOS or Linux.
On Arch and derivatives, install from the AUR instead:
yay -S zuno # or: paru -S zuno- Windows β primary supported platform.
- macOS β supported.
- Linux β supported.
Install the .deb or .rpm, or zuno from the AUR on Arch. These use your system's
WebKitGTK and GStreamer, which is what playback runs through.
No sound, or "YouTube player error 5". Playback decodes through GStreamer, and most distros do not install the codecs YouTube needs by default:
# Debian, Ubuntu, Mint
sudo apt install gstreamer1.0-libav gstreamer1.0-plugins-base gstreamer1.0-plugins-good
# Fedora (gstreamer1-libav needs RPM Fusion enabled)
sudo dnf install gstreamer1-libav gstreamer1-plugins-base gstreamer1-plugins-good
# Arch β installed automatically with the AUR package
sudo pacman -S gst-libav gst-plugins-base gst-plugins-goodConfirm they registered:
gst-inspect-1.0 | grep -E 'avdec_aac|avdec_h264'A blank grey window. A WebKitGTK rendering problem under Wayland, most often on Nvidia. Launch with one of:
WEBKIT_DISABLE_DMABUF_RENDERER=1 zuno
WEBKIT_DISABLE_COMPOSITING_MODE=1 zuno
GDK_BACKEND=x11 zunoOpen the app log from Settings β Library β Application log for anything else, and attach
it to an issue. The desktop environment, display server and distro all help a lot for Linux
bugs. The log also lives at ~/.local/share/com.zuno.desktop/logs/current.log.
"Apple is not able to verify that it is free from malware." The macOS builds are not signed with an Apple Developer ID, so Gatekeeper blocks them on first launch. This is not a malware finding β it means the binary is unsigned. Drag Zuno to Applications, then either:
- Open System Settings β Privacy & Security, scroll to the message about Zuno, and click Open Anyway, or
- clear the quarantine flag yourself:
xattr -dr com.apple.quarantine /Applications/Zuno.appBuild from source if you would rather not trust a prebuilt binary.
macOS may also show a Keychain prompt. Zuno stores one encryption key in its own Keychain entry, and your YouTube Music session is encrypted with that key before being written to the app data directory. Choosing Always Allow avoids repeated prompts.
If you do not intend to sign in to YouTube Music, you can decline it.
- Node.js LTS and npm
- Rust and Cargo
- C++ build tools (MSVC on Windows)
- Microsoft Edge WebView2 Runtime (Windows)
The Tauri CLI ships in the project's dev dependencies β no global install needed.
npm install
npm run tauri dev
npm run tauri buildThe docs/ folder documents the codebase:
docs/architecture.mdβ system overview and module mapdocs/frontend.mdβ React structure, styling tokens, icon conventionsdocs/backend.mdβ Rust commands and the IPC surface
Contributions are welcome. Fork the repo, branch, test locally, and open a pull request describing what changed and why. For larger changes, open an issue first so the approach can be discussed.
By contributing you agree to the Contributor License Agreement.
Zuno is a fork of JustAnotherMusicClient by 2latemc, used under the Apache 2.0 licence. The original project did the hard groundwork of getting YouTube Music working on the desktop.
If you want to support the original author, they accept donations on Ko-fi.
Zuno provides no downloading functionality. It is a client for audio listening, with theming and interface additions.
Zuno interacts with YouTube and YouTube Music. Access to those services remains governed by their own terms, policies, availability and regional restrictions.
Zuno does not host or claim ownership of music, videos, artwork, metadata, or any other content supplied by third parties. Rights in that content remain with their respective owners.
The project is not intended to circumvent access controls, geographic restrictions, advertising, paid service requirements, or content licensing, nor to enable unauthorised downloading, copying, redistribution or public performance of third-party content.
YouTube and YouTube Music are trademarks of Google LLC. All other trademarks are the property of their respective owners. References to third-party products describe compatibility and integration only.