Sending Metadata through API
Revma supports updating the metadata via the Icecast Admin metadata update request.
The details are best explained in the Icecast documentation, but basically it is a GET request to a specific endpoint with the query parameter “song” which carries the metadata. The values of the query parameters of course should be URL encoded before making the request.
Handling
When Revma receives a metadata update it expects it to be in the following format:
Artist - Title
It will then try to split the string using “ - “ (whitespace, dash, whitespace) as the delimiter. Whatever is left of the delimiter is considered to be the artist and whatever is right is considered to be the title. These extracted fields will also show up on our track reports (in the Radiojar Portal, under station management) in the corresponding columns.
Delivery
The metadata end up being delivered in-band to streaming clients that support it. This type of delivery is the Shoutcast protocol which while has no official documentation, is very well explained here. If a player supports in-band metadata it will add that information on the first request towards the streaming server. The server will notice this and will inform the player how often it should expect metadata updates. The player then knows which data in the stream are the audio and which are the metadata.
Example request for metadata update via the postman software:
Add a new HTTP Header with Key=Authorization and Value=Basic <base64value>, where <base64value> is a string obtained with the use of a base64 encoder (such as https://www.base64encode.org) the encoded string should be the “source:<mountpointpassword>” (without quotes)
The parameters then are need to be set:
mode=updinfo
mount=/<mountpoint>
song=Artist - TitleThen the get function needs to be updated with the following url (I included the mountpoint of your demo station):
http://link.radiojar.com/admin/metadata?mode=updinfo&mount=/7gb5k0cb9zquv&song=Artist - TitleFinally if everything is set as expected and there is an active stream, you should send this information and get a 200 ok status