fix/now-playing-scraper-and-quit
- Read the track from the Media Session API, falling back to the legacy ytmusic-player-bar scrape. Current YT Music layouts render no player bar, so the API and tray stayed empty while music played. Artist is also clean now (no "• views • likes" suffix). - Terminate connected WebSocket clients before closing the server. ws's close() waits for every client to disconnect, so quitting with an overlay open hung forever, leaving the window playing and the port bound. - Replace the tray icon with a valid PNG (the old one had a bad IDAT CRC and decoded to an empty image) and test that its chunks are well formed. - Create the tray before the window so early state updates are not dropped. - Bump version to 1.0.1. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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
- Add a Browser Source.
- URL:
http://localhost:9095/. - Width / height: match your scene (the overlay positions itself absolutely; 1920x1080 is fine).
- 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.