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)



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

Forgive me for jumping in here - I'm the one who's experiencing the problem.

For some reason, accessing a UPnP library through the XBMC Yatse remote does not retrieve the contents of the folder, whereas using the keybaord does. If the contents of a directory have been accessed first by keyboard, these appear to be cached, and then these do appear through a JSON list. Similarly if a directory is listed first through JSON, no results are found and if the same directory is listed subsequently using the keyboard, the empty (assumed cached?) list is displayed.

I posted a big log file which would take time to search through so thought I'd pull out what might be two key parts of it.

First of all, a directly listing using the keyboard - this action successfully listed the folder.

18:06:15 T:3656 DEBUG: CApplication::OnKey: return (f00d) pressed, action is Select
18:06:15 T:3656 DEBUG: CGUIMediaWindow::GetDirectory (upnp://F74F86F9-6610-4078-B847-2EC489C76098/r/)
18:06:15 T:3656 DEBUG: ParentPath = [upnp://F74F86F9-6610-4078-B847-2EC489C76098/]
18:06:15 T:3656 DEBUG: RetrieveMusicInfo() took 0 msec

Then, a request to list a different UPnP folder from the same UPnP source using the Yatse remote a minute later, in the same XBMC session


18:07:02 T:52 DEBUG: JSONRPC: Incoming request: {"id":1,"jsonrpc":"2.0","method":"Files.GetDirectory","params":{"media":"music","directory":"upnp:\/\/F74F86F9-6610-4078-B847-2EC489C76098\/","sort":{"order":"ascending","method":"label"},"properties":["title","thumbnail","fanart","rating","genre","artist","track","season","episode","year","duration","album","showtitle","playcount","file"]}}
18:07:02 T:52 DEBUG: JSONRPC: Calling files.getdirectory
18:07:02 T:52 DEBUG: CUtil::GetMatchingSource: no matching source found for [upnp://F74F86F9-6610-4078-B847-2EC489C76098/]
18:07:02 T:52 DEBUG: Previous line repeats 2 times.
18:07:02 T:52 ERROR: CUPnPDirectory::GetResource - no resources returned for object t
18:07:02 T:52 ERROR: CUPnPDirectory::GetResource - no resources returned for object r
18:07:02 T:52 ERROR: CUPnPDirectory::GetResource - no resources returned for object c
18:07:02 T:52 ERROR: CUPnPDirectory::GetResource - no resources returned for object v
18:07:02 T:52 ERROR: CUPnPDirectory::GetResource - no resources returned for object a
18:07:02 T:52 ERROR: CUPnPDirectory::GetResource - no resources returned for object p



Hopefully this illustrates that the results of the operation differ, depending on the method used.

I'm around these boards a bit and can happily test some more if it would help.


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

(2012-11-22, 11:37)Tolriq Wrote: Any idea about this ? Should I open a trac ticket but on witch category ?


I think it's wise to open a ticket if only for tracking purposes.... Just my 2 cents...


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - ears - 2012-11-23

Thanks. I've just created a ticket - http://trac.xbmc.org/ticket/13595



RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - alcoheca - 2012-11-23

Got cc'd - am replying on trac




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

I just discovered something about Xbmc Tv Shows handling and wondering how to handle this correctly.

It seems that if you store a Tv Show in multiple different folders it will be stored internally as multiple shows but then of course presented as one show in the interface.

Using JSON VideoLibrary.GetTVShows you will only get 1 show returned for the show and not all the ids (which seems quite logical)

But when using VideoLibrary.GetEpisodes you get multiple tvshow id that will of course not match the GetTVShows.

The two questions are :
- How is Xbmc doing the stacking ? (Only using the Show name leading to the fact you can have 2 different show with the exact same name, can then use the name as the join key)
- Is there something I missed to get all the ids in GetTVShows or just one id int GetEpisodes


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-11-23

Stacking works based on the title yes (see CVideoDatabase::Stack()) and there's no way to get all the IDs belonging to a tvshow. Ideally we would only have one tvshowid for each tvshow but linked to multiple paths.


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

Thanks.

If name can be used as the external key then it's not really a big deal after all.



RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - ears - 2012-11-25

Tried one of this morning's 'Nightlies' (they're 'morninglies' in my time zone!) and the UPnP directory problem now seems to be resolved. I can browse any UPnP folder through Yatse the same way as I would with a keyboard.

Thank you!


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-11-25

Yeah I fixed it yesterday evening.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - jayword - 2012-11-25

Having trouble with basic formatting of JSON RPC using beta 1. I've pared the call down to just the bare bones and it still gives me an HTTP 400 error. Here is what I'm sending:

POST /jsonrpc HTTP/1.1
Host: 192.168.1.100:9090
Content-Type: application/json
Content-Length: 53

{"jsonrpc": "2.0", "method": "Input.Left", "id": "1"}
----------
Frodo Beta 1 Replies:
HTTP/1.1 400 Bad Request

Almost identical structures work with other products. Can anyone see what might be incorrect about the above request causing an HTTP 400 error?
Thanks.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-11-25

(2012-11-25, 22:52)jayword Wrote: Having trouble with basic formatting of JSON RPC using beta 1. I've pared the call down to just the bare bones and it still gives me an HTTP 400 error. Here is what I'm sending:

POST /jsonrpc HTTP/1.1
Host: 192.168.1.100:9090
Content-Type: application/json
Content-Length: 53

{"jsonrpc": "2.0", "method": "Input.Left", "id": "1"}
----------
Frodo Beta 1 Replies:
HTTP/1.1 400 Bad Request

Almost identical structures work with other products. Can anyone see what might be incorrect about the above request causing an HTTP 400 error?
Thanks.

You're probably using the wrong port. TCP port 9090 is for a raw TCP connection. The HTTP port is configurable in the GUI unter Settings -> Services -> Webserver and defaults to 80 or 8080 (depending on your operating system).


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - jayword - 2012-11-26

Ah, yes, that was it. Thanks.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - yallah - 2012-11-26

Hi,

Small question, is it possible to get list of all programs recording PVR which I have via Json-rpc.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2012-11-26

There's no support for PVR recordings in JSON-RPC yet as it wasn't considered essential. Support will be added after Frodo has been released.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - yallah - 2012-11-26

ok thx, Can we access directly to recording page with "pvrrecordinginfo" with GUI.ActivateWindow methods ?