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 - Torben - 2015-11-17

Rant ahead!: So.. what is in this thread and is it of any value to me? With 220 pages spanning five years, I will never know! This has to be the best example of a please-kill-me thread I have ever seen Big Grin Don't get me wrong, there is probably a lot of valid information buried inside somewhere, but the smell of stale cheese is all over this and imho it should have been buried ages ago, with a new fresh thread joining the information we need in a single top-post! Please for the love of god.. let it go!


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Tolriq - 2015-12-17

@Montellese :

It seems I'm hitting some command max size value when handling large playlist creation.
But the strange thing is that in the log the complete data seems to be received. Is there really a max post size ? (If yes what is the value ? Can it be bigger ?)


Quote:13:42:13 T:163184 ERROR: WebServer: Stopped uploading post since it exceeded size limitations
13:42:13 T:163184 ERROR: JSONRPC: Failed to parse '[{"jsonrpc":"2.0","id":879,"method":"Playlist.Clear","params":{"playlistid":1}},{"jsonrpc":"2.0","id":709,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":870}}},{"jsonrpc":"2.0","id":544,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":871}}},{"jsonrpc":"2.0","id":598,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":872}}},{"jsonrpc":"2.0","id":533,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":873}}},{"jsonrpc":"2.0","id":973,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":874}}},{"jsonrpc":"2.0","id":921,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":875}}},{"jsonrpc":"2.0","id":838,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":876}}},{"jsonrpc":"2.0","id":130,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":877}}},{"jsonrpc":"2.0","id":663,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":878}}},{"jsonrpc":"2.0","id":180,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":879}}},{"jsonrpc":"2.0","id":895,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":880}}},{"jsonrpc":"2.0","id":276,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":881}}},{"jsonrpc":"2.0","id":396,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":882}}},{"jsonrpc":"2.0","id":628,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":883}}},{"jsonrpc":"2.0","id":311,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":884}}},{"jsonrpc":"2.0","id":56,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":885}}},{"jsonrpc":"2.0","id":101,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":886}}},{"jsonrpc":"2.0","id":30,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":887}}},{"jsonrpc":"2.0","id":52,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":888}}},{"jsonrpc":"2.0","id":347,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":889}}},{"jsonrpc":"2.0","id":547,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":890}}},{"jsonrpc":"2.0","id":159,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":891}}},{"jsonrpc":"2.0","id":746,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":892}}},{"jsonrpc":"2.0","id":807,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":893}}},{"jsonrpc":"2.0","id":684,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":894}}},{"jsonrpc":"2.0","id":148,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":895}}},{"jsonrpc":"2.0","id":176,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":896}}},{"jsonrpc":"2.0","id":354,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":897}}},{"jsonrpc":"2.0","id":416,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":898}}},{"jsonrpc":"2.0","id":559,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":899}}},{"jsonrpc":"2.0","id":952,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":900}}},{"jsonrpc":"2.0","id":96,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":901}}},{"jsonrpc":"2.0","id":248,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":902}}},{"jsonrpc":"2.0","id":180,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":903}}},{"jsonrpc":"2.0","id":694,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":904}}},{"jsonrpc":"2.0","id":963,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":905}}},{"jsonrpc":"2.0","id":574,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":906}}},{"jsonrpc":"2.0","id":416,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":907}}},{"jsonrpc":"2.0","id":557,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":908}}},{"jsonrpc":"2.0","id":992,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":909}}},{"jsonrpc":"2.0","id":239,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":910}}},{"jsonrpc":"2.0","id":837,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":911}}},{"jsonrpc":"2.0","id":427,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":912}}},{"jsonrpc":"2.0","id":91,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":913}}},{"jsonrpc":"2.0","id":417,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":914}}},{"jsonrpc":"2.0","id":836,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":915}}},{"jsonrpc":"2.0","id":665,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":916}}},{"jsonrpc":"2.0","id":356,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":917}}},{"jsonrpc":"2.0","id":772,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":918}}},{"jsonrpc":"2.0","id":615,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":919}}},{"jsonrpc":"2.0","id":847,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":920}}},{"jsonrpc":"2.0","id":460,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":921}}},{"jsonrpc":"2.0","id":327,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":922}}},{"jsonrpc":"2.0","id":682,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":923}}},{"jsonrpc":"2.0","id":538,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":924}}},{"jsonrpc":"2.0","id":434,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":925}}},{"jsonrpc":"2.0","id":477,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":926}}},{"jsonrpc":"2.0","id":852,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":927}}},{"jsonrpc":"2.0","id":791,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":928}}},{"jsonrpc":"2.0","id":182,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":929}}},{"jsonrpc":"2.0","id":71,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":930}}},{"jsonrpc":"2.0","id":287,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":931}}},{"jsonrpc":"2.0","id":710,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":932}}},{"jsonrpc":"2.0","id":413,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":933}}},{"jsonrpc":"2.0","id":592,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":934}}},{"jsonrpc":"2.0","id":471,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":935}}},{"jsonrpc":"2.0","id":123,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":936}}},{"jsonrpc":"2.0","id":289,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":937}}},{"jsonrpc":"2.0","id":5,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":938}}},{"jsonrpc":"2.0","id":130,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":939}}},{"jsonrpc":"2.0","id":140,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":940}}},{"jsonrpc":"2.0","id":959,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":941}}},{"jsonrpc":"2.0","id":988,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":942}}},{"jsonrpc":"2.0","id":19,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":943}}},{"jsonrpc":"2.0","id":108,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":944}}},{"jsonrpc":"2.0","id":353,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":945}}},{"jsonrpc":"2.0","id":906,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":946}}},{"jsonrpc":"2.0","id":192,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":947}}},{"jsonrpc":"2.0","id":303,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":948}}},{"jsonrpc":"2.0","id":29,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":949}}},{"jsonrpc":"2.0","id":63,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":950}}},{"jsonrpc":"2.0","id":828,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":951}}},{"jsonrpc":"2.0","id":487,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":952}}},{"jsonrpc":"2.0","id":628,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":953}}},{"jsonrpc":"2.0","id":482,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":954}}},{"jsonrpc":"2.0","id":955,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":955}}},{"jsonrpc":"2.0","id":324,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":956}}},{"jsonrpc":"2.0","id":498,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":957}}},{"jsonrpc":"2.0","id":707,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":958}}},{"jsonrpc":"2.0","id":417,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":959}}},{"jsonrpc":"2.0","id":531,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":960}}},{"jsonrpc":"2.0","id":347,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":961}}},{"jsonrpc":"2.0","id":895,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":962}}},{"jsonrpc":"2.0","id":285,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":963}}},{"jsonrpc":"2.0","id":560,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":964}}},{"jsonrpc":"2.0","id":367,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":965}}},{"jsonrpc":"2.0","id":771,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":966}}},{"jsonrpc":"2.0","id":466,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":967}}},{"jsonrpc":"2.0","id":547,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":968}}},{"jsonrpc":"2.0","id":116,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":969}}},{"jsonrpc":"2.0","id":851,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":970}}},{"jsonrpc":"2.0","id":659,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":971}}},{"jsonrpc":"2.0","id":236,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":972}}},{"jsonrpc":"2.0","id":618,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":973}}},{"jsonrpc":"2.0","id":729,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":974}}},{"jsonrpc":"2.0","id":975,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":975}}},{"jsonrpc":"2.0","id":618,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":976}}},{"jsonrpc":"2.0","id":532,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":977}}},{"jsonrpc":"2.0","id":76,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":978}}},{"jsonrpc":"2.0","id":453,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":979}}},{"jsonrpc":"2.0","id":30,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":980}}},{"jsonrpc":"2.0","id":963,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":981}}},{"jsonrpc":"2.0","id":491,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":982}}},{"jsonrpc":"2.0","id":437,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":983}}},{"jsonrpc":"2.0","id":566,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":984}}},{"jsonrpc":"2.0","id":465,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":985}}},{"jsonrpc":"2.0","id":250,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":986}}},{"jsonrpc":"2.0","id":284,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":987}}},{"jsonrpc":"2.0","id":727,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":988}}},{"jsonrpc":"2.0","id":60,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":989}}},{"jsonrpc":"2.0","id":532,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":990}}},{"jsonrpc":"2.0","id":141,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":991}}},{"jsonrpc":"2.0","id":390,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":992}}},{"jsonrpc":"2.0","id":641,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":993}}},{"jsonrpc":"2.0","id":704,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":994}}},{"jsonrpc":"2.0","id":610,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":995}}},{"jsonrpc":"2.0","id":325,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":996}}},{"jsonrpc":"2.0","id":952,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":997}}},{"jsonrpc":"2.0","id":806,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":998}}},{"jsonrpc":"2.0","id":946,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":999}}},{"jsonrpc":"2.0","id":698,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1000}}},{"jsonrpc":"2.0","id":453,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1001}}},{"jsonrpc":"2.0","id":467,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1002}}},{"jsonrpc":"2.0","id":72,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1003}}},{"jsonrpc":"2.0","id":221,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1004}}},{"jsonrpc":"2.0","id":779,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1005}}},{"jsonrpc":"2.0","id":113,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1006}}},{"jsonrpc":"2.0","id":112,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1007}}},{"jsonrpc":"2.0","id":865,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1008}}},{"jsonrpc":"2.0","id":145,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1009}}},{"jsonrpc":"2.0","id":445,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1010}}},{"jsonrpc":"2.0","id":287,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1011}}},{"jsonrpc":"2.0","id":352,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1012}}},{"jsonrpc":"2.0","id":46,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1013}}},{"jsonrpc":"2.0","id":880,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1014}}},{"jsonrpc":"2.0","id":58,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1015}}},{"jsonrpc":"2.0","id":945,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1016}}},{"jsonrpc":"2.0","id":795,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1017}}},{"jsonrpc":"2.0","id":841,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1018}}},{"jsonrpc":"2.0","id":83,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1019}}},{"jsonrpc":"2.0","id":431,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1020}}},{"jsonrpc":"2.0","id":983,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1021}}},{"jsonrpc":"2.0","id":531,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1022}}},{"jsonrpc":"2.0","id":129,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1023}}},{"jsonrpc":"2.0","id":565,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1024}}},{"jsonrpc":"2.0","id":745,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1025}}},{"jsonrpc":"2.0","id":97,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1026}}},{"jsonrpc":"2.0","id":387,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1027}}},{"jsonrpc":"2.0","id":641,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1028}}},{"jsonrpc":"2.0","id":771,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1029}}},{"jsonrpc":"2.0","id":900,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1030}}},{"jsonrpc":"2.0","id":717,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1031}}},{"jsonrpc":"2.0","id":335,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1032}}},{"jsonrpc":"2.0","id":392,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1033}}},{"jsonrpc":"2.0","id":941,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1034}}},{"jsonrpc":"2.0","id":238,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1035}}},{"jsonrpc":"2.0","id":427,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1036}}},{"jsonrpc":"2.0","id":688,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1037}}},{"jsonrpc":"2.0","id":367,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1038}}},{"jsonrpc":"2.0","id":348,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1039}}},{"jsonrpc":"2.0","id":495,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1040}}},{"jsonrpc":"2.0","id":503,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1041}}},{"jsonrpc":"2.0","id":357,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1042}}},{"jsonrpc":"2.0","id":654,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1043}}},{"jsonrpc":"2.0","id":268,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1044}}},{"jsonrpc":"2.0","id":447,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1045}}},{"jsonrpc":"2.0","id":671,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1046}}},{"jsonrpc":"2.0","id":575,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1047}}},{"jsonrpc":"2.0","id":831,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1048}}},{"jsonrpc":"2.0","id":459,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1049}}},{"jsonrpc":"2.0","id":533,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1050}}},{"jsonrpc":"2.0","id":319,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1051}}},{"jsonrpc":"2.0","id":541,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1052}}},{"jsonrpc":"2.0","id":263,"method":"Playlistodeid":1070}}},{"jsonrpc":"2.0","id":718,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1071}}},{"jsonrpc":"2.0","id":662,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1072}}},{"jsonrpc":"2.0","id":700,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1073}}},{"jsonrpc":"2.0","id":776,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":1074}}},{"jsonrpc":"2.0","id":440,"method":"Player.Open","params":{"item":{"playlistid":1,"position":0}}}]'



RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Millencolin007 - 2015-12-17

@Tolriq I have seen this a long time ago when I tried to do the exact same thing. I just limited my requests to around 20 entries per batch


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Montellese - 2015-12-17

It's odd that it doesn't work when the webserver was able to fully read the POST data. I'll have to check if anything else might impose some kind of limit.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Tolriq - 2015-12-17

Thanks both, I'd really like to avoid splitting commands as it makes all a lot way more complex Sad

Needs to find the correct place to place the open if it's not the start of the playlist + complex parsing of returns to be sure there was no error in one of the chunk of commands and find back where.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Tolriq - 2015-12-20

@Montellese another small thing :

"PVR.Details.Broadcast": definition says : "runtime": { "type": "integer" }

But it's actually returned as a String. I don't know what side should be fixed Sad


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - DanCooper - 2015-12-22

(2015-12-17, 15:18)Montellese Wrote: It's odd that it doesn't work when the webserver was able to fully read the POST data. I'll have to check if anything else might impose some kind of limit.

I've been run in the same limit last week. I've found this old post: Link
I did some test and yes, looks like ~20000 characters is the limit. It has works with a ~19000 characters request, but not with a ~210000 characters request.


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

Good catch for the 20k Smile

I've finally go to split too as when checking Yatse users Kodi version less then 45% have updated to after 14.2, so even if it was changed for Jarvis it would only work for a low part users.


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

Lol I'm an idiot. The log snippet from Tolriq already contains the proper error message
Quote:13:42:13 T:163184 ERROR: WebServer: Stopped uploading post since it exceeded size limitations
This is a limitation to prevent someone from trying to attack the webserver by sending huge amounts of data which would lead to a segfault. Right now the limit is 20'000 but obviously this could be raised to something like 64k or turned into an advancedsetting.


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Martijn - 2015-12-23

Would it make sense or is it possible to have a function where you could put multiple items in an array that you only need one call?


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

Well 20 000 sounds a little arbitrary value Smile

But 32k or 64k in the end would still be a limit that can be reach for large playlist and there's enough adv settings.

If there's to be a limit let's put it at 32k to limit attack surface but still have a more common value, and make the log entry contains the limit value ?

But after counting my query is 19349 long so should work (that explains why it's complete in the log) maybe the headers are counted or something else that false the value.

Because IMO the real problem is that it says there's a limit but does not give it and then list the complete data making thinking that the limit is not reach since all data is received.

(2015-12-23, 11:27)Martijn Wrote: Would it make sense or is it possible to have a function where you could put multiple items in an array that you only need one call?

This is the case, this is batching and it's needed for playlist handling to have queries in the correct order. Splitting commands needs we send x commands, wait for Kodi to handle then send the next, then the next. This make remotes sounds slower to users. Specially when we need to wait for the last command to start the playlist.


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

(2015-12-23, 11:31)Tolriq Wrote: But after counting my query is 19349 long so should work (that explains why it's complete in the log) maybe the headers are counted or something else that false the value.

The request you see in the log is only that long but that is because the implementation is a bit stupid. When it realizes that the POST request gets too long, it ignores the current chuck it's handling but doesn't fail so it will be handed the next junk which will probably fail again and so on until the last chunk which might actually fit into the remaining buffer. So if you look closely at the request from your log it's actually invalid JSON because it is a random concatenation of multiple chuncks near the end. That's also why you probably got a parse error.


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

That would explain why sometimes the query did work, with tons of luck all random end chunks lead to a valid global JSON.

A little too random Smile


RE: JSON-RPC (JSON Remote Procedure Call) interface protocol in development for XBMC - Martijn - 2015-12-23

(2015-12-23, 11:31)Tolriq Wrote:
(2015-12-23, 11:27)Martijn Wrote: Would it make sense or is it possible to have a function where you could put multiple items in an array that you only need one call?

This is the case, this is batching and it's needed for playlist handling to have queries in the correct order. Splitting commands needs we send x commands, wait for Kodi to handle then send the next, then the next. This make remotes sounds slower to users. Specially when we need to wait for the last command to start the playlist.

What i mean is something like:
Quote:{"jsonrpc":"2.0","id":503,"method":"Playlist.Add","params":{"playlistid":1,"item":{"episodeid":[array]}}}
and add the items as provided in the array. This should at least solve when you send items from a single type.
If you need a mixed playlist you of course still need to send them separated in the order you need


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

That would be wonderful and was asked a few times Smile Or directly an array of listitems that would allow mixing types.

Currently all remote makers have a big Damocles sword over their heads.

Only way to properly handle playlist is to use JSON batching, because sending tons of query one by one and waiting for result each time to ensure ordering is awfully slow.

But Topfs was very clear about the fact that in the JSON specs batching does not implies query ordering, and that we are just lucky that currently Kodi does handle it like that, and that it can be broken at any time, and we'd have nothing do complain against.

So if there's no proper playlist API for ordering and one day batching no more respect ordering, this will be a very big mess Smile

(It also have impact on lot's of other things but workaround just implies more cpu usage on Kodi, for playlist it's end user experience that would be killed)