icyws

a tiny ices2 input module+websocket
Download | Log | Files | Refs | README | LICENSE

commit a5f884ba99738084711d16894f08cc7b83e822ed
parent 643d3e0ad41896d00ac5caca7b934915b8082089
Author: amrfti <andrew@kloet.net>
Date:   Tue,  9 Dec 2025 21:23:39 -0500

add ices2 sample config block

Diffstat:
MREADME.md | 19+++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md @@ -1,7 +1,7 @@ # 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 +* When run with no arguments: picks a random song from a newline-separated file list, prints the path to stdout. Then, extracts metadata and tells the WebSocket server ## Usage @@ -15,20 +15,27 @@ icyws serve --bind :8765 --allow-origin * ICYWS_TRACKLIST=tracks.txt icyws ``` -This prints the selected file path to stdout and broadcasts the now‑playing info. +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. +### ices2 config +```xml +<input> + <module>playlist</module> + <param name="type">script</param> + <param name="program">ICYWS_TRACKLIST=/etc/ices2/playlist.txt /usr/local/bin/icyws</param> +</input> +``` + ### 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 -``` +If the websocket (serve mode) is live, picker mode POSTs to: `/announce` ### Build ```