Kodi Community Forum
JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+---- Forum: JSON-RPC (https://forum.kodi.tv/forumdisplay.php?fid=174)
+---- Thread: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC (/showthread.php?tid=68263)



- Montellese - 2011-11-05

I don't really like returning XBMC's default images as they are not the real thumbnails. Those are skin-dependant substitutes so you should probably get your own images (or like you said simply copy the ones from confluence or whatever skin you are using) so they match the rest of the design of your software. Otherwise every application using thumbnails returned by JSON-RPC would have to rely on the default images used by the skin each user is currently using.


- jimk72 - 2011-11-06

After working on it more I realized it is much better to return the "" so the client will know there is no image and can substitute there own. I actually posted before I should have sorry. I ended up allowing for anyone using my program to actually replace the images I have so it better fits their needs.


- dwagner - 2011-11-07

Firstly Montellese many thanks for all your help thus far.

How do I use Player.Open to resume a file, or do I have to play the file first and then send a separate seek command.


- Montellese - 2011-11-07

dwagner Wrote:Firstly Montellese many thanks for all your help thus far.

How do I use Player.Open to resume a file, or do I have to play the file first and then send a separate seek command.

Currently that's the only possibility. I'm planning to add a "resume" option though once Eden has been released.


- dwagner - 2011-11-08

Is there a simple way using the JSON API to retrieve the position of the currently playing media in the active playlist?


- Montellese - 2011-11-08

dwagner Wrote:Is there a simple way using the JSON API to retrieve the position of the currently playing media in the active playlist?

Yes just call Player.GetProperties with the "playerid" of the player and ask for the "position" property.


- dwagner - 2011-11-08

Montellese Wrote:Yes just call Player.GetProperties with the "playerid" of the player and ask for the "position" property.
Awesome, I was looking at fields of Player.GetItem and missed Player.GetProperties completely. Thank you.


- DryerLintPurple - 2011-11-09

I'd like to be able to control XBMC from Dojo, and was looking for a Service Mapping Description (SMD) file to use with it. Without trying to write the whole thing by hand, about the only thing I could think of was trying to take the output of JSONRPC.Introspect and regexp into the necessary format. I'm pretty new to this stuff, though, so any help would be appreciated.

Montellese, I saw an old post of yours trying to come up with the same thing, did you ever get anywhere with that?


- Montellese - 2011-11-09

DryerLintPurple Wrote:I'd like to be able to control XBMC from Dojo, and was looking for a Service Mapping Description (SMD) file to use with it. Without trying to write the whole thing by hand, about the only thing I could think of was trying to take the output of JSONRPC.Introspect and regexp into the necessary format. I'm pretty new to this stuff, though, so any help would be appreciated.

Montellese, I saw an old post of yours trying to come up with the same thing, did you ever get anywhere with that?

Well I first did the whole Introspect stuff based on SMD but then we discovered that the "transport" property of the SMD is very limited (to HTTP and TCP) but we provide JSON-RPC over HTTP, TCP, Bluetooth and Python and maybe there will be other transports in the future. As we didn't wanna use a specification and not follow it I had to drop the SMD approach and use JSON schema in combination with JSON Service Description instead.

But I'm sure it would be possible to write a script that translates the output of our JSONRPC.Introspect into SMD.


- dwagner - 2011-11-09

I've been searching for a way to replace HTTP Api SendKey function to fill text fields in XBMC. I can't seem to find a way to do this in JSON or Event Server. I haven't seen any feature requests for this, hence I'm wondering if there already exists a method. Is there a way?


- Montellese - 2011-11-09

I never really used the EventServer myself but AFAIK it should be able to handle any keys. IIRC the official Android Remote for XBMC uses the EventServer to send key presses like Left, Right etc.

The presence of EventServer is the reason why I never spent much time on providing input functionality through JSON-RPC.


- dwagner - 2011-11-10

Quote:I never really used the EventServer myself but AFAIK it should be able to handle any keys
Event server seems to work fine for sending key events that do not appear in an input box. I've taken a quick look at the Android remote source and it looks like they use HTTP API Sendkey to send keyboard for input boxes. Using the event server I am able to send a key such as "s" and the shutdown menu will appear, but in an xbmc input box that won't show up. So I had hoped since HTTP API has been deprecated that there was a new method in JSON or event server.

I actually really like the notifications of JSON TCP and it would be great in the future to maybe get a notification when an XBMC input box appears. This will allow me to auto launch a keyboard for the user of the remote.

Another question regarding VideoLibrary.GetRecentlyAddedMovies
I called this with a limit of 1 on my test machine which has about 10 movie files. What I got was what looked like the 1st movie ever added. If sort isn't specified shouldn't this give me the movies in last added order i.e. last movieid first?


- jitterjames - 2011-11-10

dwagner Wrote:Event server seems to work fine for sending key events that do not appear in an input box. I've taken a quick look at the Android remote source and it looks like they use HTTP API Sendkey to send keyboard for input boxes. Using the event server I am able to send a key such as "s" and the shutdown menu will appear, but in an xbmc input box that won't show up. So I had hoped since HTTP API has been deprecated that there was a new method in JSON or event server.

Event server also can't do key combinations like Shift-S which kind of sucks since this would be a good way to jump to a content starting with a letter. There is currently no way to do this reliably without using keyboard emulation by a program on the same machine as XBMC


- grywnn - 2011-11-10

Hey folks,

don't really know where to put this, but since i can't find an aTV dev thread and the matter is somewhat JSON related i'll start here...

I'm getting reports from some users of my remote control app that VideoLibrary.getMovies is taking overly long to complete on aTV2 systems running recent nightly builds.
I'm talking about >1 minute for <200 movies here.
Thing seem to get even worse when an external mysql is in use, but thats another matter...

Unfortunately this is 2nd hand information. Since i don't own an aTV myself, i can't test. But i've got reports from 4 different users by now, so i tend to think that theres a glitch in the code somewhere.

Any ideas?


- Montellese - 2011-11-10

Could you post your exact JSON-RPC request to VideoLibrary.GetMovies? There are a few (known and documented) properties which increase the response time a lot. But that should affect any operating system and not just ATVs.
But then again VideoLibrary.GetMovies executes the same SQL query as is executed when you browse to the "Movies" section in XBMC's GUI. So I'd like to see the request to get a better picture.

PS: I don't have an ATV either so I can't really test.