Hi Darren and Alex,
A belated thanks…didn’t see all of this until now.
Darren, the issue is with sc_trans. Any pointer on where I can read-up on
those issues you mention?
Alex. Right now the station is using the built-in Centova Cast AutoDJ (I only
mentioned SAM Broadcaster because I know, in a similar situation, it works). It
is running against the source port.
No app is running against the DJ port…well, except liquidsoap. It sounds like
you experienced exactly what I did.
Thanks for the script too…but I am confused. How does it ultimately get the
title to the SHOUTCast server?
My best,
Alan
>
>
> From: Darren Owen <[email protected]>
> Subject: Re: [Savonet-users] Broadcasting to a SHOUTCast DJ Port
> Date: March 21, 2017 at 3:08:53 PM MDT
> To: [email protected]
> Reply-To: [email protected]
>
>
> One thing to keep in mind is that Centova's DJ support is going to either be
> done using LS or sc_trans depending on what's been done with the initial
> Centova setup (which may be out of your control if using a hosted solution).
> If it is sc_trans then that's the likely reason why metadata updates are
> failing as there were issues with that. If it's LS then maybe it's an older
> version or there's an issue with it's configuration from how Centova have set
> it up that is causing it.
>
> -dro
>
> On 20/03/2017 05:19, Alex LaBranche wrote:
>> Also worth mentioning that if you want a source to connect to a specific Sid
>> on a v2 server, you can use the stream specifier as part of the password to
>> map to its corresponding sid.
>>
>> In shoutcast.output:
>>
>> password = "hackme:#1"
>>
>> password = "hackme:#2"
>>
>> password = "hackme:#3"
>>
>> For Shoutcast v1 you do not have to specify a username, but if you still
>> feel the need, you should use "source" as the username
>>
>> username = "source", password = "hackme"
>>
>> You also do not need to specify an sid with v1 dnas
>>
>> But I think maybe your question was more about metadata problems?
>>
>> Can you detail a little more about what roles centova, liquidsoap, sam
>> broadcaster, and Shoutcast dnas play?
>>
>> Are you looking to replace sam with liquidsoap?
>>
>> Which app is running the dj port?
>> Which app is running the 'source port'?
>> Which app is sending audio data to the dj port?
>>
>> Im not sure if this is still the case with newer versions of liquidsoap but
>> I was never able to get metadata updates to work when broadcasting to a
>> liquidsoap created dj port that liquid soap then sends on to a dnas.
>>
>> I had to create a http harbor that would listen for url based get requests
>> containing the song title updates. Then watch a log file for title updates
>> from my source software. When it sees a title thats different from the
>> current it will curl the url setup in the http harbor with the new title as
>> a url parameter.
>>
>> For example:
>>
>> user@host:~ $ curl -s -o /dev/null
>> "http://127.0.0.1:8080/setmeta?title=SongTitleGoesHere"
>> <http://127.0.0.1:8080/setmeta?title=SongTitleGoesHere> > /dev/null 2>&1
>>
>> Its the same concept as sending title updates via the admin.cgi url method
>> on dnas.
>>
>>
>> The following is a complete working example.
>>
>> ####################################################################
>>
>> # local ip address to bind and listen for input (dj or metadata)
>> set("harbor.bind_addr","127.0.0.1")
>>
>> # port and pass for live djs to connect to (shoutcast protocol)
>> live = input.harbor(icy=true,"/",port=8010,password="PASS")
>>
>> # path to playlist file which contains a list of local mp3's
>> (/home/user/mp3/song.mp3)
>> playlist = playlist("/home/user/mp3/playlist.txt")
>>
>> # path to failover song if all above fails
>> emergency = single("/home/user/mp3/backup.mp3")
>>
>> # do not monitor for silence and specify the fallback/priority order
>> radio = fallback(track_sensitive=false,[live,playlist,emergency])
>>
>> # function to manually set the song title
>> title = insert_metadata(radio)
>> insert = fst(title)
>> radio = snd(title)
>>
>> def set_meta(~protocol,~data,~headers,uri) =
>> title = url.split(uri)
>> meta = metadata.export(snd(title))
>> ret = if meta != [] then insert(meta) "OK!" else "No metadata to add!" end
>> http_response(protocol=protocol,code=200,headers=[("Content-Type","text/html")],data="#{ret}")
>> end
>>
>> # port and uri to register metadata updates via http
>> harbor.http.register(port=8080,method="GET","/setmeta",set_meta)
>>
>> # shoutcast servers to broadcast to
>> output.shoutcast(%mp3(bitrate=256,samplerate=44100,stereo=true),name="RADIO
>> NAME",genre="GENRE",host="127.0.0.1",port = 8000,password = "PASS",radio)
>>
>> ##################################################################################
>>
>> But after reading https://github.com/savonet/liquidsoap/blob/master/CHANGES
>> <https://github.com/savonet/liquidsoap/blob/master/CHANGES> it looks like it
>> wont be needing the manual method too much longer =]
>>
>> Cheers,
>>
>> Alex
>>
>>> On Mar 19, 2017, at 9:17 16AM, neralex <[email protected]>
>>> <mailto:[email protected]> wrote:
>>>
>>> I'm working without Centova Cast and I build my own management with
>>> liquidsoap without any external software and there it works as I
>>> pointed. So I guess the issue is based on the source of Centova Cast or
>>> on the source-client itself.
>>>
>>> BTW: liquidsoap is an v1 source, it doesn't handle the v2 protocol.
>>>
>>> Open another port wher you can connect directly with a streaming
>>> source-client like winamp-dsp or butt and pass meta-data, then compare
>>> the output with your Centova Cast output in the logfiles. If should it
>>> work, then the issue is based on the source of Centova Cast.
>>>
>>>
>>> Am 19.03.2017 um 15:20 schrieb Alan Fahrner:
>>>> Thanks for the suggestion neralex. I gave it a shot, but it didn’t
>>>> change the behavior.
>>>>
>>>> I suspected it wouldn’t…basically, if you don’t give it the icy_id, then
>>>> it defaults to 1.
>>>>
>>>> It’s all very odd given if I connect to the source port, all is well. I
>>>> connect to the Centova Cast DJ port…meta data issues.
>>>>
>>>> I’m curious, does anyone know if there is a way to force
>>>> output.shoutcast() to connect v1 versus v2? The way SAM Broadcaster
>>>> works is by connecting v1 (and the Centova Cast page says to connect
>>>> v1). But, I could not get liquidsoap to do that.
>>>>
>>>> Either way, still can use help. :-)
>>>>
>>>> My best,
>>>>
>>>> Alan
>>>>
>>>>
>>>> *From: *neralex <[email protected] <mailto:[email protected]>
>>>> <mailto:[email protected]> <mailto:[email protected]>>
>>>> *Subject: **Re: [Savonet-users] Broadcasting to a SHOUTCast DJ Port*
>>>> *Date: *March 19, 2017 at 5:19:12 AM MDT
>>>> *To: *[email protected]
>>>> <mailto:[email protected]>
>>>> <mailto:[email protected]>
>>>> *Reply-To: *[email protected]
>>>> <mailto:[email protected]>
>>>> <mailto:[email protected]>
>>>>
>>>>
>>>> Hey!
>>>>
>>>> You have to set the "ic_id" parameter in the output.shoutcast function
>>>> to pass it directly to the SHOUTcast2 mountpoint (sid) like this:
>>>>
>>>> #port and pass for djs
>>>> live =
>>>> input.harbor(icy=true,icy_metadata_charset="UTF-8","/",port=8610,password="hackme")
>>>>
>>>> #fallback
>>>> emergency = single("/home/shoutcast/emergency/jingle_001.mp3")
>>>>
>>>> radio = fallback(track_sensitive=false,[live,emergency])
>>>>
>>>> Here is an example for an 192kbit mp3 stream, which is using the 1st
>>>> mountpoint (sid=1) on the DNAS/port:
>>>>
>>>> output.shoutcast(
>>>> %mp3(
>>>> bitrate=192,
>>>> samplerate=44100,
>>>> stereo=true
>>>> ),
>>>> icy_id=1,
>>>> name="station name",
>>>> genre="genre",
>>>> host="127.0.0.1",
>>>> port=8000,
>>>> password="hackme",
>>>> url="http://www.domain.tld/fish" <http://www.domain.tld/fish>,
>>>> radio
>>>> )
>>>>
>>>> The same way for the 2nd mountpoint (sid=2), which is used for an 96kbit
>>>> mp3 stream on the same DNAS/port:
>>>>
>>>> output.shoutcast(
>>>> %mp3(
>>>> bitrate=96,
>>>> samplerate=44100,
>>>> stereo=true
>>>> ),
>>>> icy_id=2,
>>>> name="station name",
>>>> genre="genre",
>>>> host="127.0.0.1",
>>>> port=8000,
>>>> password="hackme",
>>>> url="http://www.domain.tld/fish" <http://www.domain.tld/fish>,
>>>> radio
>>>> )
>>>>
>>>>
>>>> Am 19.03.2017 um 01:24 schrieb Alan Fahrner:
>>>>> Hi folks,
>>>>>
>>>>> First, I’ve been having a great time experimenting with liquidsoap.
>>>>> Thanks to everyone behind this.
>>>>>
>>>>> I am running into two issues, one especially problematic.
>>>>>
>>>>> The problematic one is that when I connect to the Centova Cast DJ port,
>>>>> the server is not getting any data…and is throwing an error. From the
>>>>> log you can see the successful connection:
>>>>>
>>>>> 2017/03/18 18:11:01 [output(dot)shoutcast:3] Connecting mount sid#1 for
>>>>> ******@158.69.227.214...
>>>>>
>>>>> However, whenever the song changes:
>>>>>
>>>>> 2017/03/18 18:11:01 [output(dot)shoutcast:3] Metadata update may have
>>>>> failed with error: 404, Not Found: Weblet (HTTP/1.0)
>>>>>
>>>>> On the SHOUTCast server side, it’s clear the end result is it got
>>>>> nothing meta-wise.
>>>>>
>>>>> I’ve searched and searched all over the place and have not seen anything
>>>>> exactly like it. I’ve tried all types of things based on what sounded
>>>>> even close, but no luck. Some notes:
>>>>>
>>>>> * It works fine if I use the source port
>>>>> * The connection on the DJ port is supposed to be SHOUTCast v1, which
>>>>> means I shouldn’t give a name, but provide the password as
>>>>> “username:password” - that never worked…I finally was able to
>>>>> connect providing it separately as a user and a password
>>>>> * If I set icy_metadata to “false” the error is no longer thrown, but
>>>>> still no meta data gets the server
>>>>> * If I set icy_id to 0, I cannot figure out a way to login (which is
>>>>> probably fine, I had read something that made me wonder if I should
>>>>> try 0)
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> I will ask my other question in another e-mail to keep the string clean.
>>>>>
>>>>> Thanks!
>>>>>
>>>>> Alan
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Check out the vibrant tech community on one of the world's most
>>>>> engaging tech sites, Slashdot.org
>>>>> <http://Slashdot.org> <http://slashdot.org/>! http://sdm.link/slashdot
>>>>> <http://sdm.link/slashdot>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Savonet-users mailing list
>>>>> [email protected]
>>>>> <mailto:[email protected]>
>>>>> <mailto:[email protected]>
>>>>> <mailto:[email protected]>
>>>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>>>> <https://lists.sourceforge.net/lists/listinfo/savonet-users>
>>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Check out the vibrant tech community on one of the world's most
>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>>> <http://sdm.link/slashdot>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Savonet-users mailing list
>>>> [email protected]
>>>> <mailto:[email protected]>
>>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>>> <https://lists.sourceforge.net/lists/listinfo/savonet-users>
>>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> <http://sdm.link/slashdot>
>>> _______________________________________________
>>> Savonet-users mailing list
>>> [email protected]
>>> <mailto:[email protected]>
>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>> <https://lists.sourceforge.net/lists/listinfo/savonet-users>
>>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> <http://sdm.link/slashdot>
>>
>> _______________________________________________
>> Savonet-users mailing list
>> [email protected]
>> <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> <https://lists.sourceforge.net/lists/listinfo/savonet-users>
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org!
> http://sdm.link/slashdot_______________________________________________
> Savonet-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users