← Dev Projects

Open Source

Cadence

A YouTube Music desktop app that stays up. A resilient Electron client whose whole design center is a crash supervisor that auto-recovers from the failures that brick other wrappers.

Free · Windows · no admin required. Unsigned build — SmartScreen may warn on first run.

What it does

Cadence loads YouTube Music in a hardened desktop shell and adds the things a good music client should have — a system tray, global media keys, taskbar controls, a mini-player, desktop notifications, Discord Rich Presence, Last.fm scrobbling, and automatic ad-skipping.

But the point isn’t the features — it’s that it doesn’t fall over. Most desktop wrappers die quietly: the audio process crashes and the music goes silent, a frontend update detaches their player hook and the media keys stop working, or a failed load leaves a blank window. Cadence is built around a supervisor that detects every one of those and brings the music back on its own.

Built to be resilient

Audio-service crash → no sound

When Chromium’s audio process dies, music shows as “playing” but goes silent. Cadence catches it at the app level and re-syncs playback automatically.

Detached player hook → dead controls

Other wrappers hook YouTube Music’s private player object; a frontend change silently breaks media keys, now-playing, and scrobbling. Cadence reads the <video> element + MediaSession instead — stable APIs that survive redesigns.

Blank window → friendly recovery

A failed or aborted load can leave a black window with no way back. Cadence shows a “Reconnecting…” overlay and reloads with backoff, restoring your track and position.

Features

Crash Supervisor

A watchdog auto-recovers from renderer crashes, the Chromium audio-service heap-crash, hung/blank pages, and failed loads — with exponential backoff and a manual-retry fallback. It restores your track and position and shows a "Reconnecting…" overlay instead of a dead window.

Survives YTM Updates

The player bridge reads the <video> element and navigator.mediaSession — stable browser APIs — instead of hooking YouTube Music’s private player object. When Google reshuffles their frontend, controls keep working where other wrappers silently break.

Real Desktop Controls

System tray with now-playing and transport, global media keys, and Windows taskbar thumbnail buttons. The native now-playing card on the volume overlay works out of the box.

Mini-Player

A compact, always-on-top mini-player with album art, a scrubbable progress bar, like, and transport — drag it anywhere and keep it in the corner while you work.

Discord & Last.fm

Opt-in Discord Rich Presence shows what you’re listening to with a live progress bar, and Last.fm scrobbling tracks your plays. Both implemented on Node built-ins for a tiny, resilient dependency surface.

Ad-Skip & Resume

Automatically skips or fast-forwards video ads and hides promo banners, restores your last track after a restart or crash, and grants the storage permissions YouTube Music needs so sign-in and playback just work.

Stack

Electron 33Chromium 130Node.js 20electron-storeYouTube Music

Get it

One-click installer (Windows)

Download for Windows — v1.0.3

No admin required. The build is unsigned, so Windows SmartScreen may warn on first run — click “More info” then “Run anyway”.

Or build from source

git clone https://github.com/toyuvalo/cadencenpm install && npm start
Cadence — DVLCE Dev