Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Known Issue: Blank metadata when first connecting as a DJ using BUTT, etc. #867

Open
CodeSteele opened this issue Oct 17, 2018 · 21 comments
Labels
error An error encountered when running the software. in progress A workaround, temporary or permanent fix is in progress upstream Involves software that is "upstream" from AzuraCast, i.e. broadcasting software or OS software.

Comments

@CodeSteele
Copy link
Contributor

Apparently this is caused by LiquidSoap not firing the metadata change event that we expect to be fired.

Going to see what I can do about this...

@BusterNeece BusterNeece added bug A part of the software's functionality doesn't work as expected. in progress A workaround, temporary or permanent fix is in progress upstream Involves software that is "upstream" from AzuraCast, i.e. broadcasting software or OS software. labels Oct 17, 2018
@macbroadcast
Copy link

hey there @CodeSteele , I am using "butt" for live streaming, is this the reason the metadata info shown below isn't displayed either?
bildschirmfoto von 2018-10-18 22-09-22

@CodeSteele
Copy link
Contributor Author

CodeSteele commented Oct 19, 2018

@macbroadcast as far as I know, the metadata should be good after a single song plays. Does it not correct after the first song completes?

If not, likely a different issue (and I would suggest using Mixxx for now if you need that functionality, being as it may likely be BUTT).

@macbroadcast
Copy link

it does not change @CodeSteele so its useless for live DJs, what should i do ? Open an issue ?, buster seems always busy with less important stuff 😄
bildschirmfoto von 2018-10-19 12-05-53

@CodeSteele
Copy link
Contributor Author

CodeSteele commented Oct 19, 2018

@macbroadcast

Oh that's right, BUTT just streams a single continuous stream from Mic/Line in...

Song metadata appears to be set here though:
image

The delay I'm experiencing seems to match up with the delay in the audio stream though. So looks like it's fine.

Though I've had some issues where BUTT sometimes doesn't update the song metadata correctly (though I'm also having it sometimes randomly connect/disconnect rapidly which sometimes restarting the application fixes... don't know if that is me, Azuracast, my dev configuration or BUTT, but with Mixxx working flawlessly I'm going to lean on that being BUTT), so I'll loop back around and see if that is a BUTT problem or if it's just related to this bug once this is squashed.

@macbroadcast
Copy link

macbroadcast commented Oct 19, 2018

Thanks for your reply @CodeSteele , this works just with butt on ubuntu for me, will check settings on osx again and checking Mixx aswell!, but where is the other information in BUTT for ? Description, URL Genre, IRC
bildschirmfoto von 2018-10-19 16-08-31 Most of my DJs use serato and just plugin to BUTT with their stuff, so more information and metainfo is allways great since some play vinyl anyway 😄

@CodeSteele
Copy link
Contributor Author

CodeSteele commented Oct 20, 2018

Yeah not sure if BUTT supports that, you may have to reach out to the BUTT devs -- I can't find anything in their docs.

@macbroadcast
Copy link

macbroadcast commented Nov 1, 2018

its seems its not capturing the information from butt on OSX https://stream.iradio.guru/public/iradio and works fine on ubuntu any idea ? @CodeSteele @SlvrEagle23

@br0kenlink
Copy link

I'm having same problem with BUTT on live DJ streams, no metadata updating at all.
Also nicecast don't send anything.
On a side note, how do i connect to Icecast with Traktor 2? I can't seem to find user field in broadcasting tab in Traktor 2

@macbroadcast
Copy link

I am using butt for a long time, but never cared much about the metadata, I informed the author about the issue, because all my music stuff is of course on mac and therefore i need a working solution, as well, but its mostly just a question of time. But I don't know what your problem with traktor is?https://traktorbible.com/en/t2_broadcasting_part_1.aspx#step2

@CodeSteele
Copy link
Contributor Author

CodeSteele commented Nov 4, 2018

@macbroadcast as far as AzuraCast is concerned, it won't care if you're streaming from OSX or Ubuntu. If BUTT acts different between the two platforms I'd be really tempted to blame BUTT for that (it's not something like a browser issue where I have to worry about how Safari for OSX renders things differently, it's just a TCP protocol).

Sadly right now neither of us have the ability to reproduce issues on OSX (complain to Apple about their EULA and vendor lock-in that doesn't allow us to spin up OSX VMs for testing, we do a lot of our testing in VMs instead of having a ton of physical machines sitting around, which gets expensive fast).

Considering how slow BUTT development seems I should probably spend some time seeing if I can find a replacement, it has been a pain in our butt (heh) for awhile at this point due to a lot of odd behaviors/bugs.

As far as this bug issue is concerned, it's about delays internal to LiquidSoap and AzuraCast's integrations that make metadata take awhile to populate on first song play -- it shouldn't entirely prevent metadata from displaying at all, but bug appears present on all players where as general random metadata issues seem to plague BUTT regardless.

@br0kenlink
Copy link

OK, no idea was it the cause but I now run latest AzuraCast in a docker and BUTT metadata works just fine sending from windows 10. Should know later if it works on OSX

@Vaalyn
Copy link
Sponsor Member

Vaalyn commented Nov 6, 2018

I've tested this on macOS High Sierra 10.13.6 (17G65) with Butt and Mixx and could only reproduce this bug with Butt. Also for me this Bug consistently occurs when starting Butt for the first time and then connecting. Butt sets the metadata to ID3 when I just start and connect to AzuraCast. This also happened sometimes when manually setting the metadata in Butt.

I've looked at the station logs when this happens and there I found this:

2018/11/06 20:15:49 [lang:3] Authenticating DJ: shoutcast
2018/11/06 20:15:49 [test_live_fallback:3] Switch to audio_to_stereo_6052 with transition.
2018/11/06 20:15:49 [lang:3] AzuraCast DJ Auth Response: true
2018/11/06 20:15:49 [test_input_streamer:3] New metadata chunk ? -- ID3.
xmlEscapeEntities : char out of range
xmlEscapeEntities : char out of range

The problem most likely stems from an illegal char in the string that Butt sends to AzuraCast and that the NowPlaying/Adapter/Icecast can't properly decode in this line.

@Scraticus
Copy link

Scraticus commented Nov 25, 2018

You can use Liquidsoap to capture the meta and change it if you like.

The way I had it on aerial was to do the following - feel free to adapt it for Azura:


def fix_song(m) =
  #The title metadata
  a = m["artist"]
  t = m["title"]
  l = string.split(separator=" -",t)
  #If title is empty
  a = if ""==a then "PonyvilleFM" else a end
  a = if ""==a and list.length(l) >= 2 then t else a end
  t = if ""==t then "Missing Title!" else t end
  #Otherwise if title = Unknown
  t = if "Unknown"==t then "A Wild DJ has Appeared!" else t end
  [("artist","#{a}"),("title","#{t}")]
end

Some ogg encoders send a dead hunk at the beginning of a connection and this results in bad metadata being sent through LS and Icecast.

Back in 2012 when I wrote this, it was to stop IceCast from segfaulting and crashing the station. It's a simple fix that just sits in the script out of the way and fixes any bad meta.

Call it after the DJ live functions on the LS script.

with :
radio = map_metadata(fix_song,radio)

@BusterNeece
Copy link
Member

It appears that in the absence of any metadata, this just sets a placeholder value with the station name or other text. While we could implement this into the LS config, I'd prefer something a little more interactive, like triggering a metadata update upon successful DJ authentication that actually includes the DJ's name in the metadata. The LS documentation suggests this is possible via a Telnet connection, which I may take advantage of.

@BusterNeece
Copy link
Member

While we can't do anything on the AzuraCast end about clients that connect to stream not sending an immediate metadata update, we can trigger one on our end when a DJ successfully authenticates, which overrides the existing metadata to show the DJ's "display name" and the station name.

That's exactly what the latest change accomplishes; it will flush the metadata upon a successful DJ connection, ensuring that your listeners are aware of the presence of a live DJ in the interstitial time between their connection and the first metadata push.

Hopefully this helps mitigate the issue!

@BusterNeece
Copy link
Member

Reopening after having reverted the previous quick fix, as it causes the DJ name to show up in the song playback timeline and other places.

@BusterNeece BusterNeece reopened this Nov 30, 2018
@BusterNeece BusterNeece pinned this issue Jan 10, 2019
@BusterNeece BusterNeece changed the title Metadata On First Played Song When DJing Shows Unknown Known Issue: Blank metadata when first connecting as a DJ using BUTT, etc. Jan 10, 2019
@BusterNeece BusterNeece added error An error encountered when running the software. and removed bug A part of the software's functionality doesn't work as expected. labels Jan 10, 2019
@gammaw
Copy link

gammaw commented Sep 20, 2019

Hi everyone,

do you have an update on this? We have a perhaps related issue where Azuracast's JSON API shows inconsistent data after a live DJ connects via Butt. What I fail to see if it's a) an issue with Butt not sending certain data or sending wrong data to Azuracast or b) Azuracast not handling connection events properly (although I see that a) and b) are related). Our problem is that Azurcast seems to "remember" metadata accross different Butt sessions (carried out by different Butt clients).

Thanks

@aripisprecer
Copy link

Hello,

i am having this problem with the latest version of Azuracast on Docker (Debian 10 KVM).

I am streaming from Sam Broadcaster to Azuracast (SHOUTcast DNAS/posix(linux x64) v2.5.5.733 )

The streaming happends on a "LAN" network so there is no firewall, etc.

The stream is playing but on Azura web interface it shows it offline and from time to time it goes again online for 2-3 seconds.

Is there a way to fix this issue?

Thank you,
Marius

@aripisprecer
Copy link

Hello again,

i have figured it out: the problem was that i had 2 mount points.
The first one was a normal mount point and the second was configured a a relay to the first one (i don't know why).

I have deleted the relay mount point and now it display the station online and the song tile and artist are being displayed.

Sorry for the comment above.

Thank you!
Br
Marius

@gammaw
Copy link

gammaw commented Feb 20, 2020

If anyone interested a new verison of Butt is available (v0.1.19). I could only test it on Windows, the Mac version would not start for me due to some error. I see no difference compared to v0.1.18 in terms of the issue at hand. For me the behavior is deterministic:

  • After fresh Butt start: no song metadata is sent upon connection no matter how often I disconnect and reconnect.
  • After sending metadata at least once: the lastly entered metadata (confirmed with OK) is send upon each connect (until restarting Butt).

(Although it's deterministic behavior, it's not really what we want. For us it would be great if it was configurable whether or not Butt automatically sends metadata or only "on demand".)

@JohnyBeGood
Copy link

Hello again,

i have figured it out: the problem was that i had 2 mount points. The first one was a normal mount point and the second was configured a a relay to the first one (i don't know why).

I have deleted the relay mount point and now it display the station online and the song tile and artist are being displayed.

Sorry for the comment above.

Thank you! Br Marius

I know this is old post, but this is the only clue that got me to fix same "Stream Offline". The clue is match streaming software with relay name!

@AzuraCast AzuraCast locked and limited conversation to collaborators Jun 3, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
error An error encountered when running the software. in progress A workaround, temporary or permanent fix is in progress upstream Involves software that is "upstream" from AzuraCast, i.e. broadcasting software or OS software.
Projects
None yet
Development

No branches or pull requests

9 participants