schreibfaul1 / ESP32-vs1053_ext

With this library You can easily build a WebRadio with a ESP32 board and a mp3-module. See: https://www.youtube.com/watch?v=u4u9NvZvWRk
GNU General Public License v3.0
106 stars 29 forks source link

problem mit neuen ndr streams (icecast) #24

Closed usrstephan closed 2 years ago

usrstephan commented 2 years ago

seit Jahren läuft mein webradio stabil (http://ndr-njoy-live.cast.addradio.de/ndr/njoy/live/mp3/128/stream.mp3) mit dem neuen Link (https://www.ndr.de/resources/metadaten/audio/m3u/n-joy.m3u) kann keine Verbindung hergestellt werden: vs1053_showstation und vs1053_showstreamtitle ziegen keine Werte mehr an und es läuft kein Radio mehr. Der NDR hat seine Links umgestellt (https://www.ndr.de/service/Die-Radio-Livestream-Links,livestreams101.html). Die anderen Sender (außer NDR) funktionieren weiterhin. Hat jemand ähnliche Erfahrungen/eine Lösung?

robierto68 commented 2 years ago

Habe die gleichen Probleme mit allen WDR streams. Beispiel EINSLIVE: http://wdr-1live-live.icecast.wdr.de/wdr/1live/live/mp3/128/stream.mp3 vs1053_showstation und vs1053_showstreamtitle zeigt auch bei mir nichts mehr an... Hat jemand eine Idee, wie man das "in Griff" bekommt? Ich danke Euch ersteinmal vorab.

williusr commented 2 years ago

Ich hatte das gleiche Problem. Wenn man vs1053_info aktiviert, dann sieht man dass bei dem redirect der host string bei dem '&' abgeschnitten wurde. Mit diesem ungültigen hoststring konnte dann kein stream aufgebaut werden. Um das zu umgehen, habe ich in vs1053_ext.cpp die Stelle an der das bewusst passierte auskommentiert. Danach funktionieren z.B. solche Adressen wie https://www.ndr.de/resources/metadaten/audio/m3u/n-joy.m3u. Das zeigt das folgende Beispiel:

DEBUG: Connect to new host: https://www.ndr.de/resources/metadaten/audio/m3u/n-joy.m3u DEBUG: Playlist request, entry 1 DEBUG: Connect to www.ndr.de on port 443, extension /resources/metadaten/audio/m3u/n-joy.m3u DEBUG: SSL/TLS Connected to server DEBUG: Read from playlist DEBUG: Playlistheader: HTTP/1.1 200 OK DEBUG: Playlistheader: X-Loadbalancer: of DEBUG: Playlistheader: Content-Type: audio/x-mpegurl DEBUG: Playlistheader: Strict-Transport-Security: max-age=2592000 DEBUG: Playlistheader: X-XSS-Protection: 1; mode=block DEBUG: Playlistheader: ETag: "37-5d00d18cc9151" DEBUG: Playlistheader: Last-Modified: Fri, 05 Nov 2021 16:25:52 GMT DEBUG: Playlistheader: Referrer-Policy: no-referrer-when-downgrade DEBUG: Playlistheader: Date: Fri, 19 Nov 2021 15:20:15 GMT DEBUG: Playlistheader: Content-Length: 55 DEBUG: Playlistheader: Connection: close DEBUG: Playlistheader: DEBUG: Switch to PLAYLISTDATA DEBUG: Playlistdata: http://icecast.ndr.de/ndr/njoy/live/mp3/128/stream.mp3 DEBUG: Entry 1 in playlist found: http://icecast.ndr.de/ndr/njoy/live/mp3/128/stream.mp3 DEBUG: Song stopped correctly after 0 msec DEBUG: Connect to new host: icecast.ndr.de/ndr/njoy/live/mp3/128/stream.mp3 DEBUG: Connect to icecast.ndr.de on port 80, extension /ndr/njoy/live/mp3/128/stream.mp3 DEBUG: Connected to server DEBUG: Content-Length: 0 DEBUG: Connection: close DEBUG: Access-Control-Allow-Methods: GET, OPTIONS, HEAD DEBUG: Access-Control-Allow-Origin: * DEBUG: Cache-Control: no-cache, no-store DEBUG: redirect to new host http://d111.rndfnk.com/ard/ndr/njoy/live/mp3/128/stream.mp3?sid=218upB0SKAzhDUXvhF4aFf7ITvv&token=EI8OS4nqzK6OLwRd-h5AkmBYv8HFWDNjq6Wx_Q70Ecc&tvf=5Wm4NlkPuRZkMTExLnJuZGZuay5jb20 DEBUG: Song stopped correctly after 0 msec DEBUG: Connect to new host: http://d111.rndfnk.com/ard/ndr/njoy/live/mp3/128/stream.mp3?sid=218upB0SKAzhDUXvhF4aFf7ITvv&token=EI8OS4nqzK6OLwRd-h5AkmBYv8HFWDNjq6Wx_Q70Ecc&tvf=5Wm4NlkPuRZkMTExLnJuZGZuay5jb20 DEBUG: Connect to d111.rndfnk.com on port 80, extension /ard/ndr/njoy/live/mp3/128/stream.mp3?sid=218upB0SKAzhDUXvhF4aFf7ITvv&token=EI8OS4nqzK6OLwRd-h5AkmBYv8HFWDNjq6Wx_Q70Ecc&tvf=5Wm4NlkPuRZkMTExLnJuZGZuay5jb20 DEBUG: Connected to server DEBUG: audio/mpeg seen. DEBUG: ice-audio-info: bitrate=128 DEBUG: icy-description: ndr_n-joy_mp3_01

in vs1053_ext.cpp habe ich die eine Zeile auskommentiert:

   451         else if(lcml.startsWith("location:")){
   452             host=m_metaline.substring(lcml.indexOf("http"),lcml.length());// use metaline instead lcml

===> 453 //if(host.indexOf("&")>0)host=host.substring(0,host.indexOf("&")); // remove parameter 454 sprintf(sbuf, "redirect to new host %s", host.c_str()); 455 if(vs1053_info) vs1053_info(sbuf);

Für mich funktioniert das so. Der Ursprüngliche code bzgl. 'remove parameter' hat sicher eine Berechtigung für andere Fälle ??

usrstephan commented 2 years ago

wollte das probieren und habe dabei die neueste Version runtergeladen. Dabei finden sich diese Zeilen gar nicht mehr Aber ALLLES FUNKTIONIERT WIEDER Danke

robierto68 commented 2 years ago

Ja, vielen Dank für das nette und bestimmt sehr aufwendige update! Leider funktioniert das bei mir nur bei manchen ESP´s. Bei manchen bleibt er nach dem einwählen im WiFi einfach hängen... Bei welchen er hängen bleibt kann ich nicht genau sagen, da die ESP´s so verbaut sind, das ich da ohne größerem Aufwand nicht heran komme. Aber bei den ESP´s, wo das update läuft, da ist der Senderwechsel auch sensationell schnell! Nochmals: Vielen Dank für Deine Mühen! Roberto