My node-icy
module is able to read in an arbitrary Icecast stream and intercept and / or add metadata events to the output stream, you essentially proxy the stream. A good (albeit a bit complicated) example could be here: proxy.js
Please note that the “metadata” format is a string of key-value pairs with semicolons, but Icecast clients only respond to StreamTitle
, so just enter all the necessary information:
StreamTitle='Pink Floyd - Welcome to the Machine';
I did things like sending a metadata event every second to keep track of the track’s position counter (although this might have been a bit heavy for the network):
StreamTitle='Pink Floyd - Welcome to the Machine (0:12/4:02)';
Good luck
source share