shadowdaoandClaude Opus 5 72485d44ff Build each platform on its own native runner
Splits the release workflow into linux, windows and macos jobs feeding a
single publish job. The publish step is separate so parallel builds cannot
race to create the release and fail on a duplicate tag.

Windows now builds natively, so signAndEditExecutable no longer has to be
disabled. That flag was suppressing rcedit, which is what embeds the icon
and version resources -- the v1.0.0 exe shipped with the stock Electron
icon as a result. Also adds an NSIS installer alongside the portable zip.

macOS gains a dmg target, which cannot be produced off macOS. Builds stay
unsigned pending a Developer ID, with CSC_IDENTITY_AUTO_DISCOVERY disabled
so electron-builder builds unsigned instead of failing on a real Mac.

Nothing cross-builds now; all three runners must be registered before
tagging, since a job with no matching runner queues silently.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-28 18:53:24 -07:00
2026-04-26 10:40:55 -07:00

What's That Music

A desktop app that plays YouTube Music and serves a now-playing overlay for OBS.

The app is a single Electron window that loads music.youtube.com. It also runs a small HTTP/WebSocket server on localhost:9095 that streams the current track to any connected overlay client. Point OBS (or any browser) at http://localhost:9095/ to see the overlay.

Run from source

cd desktop-client
npm install
npm start

The app opens. Sign in to YouTube Music. Play a track. Visit http://localhost:9095/ in another browser to see the overlay.

Build a Windows zip

cd desktop-client
npm run build -- --win zip --x64

Output: desktop-client/dist/WhatsThatMusic-<version>-win.zip. Unzip on a Windows machine and run WhatsThatMusic.exe. The app is unsigned, so SmartScreen will warn on first launch — click "More info → Run anyway."

OBS setup

  1. Add a Browser Source.
  2. URL: http://localhost:9095/.
  3. Width / height: match your scene (the overlay positions itself absolutely; 1920x1080 is fine).
  4. Make sure the app is running before OBS loads the source.

Tests

cd desktop-client
npm test

Runs the node:test unit suite (desktop-client/tests/).

Layout

  • desktop-client/ — the Electron app (main entry, server module, preload scraper, tray).
  • overlay/ — static HTML + JS the bundled server serves at /.
  • docs/superpowers/ — design and plan documents.
S
Description
No description provided
Readme
316 KiB
v1.0.1
Latest
2026-10-04 18:37:51 +00:00
Languages
JavaScript 64.8%
HTML 23.9%
Shell 11.3%