880 B
880 B
icyws
A tiny ices2 input module. It does two things:
- Runs a WebSocket server on port 8765 that broadcasts the current song as
Artist - Title - When run with no arguments, picks a random song from a newline‑separated file list, prints its full path, extracts metadata, and tells the WebSocket server
Usage
Start the server
icyws serve --bind :8765 --allow-origin *
Pick a random track
ICYWS_TRACKLIST=tracks.txt icyws
This prints the selected file path to stdout and broadcasts the now‑playing info.
Track list format
A plain text file with one absolute file path per line.
WebSocket endpoint
Connect to: /ws/radio
Receives: Artist - Title whenever a new song is selected
Announcement endpoint (internal)
If the websocket (serve mode) is live, picker mode POSTs to:
/announce
Build
go build -o icyws