Sending Album name metadata to comply with StreamLicensing requirements

Read 11851 times
It is now a requirement for those of us who use StreamLicensing.com to send Album name metadata. We can do this with live streams but it is not apparently being sent with the AutoDJ feed.

"Your encoder should be transmitting the required Meta Fields that are Artist, Title and Album. Most automation systems do this by default but you may need to check the users guide for your system to make sure it does and if not you will have to change it to send the ALBUM tag."

As far as I can see, this is not addressed in the documentation - If I missed it, my apologies!

All the content stored on the server includes the Album metadata field, evident from the fact that the widgets display correctly. However examining the Icecast data we find only Creator (or Artist) and Title fields included, and the Album field is not shown.

In the case of a live stream, we send an http GET string to the server with "artist - title - album" and this works fine.

The important question is: How do we get the AutoDJ to include the album field ? This is presumably a liquidsoap function - but it is not evident how to include such things in a Centova system. Can anyone assist?

In addition there is an apparent discrepancy between the field order required by StreamLicensing (Artist - Title - Album) and that required to make the Centova widgets display the fields in the right order (Artist - Album - Title).

I know that the whole business of metadata fields is a mess due to there originally being a single field for everything, but is there a solution to providing the required metadata to StreamLicensing from the AutoDJ AND getting the order to work for StreamLicensing AND the Centova widgets?

Server: Icecast 2.4.0
Liquidsoap/1.1.1 (Unix; OCaml 3.11.2)
Centova Cast v3.2.8

Thanks in advance

--Richard E
radioriel.org
Yes by default Centova is set to only provide artist and song, but the server owner can change this in the Centova config http://www.centova.com/doc/cast/internals/advanced_configurations/using_centovacast_conf

<i>Controls the formatting of the "now playing" text displayed in the Centova Cast client area and stream info widgets.
%artist% = artist name
%title% = track title
%album% = album name
%playlist% = playlist name (if on autoDJ)
Set this to an empty value (do NOT comment out) to use the text from the streaming server verbatim.
Default: %artist% - %title%</i>

If you don't have root access, try asking your provider if they will enable this for you, if not, if it's just a single stream you could get a server from [REMOVED] for $20, a Cetova 10 stream license is $11.99

Also SHOUTcast2 has this already working in the DNAS
http://<IP ADDRESS>:<PORT>/currentmetadata?sid=1

Unfortunately I don't think Icecast offers this, they provide a lot of data but not the album http://icecast.org/docs/icecast-2.4.0/server-stats.html


Last Edit: June 08, 2017, 02:14:21 pm by Roger
My Auto DJ
Orlando, FL USA
Quality SHOUTcast Hosting http://myautodj.com
SHOUTcast Widgets http://shoutcastwidgets.com
Just a couple of things I'd like to add to My Auto DJ's response

Quote
Yes by default Centova is set to only provide artist and song, but the server owner can change this in the Centova config http://www.centova.com/doc/cast/internals/advanced_configurations/using_centovacast_conf

<i>Controls the formatting of the "now playing" text displayed in the Centova Cast client area and stream info widgets.
This only affects what is displayed in the user's dashboard in Centova Cast and the widgets. Shoutcast/Icecast don't get additional information or anything like that.


Quote
Also SHOUTcast2 has this already working in the DNAS
http://<IP ADDRESS>:<PORT>/currentmetadata?sid=1
Yup, Shoutcast 2 does support it, and sc_trans2 delivers all the extra metadata, such as the album name. Liquidsoap, on the other hand, doesn't. It's not that Liquidsoap isn't capable of doing it, it just needs to be programmed to do it (like literally program it; it's not just a directive that you need to add in a configuration file)
What we need is for the Icecast server to include the Album tag as well as the Title and Artist. We imagine that this is a matter of programming liquidsoap to do it.

I raised the question in the Savonet forum and I got the following "example":

===

You can accomplish sending album metadata with the map_metadata function.

Here is a brief example:

input = playlist("/home/user/music",mode="normal")

def apply_metadata(m) =
  title = m["title"]
  artist = m["artist"]
  album = m["album"]
  [("artist","Artist:#{artist}"),("title","Song:#{title} - Album:#{album}")]
end

input = map_metadata(apply_metadata,input2)

You can modify the return of the apply_metadata function as you see fit.

===

This makes sense to me in that what it's doing is to add the Album tag to the Title tag with a dash-space-dash in front of it, ie the Title tag then carries the pair of tags and Icecast will be fine as there is no call to use fields that don't exist.

However, this is just an example. I have NO idea how to turn that into a solution and I would be very pleased to hear from a programmer or consultant freelancer who knows Centova and Liquidsoap and could solve this for us for a reasonable fee.

We are running a dedicated CentOS server with full access and a 10-stream Centova package.

If anyone has any ideas on how we do this, or someone we could commission to do it for us, please let me know. Perhaps Steve Blinch can suggest someone?

Presumably, as we have a standard Centova installation which uses liquidsoap to provide autodj functions, also standard, SOMEONE must have designed it and programmed liquidsoap to provide the facilities.

I hope someone can point us in the right direction.

Many thanks,
-_R
OK, well as there doesn't seem to be anyone around who knows anything about this, I am going to have a look myself.

Perhaps someone could let me know where the Liquidsoap scripts for the AutoDJ etc are stored: I am drawing a blank so far. I gather there is a "custom.liq" script for adding features. Where is it? Where is the documentation for any of it?

Many thanks!
--Richard E
I have now solved this issue, and you can find a solution here:

http://forums.centova.com/index.php?topic=4460.msg12845#msg12845

--Richard E
Sorry, the thread where I posted the solution has been deleted (!).

Here's how to do it:
http://forums.centova.com/index.php?topic=4466.0