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

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



RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - gertjanzwartjes - 2012-12-04 10:23

(2012-12-03 22:55)Montellese Wrote:  Yeah it's a valid use case but too late in the release cycle to add new methods etc. Additionally sending out an existing notifications does not affect the API so that wouldn't be such a big deal.
There isn't any other way to get the text of the currently focused item right? I've checked InfoLabels, but there's nothing there that could be used as it seems. What about adding the text of the current control (if any) as an Application namespace property like Tolriq suggests, would that be a too big of a change? It doesn't introduce a new method, you could argue it's just an extension of an existing API just like sending out an additional notification.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-12-04 10:30

Anything that adds additional functionality is a feature whether it extends an existing feature or not. We are in feature freeze so there are absolutely no new features going in, especially not after already having released two betas. Otherwise every dev would come and say "in some remote sense this feature y is an extension of the already existing feature x so it's not really a new feature" and feature freeze would be useless.

The difference between sending out an additional but already existing notification and adding new properties/methods is that the former doesn't change the API whereas the latter does. Furthermore IMO such a property has nothing to do with the Application namespace or Application.GetProperties. It should go into an Input.GetProperties method which does not yet exist.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - gertjanzwartjes - 2012-12-04 10:56

(2012-12-04 10:30)Montellese Wrote:  Anything that adds additional functionality is a feature whether it extends an existing feature or not. We are in feature freeze so there are absolutely no new features going in, especially not after already having released two betas. Otherwise every dev would come and say "in some remote sense this feature y is an extension of the already existing feature x so it's not really a new feature" and feature freeze would be useless.

The difference between sending out an additional but already existing notification and adding new properties/methods is that the former doesn't change the API whereas the latter does. Furthermore IMO such a property has nothing to do with the Application namespace or Application.GetProperties. It should go into an Input.GetProperties method which does not yet exist.

Hard to argue with that; in my day job I work on a lot of APIs used by other developers as well, so I'm on your side of the table in these discussions too and I agree on both points (feature freeze + it doesn't have anything to do with the Application namespace), but it's a pain to correctly support a remote keyboard at the moment, so it was worth a try ;-).

Do you think sending out the notifications when you enter/exit input controls without opening the virtual keyboard is feasible?

Anyway, thanks a lot again for looking into all this and engaging the discussion.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - claymic - 2012-12-04 11:30

Montellese
Not playing anything.
I am using the VideoLibrary.GetMovieDetails.
Thanks for your help
Clayton


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - codex70 - 2012-12-04 18:41

Actually, is there a way to change profiles using the json interface? I was using a keypress with the http interface, but obviously neither of those options are available now.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Tolriq - 2012-12-05 00:45

Will do a proper investigation this week end when a little more time but still with beta 2 starting files from Json never set back the auto generated thumb.

(And sometimes none information are set too even label is empty).


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - N3MIS15 - 2012-12-05 08:07

(2012-12-05 00:45)Tolriq Wrote:  Will do a proper investigation this week end when a little more time but still with beta 2 starting files from Json never set back the auto generated thumb.

(And sometimes none information are set too even label is empty).

Confirmed, seems to only return data if video is in library. Looks like music files are working fine.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-12-05 10:39

(2012-12-04 11:30)claymic Wrote:  Montellese
Not playing anything.
I am using the VideoLibrary.GetMovieDetails.
Thanks for your help
Clayton
I'll have to try again later.

(2012-12-04 18:41)codex70 Wrote:  Actually, is there a way to change profiles using the json interface? I was using a keypress with the http interface, but obviously neither of those options are available now.
Nope, one of the problems is that JSON-RPC is not running until a profile is started so if you do something wrong on the profile switching you end up with no profile and no JSON-RPC. The same should have applied to the HTTP-API but it wasn't so strict.

(2012-12-05 00:45)Tolriq Wrote:  Will do a proper investigation this week end when a little more time but still with beta 2 starting files from Json never set back the auto generated thumb.

(And sometimes none information are set too even label is empty).
I have no clue what you are mentioning/talking about. Will need a better problem description.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - N3MIS15 - 2012-12-05 11:01

(2012-12-05 10:39)Montellese Wrote:  I have no clue what you are mentioning/talking about. Will need a better problem description.

Request:
Code:
{
    "params": {
        "playerid": 1,
        "properties": [
            "title",
            "season",
            "episode",
            "duration",
            "showtitle",
            "fanart",
            "tvshowid",
            "plot",
            "thumbnail",
            "year"
        ]
    },
    "jsonrpc": "2.0",
    "id": 0,
    "method": "Player.GetItem"
}

Response:
Code:
{
    "jsonrpc": "2.0",
    "id": 0,
    "result": {
        "item": {
            "plot": "",
            "tvshowid": -1,
            "episode": -1,
            "title": "",
            "fanart": "",
            "season": -1,
            "label": "",
            "year": 0,
            "type": "unknown",
            "thumbnail": "",
            "showtitle": ""
        }
    }
}

Player.GetItem won't return any information for video files that are not in the video library. (Player.GetItem is the only method i have tested)

EDIT: i know there is alot of useless params there, the main concerns are label and thumbnail as they should be returned for any video file (especially label).
If the files are opened from GUI they return data just fine.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Tolriq - 2012-12-05 11:22

Thanks Smile

This is exactly that.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Mizaki - 2012-12-05 13:26

http://trac.xbmc.org/ticket/13344 seems to be back then. First play fine. Second, no label. Type stays as "unknown" though. Delete the file from "files" table and you get the expected label.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - claymic - 2012-12-05 20:09

Hi
From where exactly the JSON get thumbs in xmbc ? i tried to delete the thumbs in my movie foder, the JSON return the image for my app exactly like before, but there is no image in the folder anymore. from where my app its geting this ? I need to know this to manage how i will resize theimages before send to my app.
If i delete the thumbs from my movie folder and delete the movie from the movie library, when i rescan again i get the same path for the thumb
Quote:image://J%3a%5cFilmesHD%5cATM%20(2012)%5cATM%20(2012).bluray.tbn/
,
but in the folder i dont see any tbn images anymore, i was expecting for the xbmc create the thumbs again, with my settings in the advancedsettings.xml (thumbsres).
Thanks


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - claymic - 2012-12-05 20:46

Ok, my bad, i understand now how works.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-12-06 20:14

(2012-12-04 00:04)claymic Wrote:  Ok, i maked some more tests and will try to explain in my bad english, i am sorry for that.
- Situation 1 : if i am in the window HOME (xbmc) and tried to set the playcount to 0 or 1 (using my app for ipad), take between 7 or 10 seconds and i lose all the streamdetails for the movie.
- Situation 2: if i am in the window MOVIE(xbmc) and tried to set the playcount to 0 or 1 (using my app for ipad), take between 2 or 3 seconds and i dont lose the streamdetails for the movie.
- Situation 3: after lose the streamdetails in situation 1, i cant get the streamdetails for this movie anymore if i am in the window HOME, but if i go to the window MOVIE and maked another request i get all the streamdetails again.
I dont know if i explain right, i am sorry for that.
Clayton

I tried again and I get the JSON-RPC response after less than 100ms and if I'm in a GUI view where I can see the updated movie it takes around 1-2 seconds to refresh.
But I found the problem with the stream details. Will need to figure out how best to solve it.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-12-06 20:33

(2012-12-06 20:14)Montellese Wrote:  
(2012-12-04 00:04)claymic Wrote:  Ok, i maked some more tests and will try to explain in my bad english, i am sorry for that.
- Situation 1 : if i am in the window HOME (xbmc) and tried to set the playcount to 0 or 1 (using my app for ipad), take between 7 or 10 seconds and i lose all the streamdetails for the movie.
- Situation 2: if i am in the window MOVIE(xbmc) and tried to set the playcount to 0 or 1 (using my app for ipad), take between 2 or 3 seconds and i dont lose the streamdetails for the movie.
- Situation 3: after lose the streamdetails in situation 1, i cant get the streamdetails for this movie anymore if i am in the window HOME, but if i go to the window MOVIE and maked another request i get all the streamdetails again.
I dont know if i explain right, i am sorry for that.
Clayton

I tried again and I get the JSON-RPC response after less than 100ms and if I'm in a GUI view where I can see the updated movie it takes around 1-2 seconds to refresh.
But I found the problem with the stream details. Will need to figure out how best to solve it.

Loosing the streamdetails should be fixed with https://github.com/xbmc/xbmc/commit/8c2223920d093bd3aadeec3172830acc6f071a42.