feature/linux-appimage-build
Builds the Linux AppImage on a v* tag, runs the test suite first, and attaches the artifact to a Gitea release via the API (no third-party action, so nothing needs to be fetched from github.com at runtime). Guards that the tag matches package.json version: electron-builder names the artifact from package.json, so tagging v1.0.1 without bumping the manifest would otherwise publish an AppImage named 1.0.0. Requires a RELEASE_TOKEN secret and a registered act_runner; neither is set up yet, so this is inert until both exist. Co-Authored-By: Claude Opus 5 (1M context) <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.