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
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
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
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
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
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 |