Skip to content
GitCodMasterPublic

About

Fast, responsive YouTube Music desktop client — Tauri 2 + React

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

375 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YTubic

YTubic

A fast, responsive YouTube Music desktop client for Windows and Linux.

License: GPL-3.0

Download Join the YTubic Discord

Built as a reaction to the sluggish webview-wrapper experience — YTubic talks to YouTube's InnerTube API directly, renders its own UI, and caches aggressively, so navigation and playback feel instant.

YTubic — artist page with the player and synced lyrics

What this fork adds

This is a fork of NUber-dev/YTubic. On top of the original, it adds:

  • No Premium gating — drops upstream's YouTube Music Premium playback gate; streaming and caching are free for every account (the premium store is kept only for the sidebar's informational tier badge)
  • Linux support — native build with MPRIS media controls and Secret Service-encrypted cookie storage
  • Discord Rich Presence — shows what you're listening to on Discord
  • Last.fm integration — scrobbling, now-playing status, loved-tracks sync, and an account card
  • Playback persistence — resumes your last track at its saved playhead, and restores scroll position and the last-visited page on launch
  • Persistent track cache — cached tracks survive restarts, with real titles/artwork and a search box, bounded to a size limit
  • Customizable layout — resizable sidebar and side panel, home page section reordering, pin/hide playlists from the sidebar
  • Full library sidebar — automatically lists all your saved/created playlists alongside Liked Songs, not just manually pinned ones
  • Clickable artist/album links — jump to an artist or album from any card or the player
  • Cover art lightbox — click any cover to view it full-size
  • Full album release dates — shows the complete release date when YouTube provides one, not just the year
  • Artist page shuffle — shuffle an artist's entire catalogue, re-rolled and randomized each time
  • Other quality-of-life fixes — global lyrics on/off toggle, age-restricted track playback, home page refresh button, and various UI polish and performance improvements

Features

  • Fast and responsive UI — instant navigation with prefetch and aggressive caching; no page reloads, no spinners on every click
  • Flexible player layouts — dock the player at the bottom or as a right-side panel
  • Floating player widget — pop the player out into a compact always-on-top window
  • Synced lyrics — line-by-line synced lyrics from multiple providers (LRCLIB, Musixmatch, Genius)
  • Hi-res cover art — upgrades album covers to high-resolution studio art when available
  • Full library support — your playlists, likes, albums and artists; search with filters; radio/autoplay queues
  • Desktop integration — media keys and Now Playing controls (SMTC on Windows, MPRIS on Linux), tray icon, single instance
  • Auto-updates — the app updates itself from GitHub Releases, and keeps its yt-dlp copy fresh automatically

Disclaimer: YTubic is an unofficial client. It is not affiliated with, endorsed by, or sponsored by Google or YouTube. "YouTube" and "YouTube Music" are trademarks of Google LLC. The app streams audio through yt-dlp and may stop working at any time if YouTube changes its internals. Use at your own risk.

Install

Download the latest installer from the Releases page and run it.

  • Windows 10/11: run the .exe NSIS installer. Pick the x64 build, or the arm64 one on a Windows on ARM device.
  • macOS 10.15+ (beta): open the universal .dmg; the same build supports Apple Silicon and Intel. Login cookies are encrypted with a Keychain-backed key.
  • Linux (beta): install the .deb (Debian/Ubuntu), .rpm (Fedora/openSUSE), or run the AppImage directly. On Arch, install from the AUR (yay -S ytubic). Requires WebKitGTK 4.1 + GTK 3, plus the GStreamer "good" and "base" plugins (and gst-libav) — WebKitGTK decodes audio through GStreamer, so without autoaudiosink + the WebM/Opus/AAC demuxers there is no sound. These are pulled in automatically by the .deb/.rpm/AUR package; for the AppImage install them yourself, e.g. on Arch: sudo pacman -S webkit2gtk-4.1 gst-plugins-base gst-plugins-good gst-libav. Signing in also requires a desktop Secret Service provider such as GNOME Keyring or a compatible KWallet setup.
  • Updates: Windows, macOS and AppImage builds update themselves (Settings → General → Automatic Updates). AUR installs update with yay -Syu; .deb/.rpm installs re-download the new file from Releases — the in-app updater never touches system-owned files.
  • On first launch the app downloads its own copy of yt-dlp (~12 MB) into its data folder and keeps it updated automatically.
  • Signing in is optional: browse and playback work anonymously; sign in to get your library, likes, and playlists.

FAQ

Windows says "Windows protected your PC" (SmartScreen). The installer is not code-signed (certificates are expensive for a free open-source project). Click "More info" → "Run anyway". The source code is public — you can audit it or build it yourself.

My antivirus flags the app / yt-dlp. yt-dlp is a widely-used open-source downloader that some AV vendors false-positive on. The binary is downloaded directly from yt-dlp's official GitHub releases.

Will Google ban my account for using this? Browsing/search/library requests look identical to the official web app, and audio streaming is fully anonymous (never tied to your account). There are no known cases of accounts being banned for third-party players — but no guarantees; see the disclaimer above.

Playback suddenly stopped working. YouTube periodically changes its streaming internals. yt-dlp usually ships a fix within days, and the app picks it up automatically (it self-updates its yt-dlp copy every ~3 days). Restarting the app forces the check.

Stack

  • Shell: Tauri 2 (Rust backend, system webview — WebView2 on Windows)
  • Frontend: React 19 + TypeScript
  • Build: Vite 7
  • Styling: Tailwind CSS v4
  • Components: shadcn/ui (new-york style, neutral base, YouTube red accent)
  • Routing: TanStack Router (file-based, type-safe, prefetch on intent)
  • Data: TanStack Query
  • Client state: Zustand
  • Icons: lucide-react

Dev

pnpm install
pnpm tauri dev

Frontend-only dev (no Tauri window): pnpm dev.

Quality checks

pnpm test         # vitest unit tests (pure parsers/matchers)
pnpm lint         # eslint
pnpm format       # prettier --write
pnpm build        # tsc + vite production build

CI (.github/workflows/ci.yml) runs typecheck, lint, tests, build and cargo check on every push / PR.

Project layout

src/
├── routes/              # TanStack Router file-based routes
├── components/
│   ├── ui/              # shadcn primitives
│   ├── layout/          # AppShell, sidebar, topbar, player bar, floating player, lyrics
│   └── shared/          # Track list/rows, cards, shelves, context menus
├── lib/
│   ├── innertube/        # Raw InnerTube client + parsers
│   ├── lyrics/          # LRCLIB / Musixmatch / Genius sources + LRC parser
│   ├── store/           # Zustand stores
│   ├── audio-engine.ts  # Playback engine
│   ├── stream.ts        # Stream URL resolver (localhost proxy)
│   └── utils.ts         # cn() and friends
└── hooks/
src-tauri/               # Rust backend (axum stream proxy, cookies, tray)

Credits

License

GPL-3.0 — free to use, modify, and redistribute; derivative works must stay open source under the same license.

About

Fast, responsive YouTube Music desktop client — Tauri 2 + React

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages