jsonrpc File Download möglich?

  • Ich bin auf der Suche nach einem Kodi-Standard zum Download/zur Bereitstellung eines Files aus einem Addon-Ordner nach diesem Prinzip:
    localhost:8080/jsonrpc?request= { <json string mit Pfadangabe> }

    Hintergrund:
    Im Addon Ordner liegt eine *.mpd Datei deren Inhalt regelmäßig, also mit jedem neuen Song, aktualisiert wird. Diese Datei soll per http:// - Aufruf Plattform unabhängig inputstream.adaptive übergeben und dazu der bereits in Kodi vorhandene Webserver verwendet werden.

    Ziel ist die Vermeidung selbst einen lokalen Webservice entwickeln zu müssen. 8) ...es gibt zwar Beispiele, aber ich möchte das irgendwie umgehen und im Standard bleiben.
    Aufrufe wie:

    Python
    kodi_json = '{"jsonrpc": "2.0","id": 1, "method": "Files.PrepareDownload", "params": { "file": "' + song + '", "media": "files"} }'

    oder

    Python
    kodi_json = '{"jsonrpc": "2.0","id": 1, "method": "Files.Download", "params": { "path": "' + song + '" } }'

    mit

    Python
    xbmc.executeJSONRPC(kodi_json)

    liefern Parameter-Fehler oder einfach "Funktion ist nicht bekannt".

    Auch hatte ich irgendwo gelesen, dass mit Kodi 18 die Schnittstelle stark beschnitten wurde und Downloads darüber nicht mehr möglich sein sollen, konnte es jedoch nicht wiederfinden.
    Gibt es grundsätzlich im Kodi Standard solch eine Möglichkeit und ist jsonrpc der richtige Ansatz?

  • Gerade folgendes erfolgreich getestet:

    Code
    curl -X POST -H 'Content-Type: application/json' -i http://localhost:8080/jsonrpc --data '{"jsonrpc": "2.0", "params": {"path": "image://%2FUsers%2Ftehtux%2FLibrary%2FApplication%20Support%2FKodi%2Faddons%2Fplugin.video.youtube%2Ffanart.jpg"}, "method": "Files.PrepareDownload", "id": "1"}'

    Ob dir das weiter hilft und der richtige Ansatz ist, kann ich dir nicht beantworten.

  • Richtig es geht um das Amazon Mediathek Addon. Über Programmcode wird ein Request an Amazon gesendet, in der json-Antwort ist der Content des mpd-files enthalten.
    Dieser content wird lokal im Addon Ordner abgelegt und Kodi bzw. inputstream.adaptive zum Abspielen übergeben.
    Inputstream verlangt ' / ' im Pfad, was unter Windows nicht so gut kommt. Laut diversen Einträgen/Rückmeldungen sollte durch das Addon / im Addon ein lokaler Webservice bereitgestellt werden, der die Datei entsprechend ausliefert. Ich empfinde das noch immer als overkill und hoffe das irgendwie über die Kodi-Bordmittel lösen zu können.

    @TehTux, ich habe dein Beispiel ausprobiert und erhalte

    Python
    {"id":"1","jsonrpc":"2.0","result":{"details":{"path":"image/image%3a%2f%2f%252Fhome%252Fspacy%252F.kodi%252Fuserdata%252Faddon_data%252Fplugin.audio.amazonmedia%252Ffanart.jpg"},"mode":"redirect","protocol":"http"}}

    aber eben nicht die Datei an sich.

  • @TehTux, ich habe dein Beispiel ausprobiert und erhalte

    Python
    {"id":"1","jsonrpc":"2.0","result":{"details":{"path":"image/image%3a%2f%2f%252Fhome%252Fspacy%252F.kodi%252Fuserdata%252Faddon_data%252Fplugin.audio.amazonmedia%252Ffanart.jpg"},"mode":"redirect","protocol":"http"}}

    aber eben nicht die Datei an sich.

    Direkter Download geht auch (glaube) nicht mehr so. Reicht dir denn die URL nicht?

  • Genau das mache ich bereits, das Ergebnis liegt im Addon Ordner als "song.mpd" und unter Linux und Android funktioniert auch alles.
    Unter Windows ist der Dateipfad mit einem ' \ ' versehen und das mag inputstream nicht, also "hart" die ' \ ' auf ' / ' geändert und schon läufts bis zum nächsten Fehler. Libreelec verhält sich ähnlich, aber das hat nichts mit den Pfaden zu tun.
    DIe Idee war jetzt eine gemeinsame Basis zu schaffen zur Auslieferung von "song.mpd" und danach den nächsten Fehler zu untersuchen.

  • Vielleicht reden wir hier an einander vorbei oder ich hab schon ein Bier zu viel…

    Bei dem Ergebnis, was du gepostet hast, kommt als path image/image%3a%2f%2f%252Fhome%252Fspacy%252F.kodi%252Fuserdata%252Faddon_data%252Fplugin.audio.amazonmedia%252Ffanart.jpg.

    Die URL wäre dann:
    http://localhost:8080/image/image%3a%2f%2f%252Fhome%252Fspacy%252F.kodi%252Fuserdata%252Faddon_data%252Fplugin.audio.amazonmedia%252Ffanart.jpg

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!