This issue tracks replacing the XML based input to nowplaying with something modern.
Currently input from audioplayer is delivered to nowplaying using an XML based file format that looks like follows:
<?xml version="1.0"?>
<now_playing playing="1" timestamp="2019-06-22T11:34:04">
<song timestamp="2019-06-22T11:34:04">
<title>Small Talk</title>
<artist>For Esmé</artist>
<album/>
<genre>Other</genre>
<kind>MPEG-Audiodatei</kind>
<track>1</track>
<numTracks/>
<year>2012</year>
<comments/>
<time>255</time>
<bitrate>192</bitrate>
<rating/>
<disc/>
<numDiscs/>
<playCount>1</playCount>
<compilation/>
<composer/>
<grouping/>
<urlSource/>
<file/>
<artworkID/>
</song>
</now_playing>
This format goes back to the pre-python days of our ticker solution and it was originally defined by a third party proprietary plugin to iTunes, Winamp and the like. This family of plugins has since been opensourced: https://github.com/brandonfuller/nowplayingplugin
The XML format defined by the plugin has stayed with us over the years as we always adapted new systems (like looky and now klangbecken) to send us the information in the format in the given format.
IMO now is as good as any time to start thinking about replacing the input format with something modern. It looks like we will be in a situation again where the modern stuff will be a bit more complicated since it will take into account more sources than before. Right now the following sources are to be considered.
- mAirlist as used in the digitalized studios
- upstream icecast sources as used when we do field-broadcast events
- audio streaming sources with in-band metadata (ie. a tagged opus stream)
- audio streaming sources with out-of-band metadata (ie. AES67 streams with metadata that as it seems can be in a serial side-channel in Livewire+)
These replacements should be integrated in a fashion where we don't need to poll the file system for new files like the current solution does.
This issue tracks replacing the XML based input to nowplaying with something modern.
Currently input from audioplayer is delivered to nowplaying using an XML based file format that looks like follows:
This format goes back to the pre-python days of our ticker solution and it was originally defined by a third party proprietary plugin to iTunes, Winamp and the like. This family of plugins has since been opensourced: https://github.com/brandonfuller/nowplayingplugin
The XML format defined by the plugin has stayed with us over the years as we always adapted new systems (like looky and now klangbecken) to send us the information in the format in the given format.
IMO now is as good as any time to start thinking about replacing the input format with something modern. It looks like we will be in a situation again where the modern stuff will be a bit more complicated since it will take into account more sources than before. Right now the following sources are to be considered.
These replacements should be integrated in a fashion where we don't need to poll the file system for new files like the current solution does.