From 0474f51f03aaddb178edfd848fa318fcaad3231f Mon Sep 17 00:00:00 2001 From: Josh Knapp Date: Sun, 26 Apr 2026 10:38:13 -0700 Subject: [PATCH] Update README for single-app architecture --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/README.md b/README.md index e69de29..469457a 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,46 @@ +# 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--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.