Show artist/title when playing internet radio

Issue description:

Hi,

This support ticket partly overlaps with Internet radio metadata in the correct fields .

When I’m listening to NPO Radio 2 (Dutch national radio station), the app just shows the radio station title instead of the artist - song title.

I’ve checked the ICY metadata using ffprobe and found the stream title to be missing:

ffprobe -show_format -icy 1 https://icecast.omroep.nl/radio2-bb-mp3

   Metadata:
     icy-br          : 192
     icy-genre       : Mixed
     icy-metadata    : 1
     icy-name        : NPO Radio2
     icy-pub         : 0
     icy-url         :http://www.radio2.nl
   Duration: N/A, start: 0.000000, bitrate: 192 kb/s
   Stream #0:0: Audio: mp3 (mp3float), 48000 Hz, stereo, fltp, 192 kb/s

I’ve contacted the technical helpdesk to address this issue, and they were kind enough to respond with a lot of details and explanation.

Due to the large amount of listeners they’ve decreased the number of times when a metadata block is injected into the stream.

An example of the “icy-metaint” response header below:

$ curl -D - -o /dev/null -s  -H 'Icy-MetaData: 1' http://icecast.omroep.nl/radio6-bb-mp3
HTTP/1.0 200 OK
...
icy-br: 192
ice-audio-info: samplerate=48000;channels=2;bitrate=192
icy-genre: Soul & Jazz
icy-metadata: 1
icy-name: NPO Soul&Jazz
icy-pub: 0
icy-url: http://www.nposoulenjazz.nl
icy-metaint: 16000

In the example above, a metadata block is sent after every 16000 bytes.

As the generation of the metadata seems to be expensive (to compute) they’ve increased the icy-metaint to 64.000 bytes.

$ curl -D - -o /dev/null -s  -H ‘Icy-MetaData: 1’ http://icecast.omroep.nl/radio2-bb-mp3|grep icy-metainticy-metaint: 64000

Could it be that Symfonium can’t handle this situation?

Logs:

Upload description: Rhapsody

Additional information:

Server: Navidrome
Sound system: Sonos
App version: latest

Reproduction steps:

1. Add http://icecast.omroep.nl/radio2-bb-mp3as a radio station
2. Play the station

Media provider:

Subsonic

Screenshots:

ICY is not accessible when casting as the data does not reach Symfonium so can’t read it.

If you play locally it will be displayed properly.

Ah that makes so much sense, forgot about the casting completely :person_facepalming: