@spacy, kann man dich noch in irgendeiner Form unterstützen? Wie sieht denn deine Lösung zum abspielen der Songs aus? Vll kann man bei den Helper Komponenten helfen?
Grüße
Beiträge von niog
-
-
hi @spacy,
ich habe mal wieder mit dem python Framwork probiert - sorry ich hab mich immernoch an die Kodi Implementierung bzw wie Plugins dort geschrieben werden gewöhnt - und ich bekomme beim Aufruf von "com.amazon.digitalmusiclocator.DigitalMusicLocatorServiceExternal.getHLSManifest" folgendes zurück:Code"__type": "com.amazon.digitalmusiclocator#AuthenticationException", "message": "Request authentication failure : UNSUPPORTED_DEVICE_TYPE"
Bist du darüber auch schon gestolpert? Vll stimmt einfach was mit der überlieferten Dervice ID/dem Device Type nicht?
-
hi @spacy,
aktuell bekomme ich leider die Meldung, dass die Streaming Url nicht gefunden wurde. Sind diesbezüglich Probleme bekannt?
Aber schon mal vielen vielen Dank für die tolle ArbeitGrüße
-
Halli hallo,
ich hab das Ganze mit verfolgt. Leider fehlen mir auch die Kenntnisse, was die Plugin Erstellung von Kodi betrifft und wie die Api von Amazon so tickt. Auf Basis der Status Posts von 'spacy' und der Python Bibliothek amazon-music (https://github.com/Jaffa/amazon-music) habe ich ein bisschen rumprobiert und irgendwann eine Rückgabe erhalten, die sich wahrscheinlich wieder zu Liedern zusamme bauen lässt :). Fangen wir vorne an:
Beim Api Aufruf von "getRestrictedStreamingURL" gab es anscheinend immer eine M3U Datei zurück, welche 10s Segmente der Songs beinhaltet hatte. Um nun eine Rückgabe der Api "getDashManifestsV2" zu bekommen, musste ich in der oben erwähnten python Bibliothek folgendes erstzen:Python
Alles anzeigenstream_json = self._am.call( 'dmls/', 'com.amazon.digitalmusiclocator.DigitalMusicLocatorServiceExternal.getRestrictedStreamingURL', { 'customerId': self._am.customerId, 'deviceToken': { 'deviceTypeId': self._am.deviceType, 'deviceId': self._am.deviceId, }, 'appMetadata': { 'https': 'true' }, 'clientMetadata': { 'clientId': 'WebCP', }, 'contentId': { 'identifier': self.identifier, 'identifierType': self.identifierType, 'bitRate': 'HIGH', 'contentDuration': self.duration } })
durch
Code
Alles anzeigenstream_json = self._am.call( 'dmls/', 'com.amazon.digitalmusiclocator.DigitalMusicLocatorServiceExternal.getDashManifestsV2', { 'customerId': self._am.customerId, 'deviceToken': { 'deviceTypeId': self._am.deviceType, 'deviceId': self._am.deviceId, }, 'contentIdList': [{ 'identifier': self.identifier, 'identifierType': self.identifierType, }], 'bitrateTypeList': ['HIGH'], 'musicDashVersionList': ['V2'], 'appInfo': { 'musicAgent': 'Maestro/1.0 WebCP/1.0 ( 7619f465-172e-8781-f814-feda38a208c0 )', } })
wobei die ID (steht in der runden Klammern) bei musicAgent bei jedem Aufruf neu generiert wird. Auf der Seite von Amazon konnte ich hierzu folgende function ausfindig machen:
Codevar a = function() { function e() { return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) } return e() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e() }();
Anschließend bekommt man folgendes zurück:
Code<Initialization sourceURL=\\"https://dfqzuzzcqflbd.cloudfront.net/........\\"/> <SegmentURL media=\\"https://dfqzuzzcqflbd.cloudfront.net/.........\\"/> <SegmentURL media=\\"https://dfqzuzzcqflbd.cloudfront.net/..........\\"/> <SegmentURL media=\\"https://dfqzuzzcqflbd.cloudfront.net/..........\\"/> .....
Vll hilft es ja weiter
-
Hallo zusammen,
ich hatte angefangen mich in die json api einzuarbeiten und wollte mir aus dem Addon Radio die Radio Sender anzeigen lassen, welche ich als "meine Sender" definiert hatte.curl Aufruf:
curl --header 'Content-Type:application/json' --data-binary '{"method":"Files.GetDirectory","id":44,"jsonrpc":"2.0","params":{"directory":"plugin://plugin.audio.radio_de/stations/my/"}}' '<IP>:<Port>/jsonrpc'Die Rückgabe funktioniert soweit, nur ändert sich in Kodi immer die Ansich "Vorschaubild". Leider habe ich im Internet hierzu nichts gefunden, habt ihr eine Idee? Ich verwende die neuste stable Version von Kodi unter Ubuntu.