mit http://localhost:82 komme ich ganz normal auf das webinterface. (Ich habe unter dienste den standardport ja von 8080 auf 82 geändert)
VideoLibrary.Clean bestimmter Path per JSON-RPC
-
kinofan90 -
14. Juli 2021 um 21:43 -
Unerledigt
-
-
Dann musst Du natürlich auch Port 82 für die HTTP-Requests nehmen:
http://localhost:82/jsonrpc?request={"jsonrpc":"2.0","method":"Application.GetProperties","params":{"properties":["volume"]},"id":2}
-
-
-
Na, da gehts ja... Wie man das jetzt in Deinem Skript vernünftig zerlegt, entzieht sich meiner Kenntnis.
-
-
eben nicht...
gebe ich nach dem vorherigen shema was ja funktioniert hat folgendes ein:Codehttp://localhost:82/jsonrpc?request={"jsonrpc":"2.0","method":"VideoLibrary.Scan","params":{"directory":"smb://raspberrypi/cloud/Serien/Serientitel (2001)","showdialogs":true},"id":3}
kommt wie gesagt diese Fehlermeldung
edit: habe mal die Authentifizierung in kodi deaktiviert aber das brachte auch nichts
-
kommt wie gesagt diese Fehlermeldung
Wenn Du jetzt "Permission denied" meinst, das habe ich ja bereits gesagt:
Es funktionieren nicht alle JSON-RPC per HTTP (Permission denied)
dazu gibt es hier eine Erklärung: https://forum.kodi.tv/showthread.php?tid=352997
Mit einem HTTP-POST (z.B. via curl) bist Du also in jedem Fall besser bedient als mit HTTP-GET. Das ändert aber nichts daran, dass man sich mit dem JSON-RPC-Browser sehr schön den JSON-String rausziehen kann
-
-
Versuche mal sowas:
Code
Alles anzeigen$json_username ='kodi' $json_pwd = 'passwort' $json_hostname = 'ip' $json_port = '8080' $jsonmethod = 'POST' $secpwd = ConvertTo-SecureString $json_pwd -AsPlainText -Force $ParamJSON = '{"jsonrpc":"2.0","id":1,"method":"VideoLibrary.Clean","params":{"showdialogs":"true","content":"tvshows","directory":"smb://raspberrypi/cloud/Serien/Serientitel (2001)"}}' $url = 'http://'+$json_hostname+':'+$json_port+'/jsonrpc' $mycreds = New-Object System.Management.Automation.PSCredential ($json_username, $secpwd) $webreq = Invoke-WebRequest -Uri $url -Credential $mycreds -Body $ParamJSON -ContentType application/json -Method POST ($webreq.content|convertfrom-json).result.item.label #or item.title (the library name, label will show filename if watching not from 'library')
-
Wenn Du jetzt "Permission denied" meinst, das habe ich ja bereits gesagt:
dazu gibt es hier eine Erklärung: https://forum.kodi.tv/showthread.php?tid=352997
Mit einem HTTP-POST (z.B. via curl) bist Du also in jedem Fall besser bedient als mit HTTP-GET. Das ändert aber nichts daran, dass man sich mit dem JSON-RPC-Browser sehr schön den JSON-String rausziehen kanndas ist auch meine vermutung, ich hatte den Thread auch schon gefunden und glaube das einige dinge, warum auch immer "gesperrt" sind und es bei dem JSON-Browser zum beispiel funktioniert weil es direkt aus dem Kodi-Environment kommt und somit nichts "externes" ist. Sehe ich das richtig so?
du meinst also mit curl so wie ich es anfangs geschrieben habe sollte es gehen? Am besten wäre es natürlich wenn man irgendwie die funktion des JSON-Browsers manipulieren könnte so das man diesem sagen kann er soll xyz ausführenVersuche mal sowas:
Code
Alles anzeigen$json_username ='kodi' $json_pwd = 'passwort' $json_hostname = 'ip' $json_port = '8080' $jsonmethod = 'POST' $secpwd = ConvertTo-SecureString $json_pwd -AsPlainText -Force $ParamJSON = '{"jsonrpc":"2.0","id":1,"method":"VideoLibrary.Clean","params":{"showdialogs":"true","content":"tvshows","directory":"smb://raspberrypi/cloud/Serien/Serientitel (2001)"}}' $url = 'http://'+$json_hostname+':'+$json_port+'/jsonrpc' $mycreds = New-Object System.Management.Automation.PSCredential ($json_username, $secpwd) $webreq = Invoke-WebRequest -Uri $url -Credential $mycreds -Body $ParamJSON -ContentType application/json -Method POST ($webreq.content|convertfrom-json).result.item.label #or item.title (the library name, label will show filename if watching not from 'library')
da tut sich leider nichts...funktioniert nicht
-
-
lad dir doch mal Yatse aufs Handy. Dann addest du dein kodi dort.
Wenn dort Filme angezeigt werden und die Funktionen dort gehen. Ist mit deinem kodi alles in Ordnung. So kann man ausschließen das es an deinen Einstellungen in kodi liegt.
Dort kann man übrigens auch die DB aktualisieren usw. Yatse nutzt auch die API für alles.
-
da tut sich leider nichts...funktioniert nicht
Ich habe festgestellt, dass hier im speziellen der Library.Clean auch nicht jedesmal funktioniert, zumindest nicht in kurzen Abständen. Versuche doch mal für $paramJSON mal einen anderen Querystring einzusetzen, z.B. das Ändern der Lautstärke oder eine Tastensimulaton (hoch/runter usw.). Dann weißt Du, ob das generell funktioniert.
-
-
Habe nicht alles verfolgt. Nur die kurze Anmerkung, dass oben anscheinend der Port "82" angesprochen wird, im Script aber 8080 verwendet wird.
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!