A dual-source remote control for Spotify (via Spicetify) and SoundCloud (via soundcloud-rpc) using WebSockets.
This project was written entirely by AI (OpenCode). I describe what I want, review the output, and run the tests — the AI does the coding. Full transparency.
- Python 3.9+
- spicetify-cli
- soundcloud-rpc (for SoundCloud support)
- Install the extensions —
python tools/install.py - Start the server —
python server/server.py - Open the web UI at
http://localhost:8888/
Or run setup.bat for a one-click install on Windows.
| Page | URL |
|---|---|
| Web UI | http://localhost:8888/ |
| Admin panel | http://localhost:8888/admin |
| OBS widget | http://localhost:8888/obs |
Configure the Spotify extension from the profile menu → Remote Config (set host/port at runtime, no file editing needed).
Edit data/config.json or use the admin panel at http://localhost:8888/admin.
Full reference: docs/troubleshooting.md
SoundCloud support works by scraping the SoundCloud DOM via soundcloud-rpc. This is inherently fragile — SoundCloud UI changes can break detection at any time. See docs/troubleshooting.md.
Synced and plain lyrics are fetched from LRCLIB and cached in a local SQLite database. The admin panel has a "Lyrics Fetch Timeout" setting and an "Enable Lyrics Fetching" toggle. Delete data/lyrics_cache.db to clear the cache.
Run the server as a background service (Windows or Linux): docs/service.md
- Stream Deck —
docs/stream-deck.md - Streamer.bot —
streamerbot-commands/README.md
No authentication. Designed for localhost-only use. Do not expose to the internet without a reverse proxy or firewall.
See CONTRIBUTING.md for setup, tests, linting, and release workflow.