Caching Proxy für Streaming

Milhouse
inaktiv
Beiträge: 644
Registriert: 28.12.2020, 09:58

Beitrag von Milhouse »

Moin Jürgen,

danke für den Hinweis - ich werde dort mal stöbern.

Beste Grüsse,

Eric
Bild
chriss0212

Beitrag von chriss0212 »

Hallo Gert
ist denn das Cachen überhaupt aus DRM-Gründen möglich?
Euphony cached ja vor der Wiedergabe ein komplettes Lied. Aber eben immer nur eins und das ist nach der Wiedergabe wieder gelöscht... denke ich...

Grüße

Christian
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Eric,

auf Windows-PCs existieren zumindest für Qobuz sämtliche gestreamten Musikstücke in einem proprietären Dateiformat.

Zu finden unter C:\Benutzer\[Dein benutzername]\AppDate\Roaming\Quobuz\tmp\Cache\[Verzeichnis]\"Segment-0....n"

Man könnte daher vielleicht folgendes ausprobieren: Mittels cmd.exe (concatenate-function) die Dateien eines Verzeichnisses hintereinanderhängen und an die Gesamtdatei die richtige Dateiendung anfügen (z.B. ".flac". Dann hätte man möglicherweise abspielbare Files.

Nur eine Idee, die vielleicht auch bei anderen Streamingdiensten funktionieren könnte, die bereits abgerufene Files im Cache speichern.

Grüße
Fujak
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo,

wenn ich meine Experimente in der Richtung vor einigen Jahren richtig in Erinnerung habe, konnte man die Qobuz-Dateien direkt mit Foobar (?) abspielen. Offenbar enthielten die die richtigen Angaben über Format etc. Aber ob das noch so ist, kann ich nicht sagen. Einfach ausprobieren. ;)

Viele Grüße

Jochen
Bild
Milhouse
inaktiv
Beiträge: 644
Registriert: 28.12.2020, 09:58

Beitrag von Milhouse »

Hallo Jochen,

also der Stream vom Qobuz Server kann, wenn man die URL weiß, direkt als FLAC aufgerufen werden.
Die URL des Tracks wird über einen HTTP Aufruf vor jedem Abspielen vom Qobuz Server abgefragt und ermittelt.
Der Proxy Server speichert den Stream (jedoch in seinem eigenen Cache Format) auf die Festplatte.
Jedoch wird beim erneuten Aufruf nicht auf den Cache zugegriffen, obwohl alle Get Query Parameter identisch sind.

Es geht mir bei dem ganzen Thema nicht schwerpunktmässig um das Thema Klang, sondern auch um Ressourcenschonung. Wenn man (wie ich denke so einige hier) dauernd an der Anlage optimiert, dann werden schonmal immer die gleichen Tracks hundertfach ab- oder angespielt.
Diese müssten mit der Proxy Lösung dann nicht über das ganze WWW gesendet werden.

Bzgl. des Themas Ripping gibt es andere Möglichkeiten - ich habe hierzu auch schonmal einen Squeezebox Client testweise umprogrammiert um die Streams auf HDD zu schreiben und Klangvergleiche zu machen. Allerdings ohne gravierende Unterschiede zu entdecken.

Beste Grüsse,

Eric
Bild
treble trouble
Aktiver Hörer
Beiträge: 647
Registriert: 17.03.2017, 18:54
Wohnort: NRW-SU

Beitrag von treble trouble »

Hi,
Milhouse hat geschrieben: 04.02.2022, 13:45 also der Stream vom Qobuz Server kann, wenn man die URL weiß, direkt als FLAC aufgerufen werden.
Das finde ich erstauntlich. Warum hat qobuz dann für open source Projekte die Lizenz zum Streamen entzogen, wenn die Stücke eh nur so wenig geschützt sind? Seltsam.
Die URL des Tracks wird über einen HTTP Aufruf vor jedem Abspielen vom Qobuz Server abgefragt und ermittelt.
Der Proxy Server speichert den Stream (jedoch in seinem eigenen Cache Format) auf die Festplatte.
Jedoch wird beim erneuten Aufruf nicht auf den Cache zugegriffen, obwohl alle Get Query Parameter identisch sind.
Vielleicht wird ein Cookie oder sonstige HTTP-Header mitgeschickt, die mit in den Cache-Key einfließen? Man müsste in dem Fall schauen, ob die Proxy-Cache-Konfiguration so geändert werden kann, dass der Cache-Key wirklich nur noch aus der URL gebildet wird.

Gruß
Gert
Bild
hkampen
Aktiver Hörer
Beiträge: 687
Registriert: 11.02.2018, 23:40
Wohnort: Köln

Beitrag von hkampen »

Hi,

früher konnte man sich den Traffic ansehen und ganze FLAC-Dateien runterladen. Das ist inzwischen geändert. Es werden jede Sekunde FLAC-Snippets gesendet. Wie die Authentifizierung gehandhabt wird, kann ich nicht erkennen, aber ich gehe davon aus, dass sie komplexer ist als früher.

Wo hat Qobuz die Lizenz entzogen? Volumio ist Open Source, Qobuz funktioniert damit wunderbar.

Grüße
Harald
Bild
hkampen
Aktiver Hörer
Beiträge: 687
Registriert: 11.02.2018, 23:40
Wohnort: Köln

Beitrag von hkampen »

Hi nochmal,

soweit ich bisher gefunden Erklärungen dazu habe, ermöglicht nur die Qobuz-eigene App die Ablage von Offlinedaten, und die sind verschlüsselt. Grund dafür sollen die Lizensierungen mit den Labels sein.

Die einzelnen Sekundensnippets werden im Browser gecached. Wie lange, kann ich in den Headern nicht einsehen. Denkbar ist, dass es andere Anwendungen auch so machen. Der Cache dürfte dann allerdings auch von der Größe her begrenzt sein. Ob und wie oft Roon z.B. einen Cache nutzt, könnte man mit Netzwerk-Monitoring wie Wireshark ermitteln.

Grüße
Harald
Bild
chriss0212

Beitrag von chriss0212 »

Hallo Harald

Aber Euphony kann ja jeweils ein komplettes Lied runterladen, bevor die Wiedergabe beginnt.

Grüße

Christian
treble trouble
Aktiver Hörer
Beiträge: 647
Registriert: 17.03.2017, 18:54
Wohnort: NRW-SU

Beitrag von treble trouble »

Hallo Harald,
hkampen hat geschrieben: 12.02.2022, 23:54 Wo hat Qobuz die Lizenz entzogen? Volumio ist Open Source, Qobuz funktioniert damit wunderbar.
Ich finde tatsächlich auch nichts mehr dazu im Web. Ich hatte vor paar Jahren davon gelesen, dass dem so war, weil eine open source Lizenz von diversen Tools verwendet wurde, um illegal Stück von Alben herunterzuladen, statt sie nur abzuspielen. Daher hat qobuz diese zurückgezogen, weswegen einige Player nicht mehr qobuz kompatibel waren. Vielleicht erinnere ich da aber irgendetwas falsch, denn sonst müsste man ja noch etwas zu dem Thema finden.

Schöne Grüße
Gert
Bild
Milhouse
inaktiv
Beiträge: 644
Registriert: 28.12.2020, 09:58

Beitrag von Milhouse »

hkampen hat geschrieben: 12.02.2022, 23:54 Hi,

früher konnte man sich den Traffic ansehen und ganze FLAC-Dateien runterladen. Das ist inzwischen geändert. Es werden jede Sekunde FLAC-Snippets gesendet. Wie die Authentifizierung gehandhabt wird, kann ich nicht erkennen, aber ich gehe davon aus, dass sie komplexer ist als früher.

Wo hat Qobuz die Lizenz entzogen? Volumio ist Open Source, Qobuz funktioniert damit wunderbar.

Grüße
Harald
Hallo Harald,

Ich habe zwar noch nicht den Traffic gesnifft, aber der LMS zieht den Track m.E. in einem Rutsch vom Qobuz Server, wenn im LMS Caching aktiviert ist. Habe das aktuell nur durch den Traffic Monitor in der FRITZ!Box angeschaut.
Allerdings alles mit dem LMS und nicht mit der Quobuz App.

Beste Grüße,

Eric
Bild
Milhouse
inaktiv
Beiträge: 644
Registriert: 28.12.2020, 09:58

Beitrag von Milhouse »

Hallo zusammen,

folgende Erkenntnisse habe ich inzwischen gewonnen:

also der LMS Server fragt zuerst die URL für den Track an über folgende URL mit diversen Parametern:

Code: Alles auswählen

http://www.qobuz.com/api.json/0.2/track/getFileUrl?app_id=XXXXXXX&format_id=27&request_sig=bcaf11cb02c30e1aeb1e3d096d1430fe&request_ts=1645897625&track_id=115413091&user_auth_token=wepoztiweporituwpoeirutpweoriutpwoeriut
Der Aufruf gibt dann folgende Antwort:
{"track_id":115413091,"duration":408,"url":"http:\/\/streaming-qobuz-std.akamaized.net:80\/file?uid=XXXXXXX&eid=115413091&fmt=7&profile=raw&app_id=942852567&cid=1135249&etsp=1645901447&hmac=HL2he8ZjBIcdv7q9dtmXwADZxxo","format_id":7,"mime_type":"audio\/flac","restrictions":[{"code":"FormatRestrictedByFormatAvailability"}],"sampling_rate":96,"bit_depth":24}

Ruft man die hier zurückgegebene URL dann per Browser auf, kann man den Track als FLAC File ohne DRM etc. abspeichern.
Soweit so gut.

Der Track wird von Wingate zwar im Cache gespeichert, allerdings wird bei erneutem Aufrufen nicht hierauf zurückgegriffen, sondern das File nochmal neu heruntergeladen.
Eventuell sind es die Settings in Wingate, die dies veranlassen - ich werde hier noch etwas forschen müssen.

Beste Grüsse,

Eric
Bild
Milhouse
inaktiv
Beiträge: 644
Registriert: 28.12.2020, 09:58

Beitrag von Milhouse »

Hallo zusammen,

Also ich habe etwas mit Squid als Proxy experimentiert und erste Erfolge einfahren können.

Die Songs werden sauber im Cache von Squid abgespeichert und beim wiederholten Aufruf nicht mehr aus dem Netz gesaugt, sondern aus dem Cache geholt.
Allerdings funktioniert dies nur zeitlich begrenzt, sodass ich vermute, das sich die URL, bzw. Die Übergabeparamter in einem zeitlichen Zyklus ändern.

Werde weiter forschen......

Beste Grüße,

Eric
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Eric,

ich verfolge deine Experimente gespannt mit. Lass uns bitte weiterhin daran teilhaben.

Viele Grüße

Jochen
Bild
Milhouse
inaktiv
Beiträge: 644
Registriert: 28.12.2020, 09:58

Beitrag von Milhouse »

Melomane hat geschrieben: 02.03.2022, 14:41 Hallo Eric,

ich verfolge deine Experimente gespannt mit. Lass uns bitte weiterhin daran teilhaben.

Viele Grüße

Jochen
Hallo zusammen,

dann gebe ich mal das nächste Update.

Es verhält es sich so, das sich folgende Parameter in der URL zeitabhängig ändern: etsp=1645901447&hmac=HL2he8ZjBIcdv7q9dtmXwADZxxo
Es gibt bei Squid die Möglichkeit über ein Helper Script Parameter fürs Caching auszuschliessen.
Hierzu existiert in der Distribution eine Perl Script, das allerdings unter der Windows Distribution nicht läuft.
Anscheinend soll Python hier besser funktionieren, sodass ich mich aktuell mit Python beschäftige.

Das ganze scheint aber nicht aussichtslos zu sein.
Es wird dann alles was man bei Quobuz (oder auch Tidal im nächsten Schritt) abspielt im Cache landen und wenn man es wieder hört nicht mehr aus dem WWW gestreamt werden, sondern von der lokalen Festplatte/SSD.
Ich denke der Aufwand lohnt hierfür weiter zu machen.

Beste Grüsse,

Eric
Bild
Antworten