-
Hey team! I am using Liquidsoap 2.2.5 and Icecast 2.4.4. I am always having 4 tags only:
In liquidsoap I am trying to impact ICY metadata using
However whatever I set to Could you please advise what is the purpose of |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
Hi @iSerganov. Link about icy metadata - https://www.liquidsoap.info/doc-dev/icy_metadata.html Taking Input #0, aac, from 'http://radio:8020/coma.aac':
Metadata:
icy-br : 192
icy-description : ...
icy-genre : ambient, drone, field recordings
icy-name : ...
icy-pub : 0
icy-url : https://
StreamTitle : Rudy Adrian - Netherworlds
Duration: N/A, bitrate: 192 kb/s
Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 192 kb/s When you use You can also do Basically you can alter only the fields mentioned above. If you'll install def apply_meta(m) =
title = m["title"]
artist = m["artist"]
album = m["album"]
if artist != "" and title != "" then
[...list.assoc.remove("artist", m), ("title", "#{artist} - #{title} - #{album}")]
else
m
end
end This will give you: So not much space for imagination) To send description, genre and public=0 you can:
Regarding
it would output something like this and editing
@toots is there a use case for |
Beta Was this translation helpful? Give feedback.
-
Hi all! This is all confusing, I have to admit. You have 3 distinct things:
Initial metadataThese metadata are sent once when initializing the connection and cannot be updated. As far as I know there are only a few fields: (Icecast has a little more, all named These fields are filled via specific arguments of Ogg formats vs. othersBefore we go deeper, it's good to remember that, for ogg formats, metadata updates are handled in-band via the ogg container metadata support. Thus, the following only applies to format who do not have a canonical metadata support such as Metadata sent from the source client to the icecast serverThese metadata are sent out-of-band via a HTTP GET call. The metadata are passed as parameter to the GET url. This means that you cannot tightly control synchronicity between metadata updates and media content with this method. Metadata sent via this update are itemized values such as The list of sent metadata is controlled by There is one special metadata called Those metadata are used to update the listening clients but, also, to update the icecast admin page and yellow pages. Fun hack fact: Liquidsoap also supports manual metadata update with this method using the Fun hack fact: icecast also support source client metadata update for ogg/vorbis and is able to insert them in-band in this case. Don't know why! Metadata updates received by the clientThis is the last bit. Because formats such as mp3, aac, etc do not have a canonical notion of in-band metadata, shoutcast introduced its own support. At regular intervals, the media stream is interrupted and a metadata string is inserted. The format for that string is very rought, it looks like: Listeners client are expected to display The spec for this is both completely outdated and absolutely undocumented. In particular:
In other words, a total mess. The value for It is nearly impossible to reliably parse the Lastly, most source client will now send metadata update in Hope this helps! |
Beta Was this translation helpful? Give feedback.
Hi all!
This is all confusing, I have to admit.
You have 3 distinct things:
Initial metadata
These metadata are sent once when initializing the connection and cannot be updated.
As far as I know there are only a few fields:
"icy-name"
,"icy-url"
,"icy-pub"
,"icy-genre"
and"icy-br"
(Icecast has a little more, all named
ice-*
)These fields are filled via specific arguments of
output.shoutcast
(genre
,public
etc..) except foricy-br
which is inferred from the encoding.Ogg formats vs. others
Before we…