2025-12-09 16:55:08 -05:00
2025-12-09 16:55:08 -05:00
2025-12-09 16:55:08 -05:00
2025-12-09 16:55:08 -05:00
2025-12-09 16:55:08 -05:00

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 newlineseparated 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 nowplaying 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
Description
No description provided
Readme AGPL-3.0 58 KiB
Languages
Go 100%