VideoLibrary.Clean bestimmter Path per JSON-RPC

  • hiho,


    ich verzweifle gerade daran einen bestimmten Pfad zu bereinigen per JSON Befehl. Ein Update/refresh Befehl der jede Nacht nach neuem sucht funktioniert, also daran liegt es nicht. Es liegt irgendwie am Befehl:

    hat jemand etwas ähnliches bereits probiert und funktioniert es bei demjenigen?

    Code
    "{\"jsonrpc\":\"2.0\",\"method\":\"VideoLibrary.Clean\",\"params\":{\"directory\":\"smb://raspberrypi/cloud/Serien/Serientitel (2001)\"},\"id\":1}"
  • Der JSON-RPC Browser gibt folgendes aus und hier funktioniert es auch:


    Code
    params = JSONEncoder().encode({"jsonrpc":"2.0","method":"VideoLibrary.Clean","params":{"directory":"smb://tower/Multimedia/Serien"},"id":2})

    Letztendlich sieht es also ähnlich aus. Das Quoten der \" kannst Du dir übrigens sparen, indem Du für die umschliessenden Anführungszeichen die einfachen ' nimmst:

    '{"jsonrpc":"2.0","method":"VideoLibrary.Clean","params":{"directory":"smb://raspberrypi/cloud/Serien/Serientitel (2001)"},"id":1}'

    Umgedreht geht es natürlich genauso:

    "{'jsonrpc':'2.0','method':'VideoLibrary.Clean','params':{'directory':'smb://raspberrypi/cloud/Serien/Serientitel (2001)'},'id':1}"

    Lässt sich einfacher lesen.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • erstmal danke für deine hilfe :) mit dem Vereinfachen hat es bei mir unter windows leider nicht so funktioniert mit Powershell. Habe aber ein anderes Script gefunden welches bei mir mit SCAN und directory funktioniert. Komischerweise funktioniert es aber NICHT mit CLEAN und directory. Sicher das es bei dir funktioniert hat? denn wenn ich auf der Kodi Wiki und json schaue finde ich bei VideoLibrary.Clean garnicht die "directory" option?

  • Sicher das es bei dir funktioniert hat?

    Aber sicher, ich hab's ja ausprobiert ;)

    denn wenn ich auf der Kodi Wiki und json schaue finde ich bei VideoLibrary.Clean garnicht die "directory" option?

    https://kodi.wiki/view/JSON-RPC_API/v12#VideoLibrary.Clean
    Klappe dort mal die "JSON schema description aus" und dann siehst Du auch die Option. Unten dann noch mal einen Screenshot vom JSON-RPC-Browser

    Ich kann Dir zum rumprobieren wirklich den JSON-RPC Browser empfehlen, der macht viele Dinge einfacher. Ich muss nur mal schauen, wie der genau zu installieren geht.

  • @PvD
    Danke dir ich hab den Fehler gefunden. Bei mir hat der parameter content und tvshows gefehlt. nun funktioniert es.

    Falls jemand auch mal über google auf das Problem trifft. Hier mein abgeändertes script von reddit für powershell:
    (Benutzer, passwort, ip und port muss natürlich geändert werden.

    Quelle Reddit:
    https://www.reddit.com/r/PowerShell/c…odi_powershell/

  • Hier nochmal der Link zur Installation des JSON-RPC-Browsers: https://forum.kodi.tv/showthread.php?tid=172734

    Dadurch, das er Introspect-Methoden benutzt (also den "Befehlsumfang" der verwendeten API-Version abfragt), funktioniert er mit jeder RPC-API Version, solange sich nichts grundlegend ändert.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

    Einmal editiert, zuletzt von PvD (16. Juli 2021 um 00:03)

  • @PvD
    danke dir, hatte mal nach dem Browser gesucht aber nix gefunden. der Link hat geholfen. ABER die Beschreibung ist ja schon etwas falsch...zum beispiel steht dort man soll auf den Pfad wechseln mit ...indexd.html aber da ist das d zuviel. muss man auch erstmal wissen.

    Hab das tool nun aufrufen können aber ein paar fragen stellen sich mir noch? Man muss ja oben auf Connection->New gehen und was trage ich dort ein? Was ist der Ajax End Point und der Socket End Point?

  • Man muss ja oben auf Connection->New gehen und was trage ich dort ein? Was ist der Ajax End Point und der Socket End Point?

    Du kannst die Standardeinstellungen übernehmen, sofern Kodi auf der gleichen Maschine wie der Browser läuft (also localhost). Ansonsten halt die IP oder den Rechnernamen nehmen, wo der RPC-Browser/Kodi drauf läuft. Damit das ganze funktioniert, muss Kodi laufen. Wenn Du kein Multimonitor Setup hast, wird es natürlich etwas prickelig.

    Ajax- und Socket-Endpoint sind die Ports, auf denen Kodi für die Kommunikation lauscht. Die sind per se schon richtig eingestellt. Ich meine mich aber zu erinnern, dass die Steuerung über HTTP enabled sein muss (Einstellungen, Dienste). Sollte aber bei Dr so sein, sonst könntest Du kein JSON absetzen.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • ok so langsam komme ich dahinter... Bei mir ist es halt etwas komplizierter weil das webinterface nicht auf 8080 läuft sondern 82 und über eine externe domain nochmal über einen ganz anderen port über den router angesprochen wird welcher dann auf den kodi-pc Port 82 weiterleitet. Auf jeden fall läuft das tool bei mir jetzt :) An sich ne coole sache weil es ist Schlank und funktioniert einfach. gut zum rumspielen und testen ob XYZ überhaupt funktioniert. Danke :)

    ich hatte unter den Diensten auch nur 1 von 2 Optionen aktiviert für die JSON steuerung. Warum auch immer was das zweite (für entfernte rechner können steuern) deaktiviert.

  • Das ge*le ist ja der erzeugte JSON-String, den man(n) sich dann einfach rausziehen kann:

  • Ich nehme mal an, Du bist mit dem Smartphone unterwegs? Ich habe da zwei Bilder angehangen, die man mobil nicht sieht. Ansonsten sollte das selbsterklärend sein :)

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Dann kopiere ich mal die entscheidene Stelle raus:


    Code
    {"jsonrpc":"2.0","method":"VideoLibrary.Clean","params":{"showdialogs":true,"content":"tvshows","directory":"smb://tower/Multimedia/Serien"},"id":2}

    Das kannst Du als JSON-String z.B. per HTTP senden oder in der Powershell verwenden usw. Da musst Du nicht ewig an der Syntax rumprobieren.

  • Beschreibe mal, was Du machst. Ich weiß ja nicht, wie Du die Abfrage im String anderweitig verwurstest...

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • wie gesagt, folgendes script funktioniert wenn ich NUR das VideoLibrary.Clean sende OHNE parameter:


    das funktioniert. Dann wird ein Clean ausgeführt in Kodi.
    Füge ich aber die parameter hinzu tut sich garnix:

    das ganze müsste eigentlich auch mit Scan funktionieren falls du es mit Clean nicht probieren willst. wie gesagt ohne die parameter funktionieren beide (scan und clean) aber mit parametern tut sich nix

  • Mal ein Beispiel zur Ermittlung der Lautstärke: Das gehört zur Gruppe Applications und der Methode GetProperties:

    • Du suchst Dir deine gewünschte Anfrage aus und führst Sie aus
    • Du kopierst Dir das JSON aus dem Python-Code raus
    • und setzt es z.B. als HTTP-Request ab.

    Es funktionieren nicht alle JSON-RPC per HTTP (Permission denied), das erkennt man aber, wenn man sich die Permissions im RPC-Browser im Schema-Reiter anschaut.

  • Kommst Du per http://localhost:8080 in Kodi rein oder musst Du dich erst anmelden? Passt der Port?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

Jetzt mitmachen!

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