Forum

Einloggen | Registrieren | RSS  

RR

24.09.2025,
14:54
 

WLAN-Radio Adressen (Elektronik)

Hallo!
Ich babe mir nach dieser Anleitung https://prilchen.de/esp32-projekt-guenstiges-webradio-mit-vs1053-board/
mit ESP32 und VS1053 ein Webradio zusammengesteckt und das funktioniert auch (mit Aussetzern) mit den
dort angegebenen Beispieladressen, z.B.
const char *host = "ic.radiomonster.fm";
const char *path = "/tophits.ultra"; //Tophits Kanal
int httpPort = 80;
Wenn ich nun die Adresse von BR3 https://dispatcher.rndfnk.com/br/br3/live/mp3/mid im Programm so eintrage:
const char *host = "dispatcher.rndfnk.com";
const char *path = "/br/br3/live/mp3/mid";
const int httpPort = 80;
höre ich nichts. http oder https soll egal sein. Oder doch nicht? Was klemmt da?

Gruß RR

bigdie(R)

24.09.2025,
15:27

@ RR

WLAN-Radio Adressen

Also wenn ich die Adresse im Browser eingebe, gibt es eine Weiterleitung auf diese. Da steht dann nichts mehr von dispatcher
https://f111.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?
Ich nehme mal an, dieses Anhängsel ist nicht wichtig
cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=339D6qD80oM4lizbbzIewoYVwUo&token=UvCBjjIBFaaHzE7rvbENNKIE2px2gQvWH9CcSoYvVaw&tvf=ppmuZ15OaBhmMTExLnJuZGZuay5jb20

RR

24.09.2025,
15:56

@ bigdie

WLAN-Radio Adressen

» Also wenn ich die Adresse im Browser eingebe, gibt es eine Weiterleitung
» auf diese. Da steht dann nichts mehr von dispatcher
» https://f111.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?
» Ich nehme mal an, dieses Anhängsel ist nicht wichtig
» cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=339D6qD80oM4lizbbzIewoYVwUo&token=UvCBjjIBFaaHzE7rvbENNKIE2px2gQvWH9CcSoYvVaw&tvf=ppmuZ15OaBhmMTExLnJuZGZuay5jb20

Nee, geht nicht ohne und nicht mit

DIY-Bastler(R)

24.09.2025,
16:28

@ RR

WLAN-Radio Adressen

https://d121.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=339ADSvpA8l5OMyf8Y7Kph38jeA&token=azXH-5Dm12wSl00PfIBbt0aC0K53_X5Ur_fpRn9a97k&tvf=P6FsFxJNaBhkMTIxLnJuZGZuay5jb20

geht auch nicht?

RR

24.09.2025,
16:57

@ DIY-Bastler

WLAN-Radio Adressen

» https://d121.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=339ADSvpA8l5OMyf8Y7Kph38jeA&token=azXH-5Dm12wSl00PfIBbt0aC0K53_X5Ur_fpRn9a97k&tvf=P6FsFxJNaBhkMTIxLnJuZGZuay5jb20
»
» geht auch nicht?
Nee, nix

DIY-Bastler(R)

24.09.2025,
19:30

@ RR

WLAN-Radio Adressen

» »
» https://d121.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=339ADSvpA8l5OMyf8Y7Kph38jeA&token=azXH-5Dm12wSl00PfIBbt0aC0K53_X5Ur_fpRn9a97k&tvf=P6FsFxJNaBhkMTIxLnJuZGZuay5jb20
» »
» » geht auch nicht?
» Nee, nix
Dann stimmt an der Software etwas nicht. :-|

RR

24.09.2025,
20:45

@ DIY-Bastler

WLAN-Radio Adressen

» Dann stimmt an der Software etwas nicht. :-|

Schau sie dir doch mal an:
#include <VS1053Driver.h>
#define UNDEFINED -1
#ifdef ARDUINO_ARCH_ESP8266
#include <ESP8266WiFi.h>
#define VS1053_CS D1
#define VS1053_DCS D0
#define VS1053_DREQ D3
#endif

#ifdef ARDUINO_ARCH_ESP32
#include <WiFi.h>
#define VS1053_CS 5
#define VS1053_DCS 16
#define VS1053_DREQ 4
#endif

// Lautstärke:
#define VOLUME 80 // maximal 99

VS1053 player(VS1053_CS, VS1053_DCS, VS1053_DREQ, UNDEFINED, SPI);
WiFiClient client;

// WiFi hier eintragen:
const char *ssid = "euer SSID Name";
const char *password = "SSID Passwort";

//Erfolgreich getestete Sender:
const char *host = "ic.radiomonster.fm";
const char *path = "/tophits.ultra"; //Tophits Kanal
//const char *path = "/dance.ultra"; //Dance Kanal
//const char *path = "/evergreens.ultra"; //Evergreens Kanal
//const char *path = "/schlager.ultra"; //Schlager Kanal
int httpPort = 80;

//const char *host = "icecast.omroep.nl";
//const char *path = "/radio6-bb-mp3";
//int httpPort = 80;

//const char *host = "puma.streemlion.com";
//const char *path = "/stream";
//int httpPort = 1960;

// Die Puffergröße 64 scheint optimal zu sein. Bei 32 und 128 könnte der Klang blechern klingen
uint8_t mp3buff[64];

void setup() {
Serial.begin(115200);

// 3 Sekunden Pause, bis VS1053 eingeschaltet sind
// sonst startet das System möglicherweise nicht richtig
delay(3000);

// This can be set in the IDE no need for ext library
// system_update_cpu_freq(160);

Serial.println("nnEinfaches Wifi Radio startet";);

SPI.begin();
player.beginOutput();
player.setVolume(VOLUME);

Serial.print("Connecting to SSID ";);
Serial.println(ssid);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".";);
}

Serial.println("WiFi connected";);
Serial.println("IP address: ";);
Serial.println(WiFi.localIP());

Serial.print("connecting to ";);
Serial.println(host);

if (!client.connect(host, httpPort)) {
Serial.println("Connection failed";);
return;
}

Serial.print("Requesting stream: ";);
Serial.println(path);

client.print(String("GET ";) + path + " HTTP/1.1rn" +
"Host: " + host + "rn" +
"Connection: closernrn";);
}

void loop() {
if (!client.connected()) {
Serial.println("Reconnecting...";);
if (client.connect(host, httpPort)) {
client.print(String("GET ";) + path + " HTTP/1.1rn" +
"Host: " + host + "rn" +
"Connection: closernrn";);
}
}

if (client.available() > 0) {
// Die Puffergröße 64 scheint optimal zu sein. Bei 32 und 128 könnte der Klang blechern klingen
uint8_t bytesread = client.read(mp3buff, 64);
player.playChunk(mp3buff, bytesread);
}
}

Gruß RR

RR

24.09.2025,
21:05

@ DIY-Bastler

WLAN-Radio Adressen

Da ist beim kopieren was schief gelaufen, hier nochmal:

#include <VS1053Driver.h>
#define UNDEFINED -1
#ifdef ARDUINO_ARCH_ESP8266
#include <ESP8266WiFi.h>
#define VS1053_CS D1
#define VS1053_DCS D0
#define VS1053_DREQ D3
#endif

#ifdef ARDUINO_ARCH_ESP32
#include <WiFi.h>
#define VS1053_CS 5
#define VS1053_DCS 16
#define VS1053_DREQ 4
#endif

// Lautstärke:
#define VOLUME 80 // maximal 99

VS1053 player(VS1053_CS, VS1053_DCS, VS1053_DREQ, UNDEFINED, SPI);
WiFiClient client;

// WiFi hier eintragen:
const char *ssid = "euer SSID Name";
const char *password = "SSID Passwort";

//Erfolgreich getestete Sender:
const char *host = "ic.radiomonster.fm";
const char *path = "/tophits.ultra"; //Tophits Kanal
//const char *path = "/dance.ultra"; //Dance Kanal
//const char *path = "/evergreens.ultra"; //Evergreens Kanal
//const char *path = "/schlager.ultra"; //Schlager Kanal
int httpPort = 80;

//const char *host = "icecast.omroep.nl";
//const char *path = "/radio6-bb-mp3";
//int httpPort = 80;

//const char *host = "puma.streemlion.com";
//const char *path = "/stream";
//int httpPort = 1960;

// Die Puffergröße 64 scheint optimal zu sein. Bei 32 und 128 könnte der Klang blechern klingen
uint8_t mp3buff[64];

void setup() {
Serial.begin(115200);

// 3 Sekunden Pause, bis VS1053 eingeschaltet sind
// sonst startet das System möglicherweise nicht richtig
delay(3000);

// This can be set in the IDE no need for ext library
// system_update_cpu_freq(160);

Serial.println("nnEinfaches Wifi Radio startet";);

SPI.begin();
player.beginOutput();
player.setVolume(VOLUME);

Serial.print("Connecting to SSID ";);
Serial.println(ssid);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".";);
}

Serial.println("WiFi connected";);
Serial.println("IP address: ";);
Serial.println(WiFi.localIP());

Serial.print("connecting to ";);
Serial.println(host);

if (!client.connect(host, httpPort)) {
Serial.println("Connection failed";);
return;
}

Serial.print("Requesting stream: ";);
Serial.println(path);

client.print(String("GET ";) + path + " HTTP/1.1rn" +
"Host: " + host + "rn" +
"Connection: closernrn";);
}

void loop() {
if (!client.connected()) {
Serial.println("Reconnecting...";);
if (client.connect(host, httpPort)) {
client.print(String("GET ";) + path + " HTTP/1.1rn" +
"Host: " + host + "rn" +
"Connection: closernrn";);
}
}

if (client.available() > 0) {
// Die Puffergröße 64 scheint optimal zu sein. Bei 32 und 128 könnte der Klang blechern klingen
uint8_t bytesread = client.read(mp3buff, 64);
player.playChunk(mp3buff, bytesread);
}
}

bastelix(R)

24.09.2025,
22:00

@ RR

WLAN-Radio Adressen

Die URLs sind HTTPS der Code verbindet sich aber auf den Port für HTTP, der ist 80, für HTTPS wäre es 443. Aber Der Code kann auch kein TLS um eine verschlüsselte Verbindung aufzubauen. In einer Zeit wo eigentlich nur noch HTTPS verwendet wird, brauchst du für deinen Web-Radio auch Code der HTTPS kann.

Alternativ kannst du dir im lokalen Netzwerk einen Proxy-Server installieren der dann das TLS offloading für deinen Radio übernimmt. Willst du damit nur etwas rumspielen? Dann ist so ein Proxy schnell aufgesetzt. Willst du aber den Sender wechsel ohne den Proxy-Server anders zu konfigurieren wird das ein ziemlicher Aufwand.

RR

24.09.2025,
22:18

@ bastelix

WLAN-Radio Adressen

» Die URLs sind HTTPS der Code verbindet sich aber auf den Port für HTTP,
» der ist 80, für HTTPS wäre es 443.

Hallo! Das weiß ich, in der Senderliste vom BR steht aber, daß sie auch
über http zu empfangen sind und es steht da nicht, daß es dann eine andere
Adresse ist. Wenn dem so ist, warum kann ich die http-Adresse nirgens finden?
So steht es in der Senderliste:
Bayern 3 mp3 128 kbit/s https://dispatcher.rndfnk.com/br/br3/live/mp3/mid
* Die Livestreams sind sowohl über http als auch https verfügbar
Gruß RR

bastelix(R)

24.09.2025,
23:05

@ RR

WLAN-Radio Adressen

Ok, du hast recht. Wenn ich http://dispatcher.rndfnk.com/br/br3/live/mp3/mid (wichtig mit http:// nicht mit https://) aufrufe bekomme ich einen redirect auf
http://d131.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=33A5aHuiuVRFsA4p9k2nCoPMcdx&token=eqDthh9l3VElAM3PMThg5ldHtb0SqVBFQiqyu3hJAFE&tvf=N1i54M9maBhkMTMxLnJuZGZuay5jb20

Wenn ich das dann aufrufe kommt wirklich ein audio/mpeg Stream. Du musst also die lange URL komplett eintragen.

const char *host = "d131.rndfnk.com";
const char *path = "/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=33A5aHuiuVRFsA4p9k2nCoPMcdx&token=eqDthh9l3VElAM3PMThg5ldHtb0SqVBFQiqyu3hJAFE&tvf=N1i54M9maBhkMTMxLnJuZGZuay5jb20";

Dann passt auch Port 80

In dem Fall ist der Kram hinter dem ? wichtig. Es kann aber sein, dass der nicht unbegrenzt gültig ist. sid steht meistens für Session ID die hat eine begrenzte Lebenszeit. Wenn ich die URL-Parameter (so nennt sich der Kram hinter dem ?) weglasse bekomme ich einen HTTP Fehler, dass ich nicht Autorisiert bin. Abhängig davon wann du das liest ist die URL möglicherweise auch schon nicht mehr gültig. Dann musst du dir ein Programm wie curl oder Insomnia installieren und dir damit eine gültige URL bzw. Session-ID holen.

Besser wäre natürlich, wenn du den Code erweiterst, damit er mit dem Location-Header umgehen und Redirects folgen kann.

So schaut das aus, wenn ich mit curl die URL aufrufe, die einzig für dich interessante Zeile ist die
< Location: http://d131.rndfnk.com/...

#> curl -v http://dispatcher.rndfnk.com/br/br3/live/mp3/mid
* Host dispatcher.rndfnk.com:80 was resolved.
* IPv6: 2a05:d014:f28:3800:d16e:f1b9:3a7f:abe, 2a05:d014:f28:3802:40e6:499b:30b3:cde5
* IPv4: 3.67.119.156, 3.124.232.108
* Trying [2a05:d014:f28:3800:d16e:f1b9:3a7f:abe]:80...
* Connected to dispatcher.rndfnk.com (2a05:d014:f28:3800:d16e:f1b9:3a7f:abe) port 80
* using HTTP/1.x
> GET /br/br3/live/mp3/mid HTTP/1.1
> Host: dispatcher.rndfnk.com
> User-Agent: curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 302 Found
< Date: Wed, 24 Sep 2025 20:51:37 GMT
< Content-Length: 0
< Connection: keep-alive
< Access-Control-Allow-Methods: GET, OPTIONS, HEAD
< Access-Control-Allow-Origin: *
< Cache-Control: no-cache, no-store
< Location: http://d131.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=33A5aHuiuVRFsA4p9k2nCoPMcdx&token=eqDthh9l3VElAM3PMThg5ldHtb0SqVBFQiqyu3hJAFE&tvf=N1i54M9maBhkMTMxLnJuZGZuay5jb20
<
* Connection #0 to host dispatcher.rndfnk.com left intact

RR

24.09.2025,
23:14

@ bastelix

WLAN-Radio Adressen

oh danke, probier ich morgen mal aus!
gruß RR

RR

25.09.2025,
14:00

@ bastelix

WLAN-Radio Adressen

Hallo Bastelix!
Nee, geht auch nicht, oder nicht mehr.
Das wird mir alles zu unhandlich, ich begrabe das erstmal.
An alle: vielen Dank für die Mühen
Gruß RR