WilliW
9 Posts
wrote on 02.07.16 at 13:04
Link to this post
I subscribed to www.calmradio.com and received a list with "private" URLs for each channel. The URLs are of the form:

http://streams.calmradio.com/api/175/320/stream?user=Willi&amp;pass=<password>
or
http://streams.calmradio.com/api/167/320/stream.mp3?user=Willi&pass=<password>
or
http://Willi:<password>@streams.calmradio.com/api/175/320/stream

I cannot open these streams in streamWriter, the URLs are considered invalid.

I also tried removing "?user=user&pass=pass", just leaving http://streams.calmradio.com/api/167/320/stream.mp3. This URL is accepted but results in HTTP error 401. Anyway I would prefer my personal URL for ad-free music.

Any help is appreciated.

Thanks, Willi
 
WilliW
9 Posts
wrote on 02.07.16 at 15:37
Link to this post
Ok ich antworte mir mal selbst… das Problem sind Doppelpunkte im Passwort, die von der Funktion ParseURL() als Trennzeichen zwischen Host und Port interpretiert werden. Es kann dann keine gültige Portnummer nach dem Doppelpunkt extrahiert werden.

Ich wüsste also, wie man das Problem beheben kann, habe aber leider nicht die Entwicklungsumgebung, um dies zu tun. So muss ich wohl weiter mit VLC herumwerkeln, der diese URL übrigens klaglos öffnet.

Cheers,
Willi
 
Yo24hua
726 Posts
wrote on 02.07.16 at 18:50
Link to this post
.
Hallo WilliW,

Es ist eh oder je aus Sicherheitsgründen nicht zu empfehlen PREMIUM-Sender in streamWriter zu nutzen !!!

Siehe dazu: Forum>Help & Questions>Zugang zu RadioTunes Premium (ehemals sky.fm)
.
Legalität, Radio Verzeichnisse, Diskographie Verzeichnisse, Reguläre Ausdrücke, Videos...:
Yo24hua's streamWriter Special: > > > https://sites.google.com/site/yo24hua < < <

Alles mit Ruhe & Muse, denn Unmöglich sind nur die Dinge, die man nicht tut!
Befreie dich, Befreie dich, Befreie dich und du wirst deinen Weg finden!
··· ¥oæhua ···
 
alex
2470 Posts
wrote on 02.07.16 at 19:01
Link to this post
Moin,

stark, dass du dich durch den Quelltext gewühlt hast:-)! Das Problem geht aber noch weiter - streamWriter unterstützt keine HTTP-Authentifizierung, von daher würde es auch nicht funktionieren, wenn ParseURL() alles richtig machen würde.
Zu Yo24huas Post, im Prinzip ist das richtig, allerdings bin ich bemüht, Premium-Streams herauszufiltern, so dass es zu keinen Problemen kommt.
LG/Best regards, Alex

"Journalism is printing what someone else does not want printed. Everything else is public relations."
- George Orwell

D1734FA178BF7D5AE50CB1AD54442494
 
WilliW
9 Posts
wrote on 03.07.16 at 10:56
Link to this post
Auch moin :)

Danke für eure Antworten. Dass per Default die URLs an die Community geschickt werden, war mir nicht klar. Da gibt es ja dann die Häkchen in der Konfiguration, um das abzuschalten.

Dann wage ich einmal dem Experten zu widersprechen, was HTTP Auth angeht. Dieses kommt doch nur ins Spiel, wenn Username und Passwort ungültig oder dem Server nicht bekannt sind. Wenn ich - wie in meinem Fall - beides als URL-Parameter mitschicke, und der Server diese Parameter auswertet und als gültig erkennt, wird er keine Authentifizierung anstoßen. Wenn ich meine Komplett-URL in die Browserleiste eingebe oder bei VLC verwende, findet jedenfalls kein HTTP Auth statt, und beide spielen den Stream ohne weitere Nachfrage ab. Wenn ich die Argumente weglasse, zeigt der Browser die Auth-Box an und VLC meldet HTTP 401. Soweit alles schlüssig. Oder täusche ich mich?

Jetzt habe ich auch noch ParseURL() überlistet, indem ich ihm einfach die Portnummer mitgegeben habe. Meine URL lautet nun:

http://streams.calmradio.com:80/api/175/64/stream?user=Willi&amp;pass=pass:wort

Diese wird jetzt auch von streamWriter akzeptiert, denn ParseURL() schluckt den ersten Doppelpunkt samt Portnummer und lässt alle weiteren Doppelpunkte gnädig bestehen. Das Ausgangsproblem dieses Threads ist damit umgangen.

Leider kann er nun mit dem Stream nichts anfangen, ich bekomme "Unbekannter Content-Type". Wie gesagt können alle Browser und alle anderen Streamplayer, die ich ausprobiert habe, diesen Stream abspielen, nur streamWriter hat Probleme damit.

Vielleicht gibt es noch eine Idee? Ich könnte auch einen anderen Player/Ripper verwenden, habe aber noch keinen gefunden, der den Stream in einzelne Dateien pro Track aufspaltet und ID3 Tags hinzufügt. Da hoffe ich noch darauf, dass streamPlayer die Metadaten richtig interpretieren kann.

Wünsche allseits noch einen schönen Sonntag,
Willi
 
Yo24hua
726 Posts
wrote on 03.07.16 at 12:04
Link to this post
.
Ich kommuniziere öfters mal mit diversen Radiobetreibern bzw. lese allgemein infos dazu.
Es gibt etliche davon die solche Ripping Programme über ihre Kennung, die diese bei der Anfrage mitsenden, Blockieren. Das kann durchaus auch hier der Fall sein!

Radio Raven hat das lange zeit so gemacht. Die haben das allerdings aufgegeben weil man das über Proxys umgehen konnte.

Laut https://calmradio.com/terms ist das was du da machen möchtest allerdings auch nicht zulässig!
Das nur mal als Hinweis bevor du dir eine Sperrung seitens Calmradio erwirkst (hat es schon in anderen fällen gegeben)!
.
Legalität, Radio Verzeichnisse, Diskographie Verzeichnisse, Reguläre Ausdrücke, Videos...:
Yo24hua's streamWriter Special: > > > https://sites.google.com/site/yo24hua < < <

Alles mit Ruhe & Muse, denn Unmöglich sind nur die Dinge, die man nicht tut!
Befreie dich, Befreie dich, Befreie dich und du wirst deinen Weg finden!
··· ¥oæhua ···
 
alex
2470 Posts
wrote on 03.07.16 at 15:14
Link to this post
Moin,

als URL-Parameter klappt das natürlich. Schau dir mal mit Wireshark oder so an, was der Server als Content-Type zurückmeldet. Unterstützt werden 'audio/mpeg', 'audio/aacp' und 'audio/aac'. Eventuell fehlt da einfach nur der Typ, obwohl es sich um einen Stream handelt, den streamWriter verarbeiten könnte.

@Yo24hua:
Ich habe gerade mal geschaut, irgendwann habe ich den User-Agent aus dem HTTP-Header rausgenommen. Ein Radiosender kann eigentlich nicht mehr erkennen, ob es sich bei dem Client um streamWriter handelt oder nicht.
LG/Best regards, Alex

"Journalism is printing what someone else does not want printed. Everything else is public relations."
- George Orwell

D1734FA178BF7D5AE50CB1AD54442494
 
WilliW
9 Posts
wrote on 03.07.16 at 16:59 last edited by WilliW on 03.07.16 at 17:10
Link to this post
GET /api/175/64/stream?user=Willi&amp;pass=pass:wort HTTP/1.1
Host: streams.calmradio.com
Accept: */*
Icy-MetaData:1
Connection: close

HTTP/1.1 200 OK
Server: nginx
Date: Sun, 03 Jul 2016 14:27:24 GMT
Content-Type: audio/mpeg; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: max-age=0, private, must-revalidate
Accept-Ranges: none
icy-br: 64
ice-audio-info: bitrate=64;samplerate=44100;channels=2
icy-description: CALM RADIO
icy-genre: Classical
icy-name: CALM RADIO - BAROQUE
icy-pub: 1
icy-url: https://calmradio.com/
Cache-Control: no-cache
Pragma: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
icy-metaint: 16000

… gefolgt von vielen Stream-Bytes. Alle 5 Sekunden setzt streamWriter die Verbindung zurück und baut sie neu auf.

Der Fehler "Unbekannter Content-Type" dürfte laut Source-Code in ICEStream.pas, Zeile 501ff. nicht auftreten, wenn der content type als 'audio/mpeg' erkannt wird. Wird vielleicht 'audio/mpeg; charset=utf-8' erkannt?
 
alex
2470 Posts
wrote on 04.07.16 at 13:05
Link to this post
Wird vielleicht 'audio/mpeg; charset=utf-8' erkannt?

Ich denke, dass es daran liegt, habe gestern kurz geguckt. Ich schaue mal, ob ich das diese Woche beheben kann. Wenn es soweit ist, dann poste ich hier.
LG/Best regards, Alex

"Journalism is printing what someone else does not want printed. Everything else is public relations."
- George Orwell

D1734FA178BF7D5AE50CB1AD54442494
 
WilliW
9 Posts
wrote on 04.07.16 at 15:57
Link to this post
Hallo Alex,

das wäre super, denn ich habe inzwischen herausgefunden, dass streamWriter die calmradio-Metadaten richtig interpretiert und richtige Einzeldateien schreibt.

Gruß Willi
 
alex
2470 Posts
wrote on 07.07.16 at 19:11
Link to this post
Moin,

bitte mal mit der neuesten Build testen.
LG/Best regards, Alex

"Journalism is printing what someone else does not want printed. Everything else is public relations."
- George Orwell

D1734FA178BF7D5AE50CB1AD54442494
 
WilliW
9 Posts
wrote on 09.07.16 at 15:31
Link to this post
Das funzt jetzt, vielen Dank Alex!

Allerdings nur mit dem Workaround hostname:80, vielleicht kannst du ja noch fürs nächste Build den URL Parser fixen.

So, dann auf zu Paypal! :)
 
WilliW
9 Posts
wrote on 09.07.16 at 15:47
Link to this post
Ooopsss!

In der Euphorie zu früh gefreut (und gespendet). StreamWriter verbindet sich jetzt, empfängt Daten, zeigt auch die Datenmenge an, spielt aber nichts ab und speichert nichts !!

Sobald ich einen "normalen" Stream auswähle, wird normal abgespielt und gespeichert.

Was nun?
 
alex
2470 Posts
wrote on 09.07.16 at 20:21
Link to this post
Moin,

das ist schade. Ich bin einfach mal so dreist: Könntest du mir die URL mit Benutzername und Passwort testweise zur Verfügung stellen (per Mail)? Oder hast du zufällig einen anderen Stream, der sich so verhält? Sonst kann ich da nicht viel machen fürchte ich…

Achja: Wenn wir das nicht hinbekommen, und die Spende aus deiner Sicht mit der Problembehebung verbunden ist, kann ich das Geld selbstverständlich zurück schicken.
LG/Best regards, Alex

"Journalism is printing what someone else does not want printed. Everything else is public relations."
- George Orwell

D1734FA178BF7D5AE50CB1AD54442494
 
Yo24hua
726 Posts
wrote on 11.07.16 at 10:33 last edited by Yo24hua on 11.07.16 at 10:36
Link to this post
.
Hallo,

Die nachfolgenden Stream-URL's funktionieren in SW (Build 739 & 740 getestet) auch nicht, im VLC-Player funktionieren diese. Vielleicht ist das Problem zufälligerweise identisch:

http://www.grrif.ch/live/128k.mp3.m3u
http://www.grrif.ch/live/48k.mp3.m3u
Abwandlung aus VLC:
http://grrif.ice.infomaniak.ch/grrif-high.mp3
http://grrif.ice.infomaniak.ch/grrif-48.mp3
.
Legalität, Radio Verzeichnisse, Diskographie Verzeichnisse, Reguläre Ausdrücke, Videos...:
Yo24hua's streamWriter Special: > > > https://sites.google.com/site/yo24hua < < <

Alles mit Ruhe & Muse, denn Unmöglich sind nur die Dinge, die man nicht tut!
Befreie dich, Befreie dich, Befreie dich und du wirst deinen Weg finden!
··· ¥oæhua ···