Beiträge von spacy

    Glaubt mir, ich vermisse die tägliche freie Musikauswahl genauso wie ihr und würde eher heute als morgen das Ganze wieder zum Laufen bringen.
    Immer wenn man meint einen Schritt vorangekommen zu sein tauchen neue Hürden auf...hier mal der aktuelle Stand:

    Problem
    - Abspielen von allen nicht gekauften Song ist nicht mehr möglich (Live Fußball funktioniert 8) )

    Ursache
    - Amazon hat die Bereitstellung des Contents signifikant geändert und (so sieht es für mich aus) den DRM-Schutz oben drauf gepackt.

    Lösungsansätze / Entwicklungsstand
    - Client-Server-Kommunikation steht, das mpd File als Basis des Streamings kann extrahiert und lokal gespeichert werden
    - Kodi kann nativ keine mpd Files abspielen
    - Nutzung von inputstream.adaptive als "helper"
    - Wiedergabe mittels inputstream.adaptive ist bisher nicht erfolgreich (liegt an Kodi selbst, Alternativen müssen noch getestet werden)
    - Wiedergabe mittels VLC funktioniert sofort, aber und das habe ich erst kürzlich herausgefunden stoppt die Wiedergabe nach ca. 30 Sekunden (Ursache bisher unklar)

    Vermutung
    - selbst wenn die Wiedergabe mit Kodi funktionieren sollte, erwarte ich das gleiche Verhalten wie mit VLC -> also weiterhin weit weg von einer Lösung
    - in der weiteren Client-Server-Kommunikation wird ein "licenseChallenge" gesendet und daraufhin erhält man den DRM-Schlüssel
    - mit diesem DRM-Schlüssel kann vermutlich die komplette Wiedergabe erfolgen

    Fragestellungen
    - Wenn der gesamte Content DRM geschütz ist, warum ist dann eine teilweise Wiedergabe möglich? ...ist total unlogisch
    - Wenn DRM wider Erwarten keine Rolle spielt, warum stoppt die Wiedergabe nach ca. 30 Sekunden? ...möglicherweise habe ich hier noch etwas übersehen

    Aus meiner Sicht ist die Ermittlung der "licenseChallenge" im wahrsten Sinne des Wortes der Schlüssel. Diese wird lokal durch Scripting ermittelt und versteckt sich in den vielen Script-Dateien von Amazon (11 habe ich bisher gezählt). Selbige sind extrem kryptisch und umfassen teilweise mehr als 130.000 Zeilen Code und Dank Visual Studio kann man diese Dateien "lesbarer" gestalten...(verstehen ist eine andere Sache :whistling: ). Script-Debugging führte bisher nicht zum Erfolg und Script-Recording auch nicht....dafür passiert einfach zu viel und vermutlich passten meine Breakpoints nicht.
    Also wenn jemand Lust und Laune hat an dieser Stelle zu unterstützen..."feel free to support" :thumbup:

    Also der "plugin://..." Aufruf wäre DIE Lösung. :thumbup:
    @knaerzche, in diesem Post ist die Struktur der JSON-Response zu finden. Das MPD File sieht ungefähr so aus:

    Wenn ich dieses File lokal mit z.B. VLC öffne, funktioniert es sofort und fehlerfrei. Und jetzt geht es eigentlich "nur darum" Kodi das lokale MPD-File schmackhaft zu machen, der eigentliche Content liegt ja weiterhin in der Cloud. Wenn ich mal etwas Zeit habe, werde ich mir die Webserver Geschichte näher ansehen, aber schöner (und effizienter) wäre vermutlich die Erweiterung auf "plugin://..."

    @niog, ich muss einen lokalen Webserver als Helper einbauen. D.h. im Unterordner von "resources/lib" sollte eine Datei wie "LocalServer.py" oder so ähnlich entstehen. Diese Datei soll den lokalen Webserver beinhalten, mit "local binding" etc. Einzige Aufgabe des Webservers ist einen parametrisierbaren Datei-Request anzunehmen und diese Datei aus dem Addon Ordner "/userdata/addon_data/plugin.audio.amazonmedia" auszuliefern. Wie genau die Interaktion zwischen Addon und dem lokalen Webserver abläuft weiß ich aufgrund von Zeitmangel noch nicht...habe aktuell nur eine grobe Vorstellung davon. Python Beispiele dazu gibt es im Netz, ebenso ein Beispiel aus oben verlinkten Beitrag, welches ich sehr interessant finde. Wichtig wäre mir in diesem Zusammenhang der extrem eingeschränkte Handlungsspielraum des Webservers, um zumindest ein Mindestmaß an Sicherheit gewährleisten zu können. Darüber hinaus sollte der Webserver nur eine gewisse Zeit am Leben bleiben...sinngemäß mit ersten Aufruf des Addons starten und nach eine Zeit x der Nichtbenutzung wieder löschen. Nach einem erneuten Aufruf des Addons sollte geprüft werden ob der Weberserver existent ist oder ggf. neu gestartet werden müsste.
    Weitere techn. Details sind im o.g. Beitrag zu finden. Was bräuchtest Du um starten zu können? Reicht das evtl. schon?

    @balabana, ja schade, aber vielleicht findet sich noch ein Entwickler der sich auf audible konzentriert.

    Allgemeines Update zum Entwicklungsstand:
    Ich habe eine Lösung zum Abspielen aller Songs finden können, allerdings suche ich noch nach einer "sauberen" Kodi-Integration. D.h. der eigentliche Code ist fertig und jetzt geht's "nur noch" um die Kodi-Schnittstellen.
    So wie es momentan aussieht läuft es darauf hinaus eine "Helper"-Komponente entwickeln zu müssen und diese irgendwie ins Addon zu integrieren.
    ...also stehe ich wieder auf der grünen Wiese und muss erst einmal schauen wie man das macht. 8)

    Schade, dennoch Danke.
    Letzte Frage...ich habe Python Beispiele für einen simplen WebServer gefunden, jedoch nichts wie man einen Service einem Addon zuweist bzw. diesen ins Addon integriert. Gibt es dazu evtl. Code-Beispiele?

    Den Kodi-eigenen Webserver hatte ich auch versucht zu verwenden, aber die URL wird auf den "normalen" Addon-Aufruf konsolidiert und damit funktionierts wieder nicht...wäre ja auch zu schön gewesen.

    Code
    'http://localhost:8080/#browser/music/plugin%3A%2F%2Fplugin.audio.amazonmedia%2F%3Fmode%3Dexternal%26asin%3D{}%26objectId%3D{}'.format(asin,objectId)

    @peak3d könntest Du bitte dein addon dahingehend erweitern, dass das mpd file auch lokal liegen kann? Damit könnte ich einige offene Punkte lösen.
    Die mpd-Daten welche ich abspielen möchte sind nämlich in einem JSON Response versteckt und diese kann inputstream so nicht verarbeiten.
    Du findest die Struktur der response unten und unter "manifest" verbirgt sich der mpd content.
    Wäre wirklich klasse. :thumbup:

    @balabana wenn ich das auf die Schnelle richtig gesehen habe ist "Audible" ein eigenständige Webseite (ein Subunternehmen von Amazon) mit eigenem Vertrag und eigener Benutzerverwaltung. Insofern besteht aktuell keine Implementierung dafür, auch wenn der Amazon Benutzeraccount dafür verwendet werden könnte. Dieses Addon beschränkt sich derzeit auf das Amazon Musik Angebot.

    So liebe Freunde des gepflegten Rasensports. Jetzt ist es endlich soweit. Ab sofort könnt ihr den aktuellen und den vergangenen Spieltag nachhören/mithören, denn Dank @peak3d konnte die zumindest für mich harte Nuss geknackt werden.

    Es stehen die verschiedenen Wettbewerbe als Kategorien zur Verfügung:
    Bundesliga
    2. Bundesliga
    DFB Pokal
    Champions League
    SuperCup

    Darüber hinaus gab es von euch den Wunsch aufgrund von Netzwerkaussetzern den VideoPlayer nutzen zu wollen. Das Addon ist jetzt so eingestellt, dass immer der VideoPlayer zur Wiedergabe verwendet wird.

    Mit der Fußballwiedergabe habe ich jetzt eine vernünftige techn. Basis, um mich dem DRM-Thema widmen zu können, denn die jüngsten Amazon Umstellungen zielen in die gleiche Richtung.

    Edit:
    Version 37 steht jetzt mit einer kleinen Korrektur bzgl. der Spieltagselektion bereit.

    Danke für deine Unterstützung.
    Jetzt kann ich (endlich) Amazon Live-Fußball in meinem Addon anbieten. Ich habe gerade die Wiedergabe getestet und es funktioniert prima mit dem VideoPlayer. Den stream type Movie werde ich noch austesten und wenn möglich gleich für alles quasi als "default" hinterlegt.
    Offen ist aktuell noch die DRM Geschichte, aber das ist ein anderes Thema und gehört nicht hier rein 8)

    Du hast Recht, ich hatte hier zwei Dinge miteinander vermischt, da war ich wohl zu sehr auf mein Addon fixiert. Entschuldigung.
    Die strm Datei habe ich außerhalb meines Addons als Video Datei als auch als Musik Datei starten können...somit bin ich jetzt dank deiner Hilfe einen Schritt weiter.
    D.h. es beschränkt sich auf den Aufruf innerhalb des Addons. Folgendes habe ich im Addon eingebaut:

    Python
    li = xbmcgui.ListItem(path=target)
    li.setProperty('inputstreamaddon', 'inputstream.adaptive')
    li.setProperty('inputstream.adaptive.manifest_type', 'mpd')
    li.setMimeType('application/dash+xml')
    li.setContentLookup(False)
    xbmcplugin.setResolvedUrl(self.addonHandle, True, listitem=li)

    Kodi startet kurz und stoppt gleich wieder alles. Vermutlich ist es nur noch eine Kleinigkeit. Hast Du evtl. noch einen Tipp für mich?
    Die letzten Einträge des logs habe ich angehangen und wenn es von Relevanz sein sollte, mein Addon ist ein Musik-Addon.


    @piet, Amazon hat wesentliche Teile der Wiedergabe komplett umgestellt. D.h. es wird jetzt ein MPD file ausgeliefert und bei nicht gekauften Songs noch DRM oben drauf gepackt.
    Ich konnte in meinem Addon alles soweit anpassen, dass zumindest theoretisch eine Wiedergabe möglich wäre, jedoch scheitere ich momentan an der inputstream.adaptive Implementierung und an der Lizenzschlüssel-Abfrage, speziell am Feld "licenseChallenge". Wenn es hilfreich ist teile ich gern meine bisherigen Entwicklungen/Erkenntnisse und ggf. finden wir gemeinsam eine Lösung.

    @niog, schau dir mal bitte die Funktionen "prepReqHeader" und "prepReqData" in meinem Code an. Vielleicht hilft das schon.
    Darüber hinaus kannst du im Chrome die Developer Tools einschalten und mal auf der Amazon Seite einen Song auswählen, da sieht du welche Parameter die Schnittstelle fordert und diese mit deinem Code vergleichen.

    Aufgrund der jüngsten Umstellungen seitens Amazon ist jetzt die mpd-File Wiedergabe essentiell geworden, unabhängig ob mit oder ohne DRM. Wenn du etwas finden solltest wäre das echt klasse und wenn ich dich dabei irgendwie unterstützen kann will ich das gern machen.

    inputstream.adaptive ist aktiviert. Die Übergabe an Kodi erfolgt mittels File "song.strm", der Inhalt ist folgender:

    Python
    #KODIPROP:inputstreamaddon=inputstream.adaptive
    #KODIPROP:inputstream.adaptive.manifest_type=mpd
    /home/<user>/.kodi/userdata/addon_data/plugin.audio.amazonmedia/song.mpd


    und verweist auf das lokale mpd-File (siehe Anhang, allerdings als *.txt hochgeladen), [definition=12,2]debugging[/definition] Mode wurde aktiviert und das Log-File ist ebenfalls im Anhang. Ab Zeile 666 steht etwas wie "error probing input format".
    Wenn der Player aufgrund von Abspielproblemen zum nächsten Titel springt, stürzt Kodi ohne Log-Eintrag oder andere Meldung komplett ab.

    Kodi erhält den Song via:

    Python
    li = xbmcgui.ListItem(path=song)
    xbmcplugin.setResolvedUrl(self.addonHandle, True, listitem=li)