I need to add additional metadata to an Icecast stream (beyond Artist and Song Title). I've tried a number of ideas but none seems to yield anything. The situation is made more complicated in that the metadata also passes through Wowza, which is re-streaming the Icecast stream. Is there a canonical list of metadata fields supported by Icecast, and does anyone have experience passing custom metadata as part of an Icecast stream and on to Wowza?
My node-icy
module is capable in reading in an arbitrary Icecast stream and intercepting and/or adding "metadata" events to an output stream. You are essentially "proxying" the stream. A good (though slightly complicated) example might be here: proxy.js
Do note though that the "metadata" format is a semicolon-delimited String of key-value pairs, but Icecast clients only react to the StreamTitle
value, so just stuff all the information you want into there:
StreamTitle='Pink Floyd - Welcome to the Machine';
I've done things like send a metadata event every second to keep a track position counter (though that may have been a little network-heavy):
StreamTitle='Pink Floyd - Welcome to the Machine (0:12/4:02)';
Good luck!