shadowdaoandClaude Opus 5 d218f4c6f3 Surface API errors in the publish step
The publish job has never run successfully. When it failed on the v1.0.0
tag it reported "SyntaxError: Unexpected end of JSON input" from piping an
empty curl body into JSON.parse, which said nothing about the actual cause
(an unset token). An opaque failure there costs a full three-platform build.

Routes every call through a helper that captures the HTTP status and prints
the response body on 4xx/5xx. Also switches artifact iteration to while-read
so filenames with spaces cannot split, and dumps the artifact tree when
nothing matches.

Helper verified against the live API: existing tag resolves to its release
id, a missing tag reports HTTP 404 with the body and yields an empty id so
the create path runs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-28 20:39:45 -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%