Kodi Community Forum
Library Update URL for JSON as HTTP API depreciated - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Add-on Support (https://forum.kodi.tv/forumdisplay.php?fid=27)
+---- Forum: Web Interfaces (https://forum.kodi.tv/forumdisplay.php?fid=156)
+---- Thread: Library Update URL for JSON as HTTP API depreciated (/showthread.php?tid=154126)

Pages: 1 2


Library Update URL for JSON as HTTP API depreciated - sy278 - 2013-01-31

Hi guys,

In Dharma and Eden I always used the below URL command from my web browser to initiate a library update:

192.168.0.21:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn&parameter=XBMC.updatelibrary(video)



It seems that in Frodo that due to the HTTP API being replaced by the JSON one thatthis is no longer available, is there an equivalent I can use for Frodo?


Thanks


RE: Library Update URL for JSON as HTTP API depreciated - sy278 - 2013-02-01

bump


RE: Library Update URL for JSON as HTTP API depreciated - zosky - 2013-02-05

from your browser ... go to the default webUI ... click remote ... click update library

from a command line ...
curl --data-binary '{ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "myScipt"}' -H 'content-type: application/json;' http://[IP-ADDRESS]:8080/jsonrpc


RE: Library Update URL for JSON as HTTP API depreciated - danmedhurst - 2013-02-22

This will do it from a URL :

http://192.168.1.64:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}

As a note, these are all the URl commands i've figured out so far :

List Movies
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "VideoLibrary.GetMovies", "params": { "filter": {"field": "playcount", "operator": "is", "value": "0"}, "limits": { "start" : 0, "end": 75 }, "properties" : ["art", "rating", "thumbnail", "playcount", "file"], "sort": { "order": "ascending", "method": "label", "ignorearticle": true } }, "id": "libMovies"}
Play File
http://192.168.1.66:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "Player.Open", "params": { "item": { "file": "smb://serveur/movie/movie.mkv" } }, "id": 1 }
Currently Playing
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetActivePlayers", "id": 1}
Pause Currently Playing
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 1 }, "id": 1}
Update Library
http://192.168.1.64:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}


RE: Library Update URL for JSON as HTTP API depreciated - sereeds - 2013-02-22

How can I update a specific directory of the video library.Huh

I have done this many times with the old http API, but now with JSON it seems to only work for updating the entire library.
I prefer to not have all the hard disks on my NAS spin up when I just need to update the library for a specific path.

This does not work:
curl -v -H "Accept: application/json" -H "Content-type: application/json" -d '{"id":5,"jsonrpc":"2.0","method":"VideoLibrary.Scan:"params":{"directory":"smb://nas4free/files2/Movies/"}}' http://192.168.0.102/jsonrpc

I get this error:
{"error":{"code":-32700,"message":"Parse error."},"id":null,"jsonrpc":"2.0"}

Yes, I am able to update the entire library, but I really would like just a specific path, like I could before Frodo:
curl -sS --connect-timeout 2 "http://10.5.0.102/xbmcCmds/xbmcHttp?command=ExecBuiltIn(UpdateLibrary(video,smb://nas4free/files2/TV/showname/))"


According to the Frodo JSON API, it is possible, but doesn't seem to work.
5.12.22 VideoLibrary.Scan
Scans the video sources for new library items
Permissions:

UpdateData

Parameters:

[ string directory = "" ]

Returns: string


Any ideas??


RE: Library Update URL for JSON as HTTP API depreciated - pkscout - 2013-02-23

I think you need a comma after VideoLibrary.Scan instead of the colon.


RE: Library Update URL for JSON as HTTP API depreciated - Zernable - 2013-02-23

As pkscout pointed out, you have some syntax errors. You need to replace the : after VideoLibrary.Scan with a comma, and you are missing an end quote after VideoLibrary.Scan.

curl -v -H "Accept: application/json" -H "Content-type: application/json" -d '{"id":5,"jsonrpc":"2.0","method":"VideoLibrary.Scan","params":{"directory":"smb://nas4free/files2/Movies/"}}' http://192.168.0.102/jsonrpc


RE: Library Update URL for JSON as HTTP API depreciated - k_zeon - 2013-03-01

(2013-02-22, 20:41)danmedhurst Wrote: This will do it from a URL :

http://192.168.1.64:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}

As a note, these are all the URl commands i've figured out so far :

List Movies
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "VideoLibrary.GetMovies", "params": { "filter": {"field": "playcount", "operator": "is", "value": "0"}, "limits": { "start" : 0, "end": 75 }, "properties" : ["art", "rating", "thumbnail", "playcount", "file"], "sort": { "order": "ascending", "method": "label", "ignorearticle": true } }, "id": "libMovies"}
Play File
http://192.168.1.66:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "Player.Open", "params": { "item": { "file": "smb://serveur/movie/movie.mkv" } }, "id": 1 }
Currently Playing
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetActivePlayers", "id": 1}
Pause Currently Playing
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 1 }, "id": 1}
Update Library
http://192.168.1.64:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}

This is great, I can now play a video file from pc to XBMC running Frodo. Do you also know the command to play a video file in Eden as i am running 2 different pods.

tks


RE: Library Update URL for JSON as HTTP API depreciated - k_zeon - 2013-03-02

do you know how to play a Playlist.m3u file with

Play File
http://192.168.1.66:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "Player.Open", "params": { "item": { "file": "smb://serveur/movie/movie.mkv" } }, "id": 1 }

thanks


RE: Library Update URL for JSON as HTTP API depreciated - akuiraz - 2013-03-03

Is it possible to Refresh a shows metadata from JSON-RPC? (like the TV Show Info dialog can do, refresh the shows metadata with the option to ignore local metadata and update using only internet)

I'm trying to find a faster way to rescrape all my shows using the latest tvdb.com metadata scraper and Frodo... I see that Frodo introduced some new fields that are scraped and saved to db (ie. episodes tvdb_id)... Thanks


RE: Library Update URL for JSON as HTTP API depreciated - zilexa - 2013-05-07

(2013-02-23, 16:54)Zernable Wrote: As pkscout pointed out, you have some syntax errors. You need to replace the : after VideoLibrary.Scan with a comma, and you are missing an end quote after VideoLibrary.Scan.

curl -v -H "Accept: application/json" -H "Content-type: application/json" -d '{"id":5,"jsonrpc":"2.0","method":"VideoLibrary.Scan","params":{"directory":"smb://nas4free/files2/Movies/"}}' http://192.168.0.102/jsonrpc

@Zernable, thanks a lot for this information, I have been looking and testing a lot but couldn't figure this out.
I would like to use this json command to be run by Transmission after a torrent has finished downloading (Transmission "run script when done". I have not figured out yet how Transmission can give the directory path to the script (must be a parameter like $1 but now at least I have the full command. Thanks!

EDIT: just figured out, Transmission has parameter $TR_TORRENT_DIR available. Now I need to figure out how to run this command on XBian where curl is not available..


RE: Library Update URL for JSON as HTTP API depreciated - transcender - 2013-11-09

can someone help?
I've managed to get the library scan to work when trying to update my old eden script to frodo but I can't get the notifications / msg sorted.
Running a windows batch file via Curl
%curlSRC%\curl.exe -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"GUI.ShowNotification\", "\params\":{"\title\":"testtitle","\message\":"TEST"}}" -H
content-type:application/json" http://user:pass@localhost:port/jsonrpc/jsonrpc

FIXED
%curlSRC%\curl.exe -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"GUI.ShowNotification\", \"params\":{\"title\":\"Auto Updater\",
\"message\":\"Updating...\"}}" -H "content-type:application/json" http://%XBMCu%:%XBMCp@%xbmcIP%:%XBMCwebport%/jsonrpc


RE: Library Update URL for JSON as HTTP API depreciated - finish.06 - 2014-01-14

(2013-02-22, 20:41)danmedhurst Wrote: This will do it from a URL :

http://192.168.1.64:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}

As a note, these are all the URl commands i've figured out so far :

List Movies
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "VideoLibrary.GetMovies", "params": { "filter": {"field": "playcount", "operator": "is", "value": "0"}, "limits": { "start" : 0, "end": 75 }, "properties" : ["art", "rating", "thumbnail", "playcount", "file"], "sort": { "order": "ascending", "method": "label", "ignorearticle": true } }, "id": "libMovies"}
Play File
http://192.168.1.66:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "Player.Open", "params": { "item": { "file": "smb://serveur/movie/movie.mkv" } }, "id": 1 }
Currently Playing
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetActivePlayers", "id": 1}
Pause Currently Playing
http://192.168.1.66:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 1 }, "id": 1}
Update Library
http://192.168.1.64:8080/jsonrpc?request={ "jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": "mybash"}

These are very nice! Thank you! Can I ask where you started looking to understand how to write such http request? I looked at the jsonrpc wiki, but it doesn't even tell you to start with ... "jsonrpc?request="... where is a solid source that will really help guide me? Is it a combination of multiple sources?

Thanks!

Caleb


RE: Library Update URL for JSON as HTTP API depreciated - kurosh - 2015-02-09

Hi,

This command works on my windows box to update the whole library...

curl -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"AudioLibrary.Scan\", \"id\": \"mybash\"}" -H "content-type:application/json" http://xbmc:xbmc@localhost:8080/jsonrpc


However I would really like to add specific directories (smb://KUROSH-NAS/Kurosh-NAS/Kurosh/Music)...


curl -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"AudioLibrary.Scan\", \"params\": \"directory\"="smb://KUROSH-NAS/Kurosh-NAS/Kurosh/Music/", \"id\": \"mybash\"}" -H "content-type:application/json" http://xbmc:xbmc@localhost:8080/jsonrpc

...and this command doesn't work depite various rearranging of the syntax I cannot make it work. Please could someone help?


RE: Library Update URL for JSON as HTTP API depreciated - tuxfuxch - 2015-02-09

try this:

curl -i -X POST -d "{\"jsonrpc\": \"2.0\", \"method\": \"VideoLibrary.Scan\",\"params\": {\"directory\": \"smb://KUROSH-NAS/Kurosh-NAS/Kurosh/Music/\"}, \"id\": 1}" -H "content-type:application/json" http://xbmc:xbmc@localhost:8080/jsonrpc

with the params, you need the brackets {}.
also the = had to be replaced with :

Didn't really test it, could still be something wrong (or i added a mistake). good luck.