HOW-TO:Remotely update library

From Official Kodi Wiki
Jump to navigation Jump to search

Some quick methods to updating the Kodi library outside of the Kodi interface. There are also several supplemental tools and smartphone remotes that can remotely update the library as well. These methods require Settings>Services>Control>Allow remote control via HTTP to be enabled.

Command line

To add new content to the library (Update):

  • Video: curl --data-binary '{ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}' -H 'content-type: application/json;' http://<User>:<Password>@<hostname>:<port>/jsonrpc
  • Audio: curl --data-binary '{ "jsonrpc": "2.0", "method": "AudioLibrary.Scan", "id": "mybash"}' -H 'content-type: application/json;' http://<User>:<Password>@<hostname>:<port>/jsonrpc


To remove content from library (Clean):

  • Video: curl --data-binary '{ "jsonrpc": "2.0", "method": "VideoLibrary.Clean", "id": "mybash"}' -H 'content-type: application/json;' http://<User>:<Password>@<hostname>:<port>/jsonrpc
  • Audio: curl --data-binary '{ "jsonrpc": "2.0", "method": "AudioLibrary.Clean", "id": "mybash"}' -H 'content-type: application/json;' http://<User>:<Password>@<hostname>:<port>/jsonrpc


Python

To add new content to the video library (Update):

import urllib, urllib2
data = urllib.urlencode({"jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "1"})
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, "hostname:port", 'username', 'password')
urllib2.install_opener(urllib2.build_opener(urllib2.HTTPBasicAuthHandler(passman)))
req = urllib2.Request('http://hostname:port/jsonrpc', headers={ "Content-Type" : "application/json"})
f = urllib2.urlopen(req, data='{"jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "1"}').read()

Replace the "VideoLibrary.Scan" in the second line with "AudioLibrary.Scan", "VideoLibrary.Clean" or "AudioLibrary.Clean" to perform other actions.


Windows Command Line

You will need the Win32 2000/XP binary version of cURL by Günter Knauf. Download it here: http://curl.haxx.se/ Create a cURL folder in the Program Files directory and place the contents of the zip file in the root of that folder. (You can put it elsewhere if you like just make sure you modify the code to reflect the location of the exe file)


To add new content to the library (Update):

  • Video: "C:\Program Files (x86)\cURL\curl.exe" -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"VideoLibrary.Scan\", \"id\": \"mybash\"}" -H "content-type:application/json" http://user:pass@localhost:port/jsonrpc > NUL 2>&1
  • Audio: "C:\Program Files (x86)\cURL\curl.exe" -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"AudioLibrary.Scan\", \"id\": \"mybash\"}" -H "content-type:application/json" http://user:pass@localhost:port/jsonrpc > NUL 2>&1


To remove content from library (Clean):

  • Video: "C:\Program Files (x86)\cURL\curl.exe" -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"VideoLibrary.Clean\", \"id\": \"mybash\"}" -H "content-type:application/json" http://user:pass@localhost:port/jsonrpc > NUL 2>&1
  • Audio: "C:\Program Files (x86)\cURL\curl.exe" -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"AudioLibrary.Clean\", \"id\": \"mybash\"}" -H "content-type:application/json" http://user:pass@localhost:port/jsonrpc > NUL 2>&1


Replace "user:pass" with your username and password, localhost can remain unless doing it remotely in which case replace with IP address, replace "port" with the port number you have configured in your settings. The " > NUL 2>&1" stops the command from displaying any output (for instance, when running a batch file). You can leave that out if you want.


HTTP (does not work in v18 Leia)

To add new content to the library (Update):

  • Video: http://<User>:<Password>@<hostname>:<port>/jsonrpc?request={"jsonrpc":"2.0","method":"VideoLibrary.Scan"}
  • Audio: http://<User>:<Password>@<hostname>:<port>/jsonrpc?request={"jsonrpc":"2.0","method":"AudioLibrary.Scan"}


To remove content from library (Clean):

  • Video: http://<User>:<Password>@<hostname>:<port>/jsonrpc?request={"jsonrpc":"2.0","method":"VideoLibrary.Clean"}
  • Audio: http://<User>:<Password>@<hostname>:<port>/jsonrpc?request={"jsonrpc":"2.0","method":"AudioLibrary.Clean"}


See also