Archive:JSON-RPC API/v4: Difference between revisions
>Sam (replaced almost everything) |
>Sam (fixed) |
||
Line 169: | Line 169: | ||
'method': 'JSONRPC.Introspect', | 'method': 'JSONRPC.Introspect', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': true /* boolean */ | 'params': { | ||
'getdescriptions': true /* boolean */, | |||
'getmetadata': false /* boolean */, | |||
'filterbytransport': true /* boolean */, | |||
'filter': { | |||
'getreferences': true /* boolean, Whether or not to print the schema for referenced types */, | |||
'id': undefined /* string, required, Name of a namespace, method or type */, | |||
'type': undefined /* string, required, Type of the given name */ | |||
} | |||
} | } | ||
} | } | ||
Line 182: | Line 187: | ||
'method': 'JSONRPC.Introspect', | 'method': 'JSONRPC.Introspect', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { /* no additional properties allowed */ | ||
} | } | ||
Line 197: | Line 202: | ||
'method': 'JSONRPC.NotifyAll', | 'method': 'JSONRPC.NotifyAll', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': undefined /* string, required */ | 'params': { | ||
'sender': undefined /* string, required */, | |||
'message': undefined /* string, required */, | |||
'data': null /* any */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 228: | Line 237: | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
'controlgui': undefined /* boolean, required */, | |||
'controlnotify': undefined /* boolean, required */, | 'controlnotify': undefined /* boolean, required */, | ||
'controlplayback': undefined /* boolean, required */, | 'controlplayback': undefined /* boolean, required */, | ||
'controlpower': undefined /* boolean, required */, | 'controlpower': undefined /* boolean, required */, | ||
'controlsystem': undefined /* boolean, required */, | |||
'navigate': undefined /* boolean, required */, | 'navigate': undefined /* boolean, required */, | ||
'readdata': undefined /* boolean, required */, | 'readdata': undefined /* boolean, required */, | ||
Line 539: | Line 550: | ||
'method': 'Player.GetItem', | 'method': 'Player.GetItem', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'properties': [ /* id: List.Fields.All */ | |||
undefined /* string */ | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 595: | Line 609: | ||
'type': 'unknown' /* string */, | 'type': 'unknown' /* string */, | ||
'votes': '' /* string */, | 'votes': '' /* string */, | ||
'watchedepisodes': 0 /* integer */, | |||
'writer': '' /* string */, | 'writer': '' /* string */, | ||
'director': '' /* string */, | 'director': '' /* string */, | ||
Line 625: | Line 640: | ||
] | ] | ||
}, | }, | ||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | 'file': '' /* string */, | ||
'lastplayed': '' /* string */, | 'lastplayed': '' /* string */, | ||
Line 653: | Line 669: | ||
'method': 'Player.GetProperties', | 'method': 'Player.GetProperties', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'properties': [ /* array, required, all items must be unique */ | |||
'type' /* string, id: Player.Property.Name */ | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 733: | Line 752: | ||
'method': 'Player.GoNext', | 'method': 'Player.GoNext', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 755: | Line 776: | ||
'method': 'Player.GoPrevious', | 'method': 'Player.GoPrevious', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 777: | Line 800: | ||
'method': 'Player.GoTo', | 'method': 'Player.GoTo', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'position': -1 /* integer, required, id: Playlist.Position, minimum: 0 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 799: | Line 825: | ||
'method': 'Player.MoveDown', | 'method': 'Player.MoveDown', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 821: | Line 849: | ||
'method': 'Player.MoveLeft', | 'method': 'Player.MoveLeft', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 843: | Line 873: | ||
'method': 'Player.MoveRight', | 'method': 'Player.MoveRight', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 865: | Line 897: | ||
'method': 'Player.MoveUp', | 'method': 'Player.MoveUp', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 887: | Line 921: | ||
'method': 'Player.Open', | 'method': 'Player.Open', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': { /* no additional properties allowed */ | 'params': { | ||
'item': { /* no additional properties allowed */ | |||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, | |||
'position': -1 /* integer, id: Playlist.Position, minimum: 0 */ | |||
} or { /* no additional properties allowed */ | |||
'file': undefined /* string, required, Path to a file (not a directory) to be added to the playlist */ | |||
} or { /* no additional properties allowed */ | |||
'directory': undefined /* string, required */ | |||
} or { /* no additional properties allowed */ | |||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'genreid': -1 /* integer, required, id: Library.Id, minimum: 1, Identification of a genre from the AudioLibrary */ | |||
} or { /* no additional properties allowed */ | |||
'path': undefined /* string, required */, | |||
'random': true /* boolean, Deprecated, use the shuffled property of the options parameter instead */, | |||
'recursive': true /* boolean */ | |||
}, | |||
'options': { /* no additional properties allowed */ | |||
'repeat': undefined /* null */ or 'off' /* string, id: Player.Repeat */, | |||
'resume': undefined /* boolean, Whether to resume from the resume point or not */ or 0 /* number, id: Player.Position.Percentage, minimum: 0, maximum: 100, Percentage value to start from */ or { /* id: Player.Position.Time, no additional properties allowed, Time to start from */ | |||
'hours': 0 /* integer, minimum: 0, maximum: 23 */, | |||
'milliseconds': 0 /* integer, minimum: 0, maximum: 999 */, | |||
'minutes': 0 /* integer, minimum: 0, maximum: 59 */, | |||
'seconds': 0 /* integer, minimum: 0, maximum: 59 */ | |||
}, | |||
'shuffled': undefined /* null */ or undefined /* boolean */ | |||
} | |||
} | } | ||
} | } | ||
Line 934: | Line 980: | ||
'method': 'Player.PlayPause', | 'method': 'Player.PlayPause', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'play': undefined /* boolean */ or undefined /* string */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 958: | Line 1,007: | ||
'method': 'Player.Repeat', | 'method': 'Player.Repeat', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'state': 'off' /* string, required, id: Player.Repeat */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 980: | Line 1,032: | ||
'method': 'Player.Rotate', | 'method': 'Player.Rotate', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,002: | Line 1,056: | ||
'method': 'Player.Seek', | 'method': 'Player.Seek', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'value': 0 /* number, id: Player.Position.Percentage, minimum: 0, maximum: 100, Percentage value to seek to */ or { /* id: Player.Position.Time, no additional properties allowed, Time to seek to */ | |||
'hours': 0 /* integer, minimum: 0, maximum: 23 */, | |||
'milliseconds': 0 /* integer, minimum: 0, maximum: 999 */, | |||
'minutes': 0 /* integer, minimum: 0, maximum: 59 */, | |||
'seconds': 0 /* integer, minimum: 0, maximum: 59 */ | |||
} or undefined /* string, Seek by predefined jumps */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,043: | Line 1,100: | ||
'method': 'Player.SetAudioStream', | 'method': 'Player.SetAudioStream', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'stream': undefined /* string */ or undefined /* integer, minimum: 0, Index of the audio stream to play */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,065: | Line 1,125: | ||
'method': 'Player.SetSpeed', | 'method': 'Player.SetSpeed', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'speed': undefined /* integer */ or 'increment' /* string, id: Global.IncrementDecrement */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,089: | Line 1,152: | ||
'method': 'Player.SetSubtitle', | 'method': 'Player.SetSubtitle', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'subtitle': undefined /* string */ or undefined /* integer, minimum: 0, Index of the subtitle to display */, | |||
'enable': false /* boolean, Whether to enable subtitles to be displayed after setting the new subtitle */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,111: | Line 1,178: | ||
'method': 'Player.Shuffle', | 'method': 'Player.Shuffle', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,133: | Line 1,202: | ||
'method': 'Player.Stop', | 'method': 'Player.Stop', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,155: | Line 1,226: | ||
'method': 'Player.UnShuffle', | 'method': 'Player.UnShuffle', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,177: | Line 1,250: | ||
'method': 'Player.Zoom', | 'method': 'Player.Zoom', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, | |||
'value': undefined /* integer, required, minimum: 1, maximum: 10, Zoom level */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,199: | Line 1,275: | ||
'method': 'Player.ZoomIn', | 'method': 'Player.ZoomIn', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,221: | Line 1,299: | ||
'method': 'Player.ZoomOut', | 'method': 'Player.ZoomOut', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,246: | Line 1,326: | ||
'method': 'Playlist.Add', | 'method': 'Playlist.Add', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, | |||
'item': { /* no additional properties allowed */ | |||
'file': undefined /* string, required, Path to a file (not a directory) to be added to the playlist */ | |||
} or { /* no additional properties allowed */ | |||
'directory': undefined /* string, required */ | |||
} or { /* no additional properties allowed */ | |||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'genreid': -1 /* integer, required, id: Library.Id, minimum: 1, Identification of a genre from the AudioLibrary */ | |||
} | |||
} | } | ||
} | } | ||
Line 1,286: | Line 1,369: | ||
'method': 'Playlist.Clear', | 'method': 'Playlist.Clear', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,308: | Line 1,393: | ||
'method': 'Playlist.GetItems', | 'method': 'Playlist.GetItems', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, | |||
'properties': [ /* id: List.Fields.All */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 1,372: | Line 1,462: | ||
'type': 'unknown' /* string */, | 'type': 'unknown' /* string */, | ||
'votes': '' /* string */, | 'votes': '' /* string */, | ||
'watchedepisodes': 0 /* integer */, | |||
'writer': '' /* string */, | 'writer': '' /* string */, | ||
'director': '' /* string */, | 'director': '' /* string */, | ||
Line 1,402: | Line 1,493: | ||
] | ] | ||
}, | }, | ||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | 'file': '' /* string */, | ||
'lastplayed': '' /* string */, | 'lastplayed': '' /* string */, | ||
Line 1,462: | Line 1,554: | ||
'method': 'Playlist.GetProperties', | 'method': 'Playlist.GetProperties', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, | |||
'properties': [ /* array, required, all items must be unique */ | |||
'type' /* string, id: Playlist.Property.Name */ | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,489: | Line 1,584: | ||
'method': 'Playlist.Insert', | 'method': 'Playlist.Insert', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, | |||
'position': -1 /* integer, required, id: Playlist.Position, minimum: 0 */, | |||
'item': { /* no additional properties allowed */ | |||
'file': undefined /* string, required, Path to a file (not a directory) to be added to the playlist */ | |||
} or { /* no additional properties allowed */ | |||
'directory': undefined /* string, required */ | |||
} or { /* no additional properties allowed */ | |||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} or { /* no additional properties allowed */ | |||
'genreid': -1 /* integer, required, id: Library.Id, minimum: 1, Identification of a genre from the AudioLibrary */ | |||
} | |||
} | } | ||
} | } | ||
Line 1,529: | Line 1,628: | ||
'method': 'Playlist.Remove', | 'method': 'Playlist.Remove', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, | |||
'position': -1 /* integer, required, id: Playlist.Position, minimum: 0 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,551: | Line 1,653: | ||
'method': 'Playlist.Swap', | 'method': 'Playlist.Swap', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ | 'params': { | ||
'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, | |||
'position1': -1 /* integer, required, id: Playlist.Position, minimum: 0 */, | |||
'position2': -1 /* integer, required, id: Playlist.Position, minimum: 0 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,576: | Line 1,682: | ||
'method': 'Files.GetDirectory', | 'method': 'Files.GetDirectory', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': undefined /* string, required */ | 'params': { | ||
'directory': undefined /* string, required */, | |||
'media': 'video' /* string, id: Files.Media */, | |||
'properties': [ /* id: List.Fields.Files */ | |||
undefined /* string */ | |||
], | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 1,596: | Line 1,707: | ||
'file': '' /* string */, | 'file': '' /* string */, | ||
'filetype': undefined /* string, required */, | 'filetype': undefined /* string, required */, | ||
'lastmodified': '' /* string */, | |||
'mimetype': '' /* string */, | |||
'size': 0 /* integer, Size of the file in kB (1000 Byte) */, | |||
'album': '' /* string */, | 'album': '' /* string */, | ||
'albumartist': '' /* string */, | 'albumartist': '' /* string */, | ||
Line 1,639: | Line 1,753: | ||
'type': 'unknown' /* string */, | 'type': 'unknown' /* string */, | ||
'votes': '' /* string */, | 'votes': '' /* string */, | ||
'watchedepisodes': 0 /* integer */, | |||
'writer': '' /* string */, | 'writer': '' /* string */, | ||
'director': '' /* string */, | 'director': '' /* string */, | ||
Line 1,669: | Line 1,784: | ||
] | ] | ||
}, | }, | ||
'dateadded': '' /* string */, | |||
'lastplayed': '' /* string */, | 'lastplayed': '' /* string */, | ||
'plot': '' /* string */, | 'plot': '' /* string */, | ||
Line 1,702: | Line 1,818: | ||
'method': 'Files.GetSources', | 'method': 'Files.GetSources', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': 'video' /* string, required, id: Files.Media */ | 'params': { | ||
'media': 'video' /* string, required, id: Files.Media */, | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 1,742: | Line 1,862: | ||
'method': 'Files.PrepareDownload', | 'method': 'Files.PrepareDownload', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': undefined /* string, required */ | 'params': { | ||
'path': undefined /* string, required */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,772: | Line 1,894: | ||
'type': undefined /* required */ | 'type': undefined /* required */ | ||
} | } | ||
} | |||
</syntaxhighlight> | |||
===AudioLibrary.OnScanFinished=== | |||
Scanning the audio library has been finished. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'AudioLibrary.OnScanFinished', | |||
'params': undefined /* string, required */ or undefined /* null, required */ | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,819: | Line 1,951: | ||
'method': 'AudioLibrary.Export', | 'method': 'AudioLibrary.Export', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': { /* no additional properties allowed */ | 'params': { | ||
'options': { /* no additional properties allowed */ | |||
'path': undefined /* string, required, minimum length: 1, Path to the directory to where the data should be exported */ | |||
} or { /* no additional properties allowed */ | |||
'images': false /* boolean, Whether to export thumbnails and fanart images */, | |||
'overwrite': false /* boolean, Whether to overwrite existing exported files */ | |||
} | |||
} | } | ||
} | } | ||
Line 1,846: | Line 1,980: | ||
'method': 'AudioLibrary.GetAlbumDetails', | 'method': 'AudioLibrary.GetAlbumDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Library.Id, minimum: 1 */ | 'params': { | ||
'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Audio.Fields.Album */ | |||
undefined /* string */ | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,891: | Line 2,028: | ||
'method': 'AudioLibrary.GetAlbums', | 'method': 'AudioLibrary.GetAlbums', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, id: Library.Id, minimum: 1 */ | 'params': { | ||
'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'genreid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Audio.Fields.Album */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 1,950: | Line 2,093: | ||
'method': 'AudioLibrary.GetArtistDetails', | 'method': 'AudioLibrary.GetArtistDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Library.Id, minimum: 1 */ | 'params': { | ||
'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Audio.Fields.Artist */ | |||
undefined /* string */ | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 1,993: | Line 2,139: | ||
'method': 'AudioLibrary.GetArtists', | 'method': 'AudioLibrary.GetArtists', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': undefined /* null */ or undefined /* boolean */ | 'params': { | ||
'albumartistsonly': undefined /* null */ or undefined /* boolean */, | |||
'genreid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Audio.Fields.Artist */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 2,050: | Line 2,202: | ||
'method': 'AudioLibrary.GetGenres', | 'method': 'AudioLibrary.GetGenres', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': [ /* id: Library.Fields.Genre */ | 'params': { | ||
'properties': [ /* id: Library.Fields.Genre */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
} | 'ignorearticle': false /* boolean */, | ||
} | 'method': 'none' /* string */, | ||
</syntaxhighlight> | 'order': 'ascending' /* string */ | ||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | ====Returns==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
Line 2,095: | Line 2,251: | ||
'method': 'AudioLibrary.GetRecentlyAddedAlbums', | 'method': 'AudioLibrary.GetRecentlyAddedAlbums', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': [ /* id: Audio.Fields.Album */ | 'params': { | ||
'properties': [ /* id: Audio.Fields.Album */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 2,154: | Line 2,314: | ||
'method': 'AudioLibrary.GetRecentlyAddedSongs', | 'method': 'AudioLibrary.GetRecentlyAddedSongs', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, id: List.Amount, minimum: 0, The amount of recently added albums from which to return the songs */ | 'params': { | ||
'albumlimit': -1 /* integer, id: List.Amount, minimum: 0, The amount of recently added albums from which to return the songs */, | |||
'properties': [ /* id: Audio.Fields.Song */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 2,187: | Line 2,352: | ||
'duration': 0 /* integer */, | 'duration': 0 /* integer */, | ||
'file': '' /* string */, | 'file': '' /* string */, | ||
'lastplayed': '' /* string */, | |||
'lyrics': '' /* string */, | 'lyrics': '' /* string */, | ||
'musicbrainzartistid': '' /* string */, | 'musicbrainzartistid': '' /* string */, | ||
Line 2,208: | Line 2,374: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===AudioLibrary. | ===AudioLibrary.GetRecentlyPlayedAlbums=== | ||
Retrieve | Retrieve recently played albums | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 2,216: | Line 2,382: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'AudioLibrary. | 'method': 'AudioLibrary.GetRecentlyPlayedAlbums', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, | 'params': { | ||
'properties': [ /* id: Audio.Fields.Album */ | |||
undefined /* string */ | |||
} | ], | ||
</syntaxhighlight> | 'limits': { /* id: List.Limits, no additional properties allowed */ | ||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | ====Returns==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'AudioLibrary. | 'method': 'AudioLibrary.GetRecentlyPlayedAlbums', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
' | 'albums': [ /* array */ | ||
{ /* id: Audio.Details.Album */ | |||
'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'albumlabel': '' /* string */, | |||
'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'description': '' /* string */, | |||
'mood': '' /* string */, | |||
'style': '' /* string */, | |||
'theme': '' /* string */, | |||
'type': '' /* string */, | |||
'artist': '' /* string */, | |||
'musicbrainzalbumartistid': '' /* string */, | |||
'musicbrainzalbumid': '' /* string */, | |||
'rating': 0 /* integer */, | |||
'title': '' /* string */, | |||
'year': 0 /* integer */, | |||
'genre': '' /* string */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
' | ], | ||
' | 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | ||
' | 'end': -1 /* integer, minimum: 0 */, | ||
'start': 0 /* integer, minimum: 0 */, | |||
'total': undefined /* integer, required, minimum: 0 */ | |||
} | } | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===AudioLibrary. | ===AudioLibrary.GetRecentlyPlayedSongs=== | ||
Retrieve | Retrieve recently played songs | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 2,266: | Line 2,445: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'AudioLibrary. | 'method': 'AudioLibrary.GetRecentlyPlayedSongs', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': | 'params': { | ||
'properties': [ /* id: Audio.Fields.Song */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 2,284: | Line 2,467: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'AudioLibrary. | 'method': 'AudioLibrary.GetRecentlyPlayedSongs', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
Line 2,301: | Line 2,484: | ||
'duration': 0 /* integer */, | 'duration': 0 /* integer */, | ||
'file': '' /* string */, | 'file': '' /* string */, | ||
'lastplayed': '' /* string */, | |||
'lyrics': '' /* string */, | 'lyrics': '' /* string */, | ||
'musicbrainzartistid': '' /* string */, | 'musicbrainzartistid': '' /* string */, | ||
Line 2,322: | Line 2,506: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===AudioLibrary. | ===AudioLibrary.GetSongDetails=== | ||
Retrieve details about a specific song | |||
====Permissions==== | ====Permissions==== | ||
ReadData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'AudioLibrary. | 'method': 'AudioLibrary.GetSongDetails', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */, | ||
'params': { | |||
'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Audio.Fields.Song */ | |||
undefined /* string */ | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 2,338: | Line 2,528: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'AudioLibrary. | 'method': 'AudioLibrary.GetSongDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': { | ||
'songdetails': { /* id: Audio.Details.Song */ | |||
'album': '' /* string */, | |||
'albumartist': '' /* string */, | |||
'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'comment': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'lyrics': '' /* string */, | |||
'musicbrainzartistid': '' /* string */, | |||
'musicbrainztrackid': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'track': 0 /* integer */, | |||
'artist': '' /* string */, | |||
'musicbrainzalbumartistid': '' /* string */, | |||
'musicbrainzalbumid': '' /* string */, | |||
'rating': 0 /* integer */, | |||
'title': '' /* string */, | |||
'year': 0 /* integer */, | |||
'genre': '' /* string */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= | ===AudioLibrary.GetSongs=== | ||
Retrieve all songs from specified album, artist or genre | |||
== | ====Permissions==== | ||
=== | ReadData | ||
====Syntax==== | |||
==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.GetSongs', | ||
' | 'id': undefined /* integer, required */, | ||
'id': -1 /* integer | 'params': { | ||
' | 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, | ||
'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'genreid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Audio.Fields.Song */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====Returns==== | ====Returns==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.GetSongs', | ||
' | 'id': undefined /* integer, required */, | ||
'id': -1 /* integer | 'result': { | ||
'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0 */, | |||
} | 'start': 0 /* integer, minimum: 0 */, | ||
} | 'total': undefined /* integer, required, minimum: 0 */ | ||
</syntaxhighlight> | }, | ||
== | 'songs': [ /* array */ | ||
{ /* id: Audio.Details.Song */ | |||
'album': '' /* string */, | |||
'albumartist': '' /* string */, | |||
'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'comment': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'lyrics': '' /* string */, | |||
'musicbrainzartistid': '' /* string */, | |||
'musicbrainztrackid': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'track': 0 /* integer */, | |||
'artist': '' /* string */, | |||
'musicbrainzalbumartistid': '' /* string */, | |||
'musicbrainzalbumid': '' /* string */, | |||
'rating': 0 /* integer */, | |||
'title': '' /* string */, | |||
'year': 0 /* integer */, | |||
'genre': '' /* string */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
===AudioLibrary.Scan=== | |||
Scans the audio sources for new library items | |||
====Permissions==== | ====Permissions==== | ||
UpdateData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.Scan', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */, | ||
'params': { | |||
'directory': '' /* string */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 2,390: | Line 2,651: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.Scan', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===AudioLibrary.SetAlbumDetails=== | ||
Update the given album with the given details | |||
====Permissions==== | ====Permissions==== | ||
UpdateData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.SetAlbumDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': { /* | 'params': { | ||
' | 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
'title': undefined /* null */ or undefined /* string */, | |||
' | 'artist': undefined /* null */ or [ /* array, id: Array.String */ | ||
' | undefined /* string, minimum length: 1 */ | ||
' | ], | ||
'description': undefined /* null */ or undefined /* string */, | |||
'genre': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'theme': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'mood': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'style': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'type': undefined /* null */ or undefined /* string */, | |||
'albumlabel': undefined /* null */ or undefined /* string */, | |||
'rating': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'year': undefined /* null */ or undefined /* integer, minimum: 0 */ | |||
} | } | ||
} | } | ||
Line 2,418: | Line 2,696: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.SetAlbumDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===AudioLibrary.SetArtistDetails=== | ||
Update the given artist with the given details | |||
====Permissions==== | ====Permissions==== | ||
UpdateData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.SetArtistDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Library.Id, minimum: 1 */ or [ /* id: | 'params': { | ||
undefined /* string, | 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
'artist': undefined /* null */ or undefined /* string */, | |||
'instrument': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'style': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'mood': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'born': undefined /* null */ or undefined /* string */, | |||
'formed': undefined /* null */ or undefined /* string */, | |||
'description': undefined /* null */ or undefined /* string */, | |||
'genre': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'died': undefined /* null */ or undefined /* string */, | |||
'disbanded': undefined /* null */ or undefined /* string */, | |||
'yearsactive': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 2,442: | Line 2,741: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'AudioLibrary.SetArtistDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': | 'result': undefined /* string */ | ||
} | |||
</syntaxhighlight> | |||
===AudioLibrary.SetSongDetails=== | |||
Update the given song with the given details | |||
====Permissions==== | |||
UpdateData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'AudioLibrary.SetSongDetails', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'title': undefined /* null */ or undefined /* string */, | |||
'artist': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'albumartist': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'genre': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'year': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'rating': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'album': undefined /* null */ or undefined /* string */, | |||
'track': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'duration': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'comment': undefined /* null */ or undefined /* string */, | |||
'musicbrainztrackid': undefined /* null */ or undefined /* string */, | |||
'musicbrainzartistid': undefined /* null */ or undefined /* string */, | |||
'musicbrainzalbumid': undefined /* null */ or undefined /* string */, | |||
'musicbrainzalbumartistid': undefined /* null */ or undefined /* string */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'AudioLibrary.SetSongDetails', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
=VideoLibrary= | |||
Video Library information | |||
==Notifications== | |||
===VideoLibrary.OnRemove=== | |||
A video item has been removed. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.OnRemove', | |||
'params': undefined /* string, required */ or { /* required */ | |||
'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'type': undefined /* required */ | |||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.OnScanFinished=== | ||
Scanning the video library has been finished. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.OnScanFinished', | |||
'params': undefined /* string, required */ or undefined /* null, required */ | |||
} | |||
</syntaxhighlight> | |||
===VideoLibrary.OnUpdate=== | |||
A video item has been updated. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.OnUpdate', | |||
'params': undefined /* string, required */ or { /* required */ | |||
'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'playcount': -1 /* integer, minimum: 0 */, | |||
'type': undefined /* string ('movie', 'tvshow', 'episode', 'musicvideo'), required, id: Notifications.Library.Video.Type */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
==Methods== | |||
===VideoLibrary.Clean=== | |||
Cleans the video library from non-existent items | |||
====Permissions==== | ====Permissions==== | ||
RemoveData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.Clean', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 2,531: | Line 2,847: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.Clean', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': undefined /* string */ | ||
' | } | ||
{ /* id: Video.Details.Episode */ | </syntaxhighlight> | ||
===VideoLibrary.Export=== | |||
Exports all items from the video library | |||
====Permissions==== | |||
WriteFile | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.Export', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'options': { /* no additional properties allowed */ | |||
'path': undefined /* string, required, minimum length: 1, Path to the directory to where the data should be exported */ | |||
} or { /* no additional properties allowed */ | |||
'actorthumbs': false /* boolean, Whether to export actor thumbnails */, | |||
'images': false /* boolean, Whether to export thumbnails and fanart images */, | |||
'overwrite': false /* boolean, Whether to overwrite existing exported files */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.Export', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
===VideoLibrary.GetEpisodeDetails=== | |||
Retrieve details about a specific tv show episode | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.GetEpisodeDetails', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Video.Fields.Episode */ | |||
undefined /* string, Requesting the cast and/or resume field will result in increased response times */ | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.GetEpisodeDetails', | |||
'id': undefined /* integer, required */, | |||
'result': { | |||
'episodedetails': { /* id: Video.Details.Episode */ | |||
'cast': [ /* array, id: Video.Cast */ | |||
{ /* no additional properties allowed */ | |||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
} | |||
], | |||
'episode': 0 /* integer */, | |||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'firstaired': '' /* string */, | |||
'originaltitle': '' /* string */, | |||
'productioncode': '' /* string */, | |||
'rating': 0 /* number */, | |||
'season': 0 /* integer */, | |||
'showtitle': '' /* string */, | |||
'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'votes': '' /* string */, | |||
'writer': '' /* string */, | |||
'director': '' /* string */, | |||
'resume': { /* id: Video.Resume, no additional properties allowed */ | |||
'position': 0 /* number, minimum: 0 */, | |||
'total': 0 /* number, minimum: 0 */ | |||
}, | |||
'runtime': '' /* string */, | |||
'streamdetails': { /* id: Video.Streams, no additional properties allowed */ | |||
'audio': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'channels': 0 /* integer */, | |||
'codec': '' /* string */, | |||
'language': '' /* string */ | |||
} | |||
], | |||
'subtitle': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'language': '' /* string */ | |||
} | |||
], | |||
'video': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'aspect': 0 /* number */, | |||
'codec': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'height': 0 /* integer */, | |||
'width': 0 /* integer */ | |||
} | |||
] | |||
}, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | } | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetEpisodes=== | ||
Retrieve all | Retrieve all tv show episodes | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 2,609: | Line 2,976: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetEpisodes', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': | 'params': { | ||
'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'season': -1 /* integer, minimum: 0 */, | |||
'properties': [ /* id: Video.Fields.Episode */ | |||
undefined /* string, Requesting the cast and/or resume field will result in increased response times */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 2,627: | Line 3,000: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetEpisodes', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
' | 'episodes': [ /* array */ | ||
{ /* id: | { /* id: Video.Details.Episode */ | ||
' | 'cast': [ /* array, id: Video.Cast */ | ||
{ /* no additional properties allowed */ | |||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
} | |||
], | |||
'episode': 0 /* integer */, | |||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'firstaired': '' /* string */, | |||
'originaltitle': '' /* string */, | |||
'productioncode': '' /* string */, | |||
'rating': 0 /* number */, | |||
'season': 0 /* integer */, | |||
'showtitle': '' /* string */, | |||
'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'votes': '' /* string */, | |||
'writer': '' /* string */, | |||
'director': '' /* string */, | |||
'resume': { /* id: Video.Resume, no additional properties allowed */ | |||
'position': 0 /* number, minimum: 0 */, | |||
'total': 0 /* number, minimum: 0 */ | |||
}, | |||
'runtime': '' /* string */, | |||
'streamdetails': { /* id: Video.Streams, no additional properties allowed */ | |||
'audio': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'channels': 0 /* integer */, | |||
'codec': '' /* string */, | |||
'language': '' /* string */ | |||
} | |||
], | |||
'subtitle': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'language': '' /* string */ | |||
} | |||
], | |||
'video': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'aspect': 0 /* number */, | |||
'codec': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'height': 0 /* integer */, | |||
'width': 0 /* integer */ | |||
} | |||
] | |||
}, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
], | |||
'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0 */, | |||
'start': 0 /* integer, minimum: 0 */, | |||
'total': undefined /* integer, required, minimum: 0 */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
===VideoLibrary.GetGenres=== | |||
Retrieve all genres | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
' | 'method': 'VideoLibrary.GetGenres', | ||
'id': undefined /* integer, required */, | |||
'params': { | |||
'type': undefined /* string, required */, | |||
'properties': [ /* id: Library.Fields.Genre */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.GetGenres', | |||
'id': undefined /* integer, required */, | |||
'result': { | |||
'genres': [ /* array, required */ | |||
{ /* id: Library.Details.Genre */ | |||
'genreid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
' | 'thumbnail': '' /* string */, | ||
' | 'title': '' /* string */, | ||
' | 'label': undefined /* string, required */ | ||
} | |||
], | |||
'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0 */, | |||
'start': 0 /* integer, minimum: 0 */, | |||
'total': undefined /* integer, required, minimum: 0 */ | |||
} | } | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetMovieDetails=== | ||
Retrieve details about a specific movie | Retrieve details about a specific movie | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 2,750: | Line 3,129: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovieDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, required, id: Library.Id, minimum: 1 */ | 'params': { | ||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Video.Fields.Movie */ | 'properties': [ /* id: Video.Fields.Movie */ | ||
undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ | undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ | ||
] | ] | ||
} | } | ||
} | } | ||
Line 2,774: | Line 3,143: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovieDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
' | 'moviedetails': { /* id: Video.Details.Movie */ | ||
'cast': [ /* array, id: Video.Cast */ | |||
{ /* no additional properties allowed */ | |||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
} | |||
], | |||
'country': '' /* string */, | |||
'genre': '' /* string */, | |||
'imdbnumber': '' /* string */, | |||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'mpaa': '' /* string */, | |||
'originaltitle': '' /* string */, | |||
'plotoutline': '' /* string */, | |||
'premiered': '' /* string */, | |||
'productioncode': '' /* string */, | |||
'rating': 0 /* number */, | |||
'set': [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'setid': [ /* array, id: Array.Integer */ | |||
undefined /* integer */ | |||
], | |||
'showlink': '' /* string */, | |||
'sorttitle': '' /* string */, | |||
'studio': '' /* string */, | |||
'tagline': '' /* string */, | |||
'top250': 0 /* integer */, | |||
'trailer': '' /* string */, | |||
'votes': '' /* string */, | |||
'writer': '' /* string */, | |||
'year': 0 /* integer */, | |||
'director': '' /* string */, | |||
'resume': { /* id: Video.Resume, no additional properties allowed */ | |||
'position': 0 /* number, minimum: 0 */, | |||
'total': 0 /* number, minimum: 0 */ | |||
}, | |||
'runtime': '' /* string */, | |||
'streamdetails': { /* id: Video.Streams, no additional properties allowed */ | |||
'audio': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'channels': 0 /* integer */, | |||
'codec': '' /* string */, | |||
'language': '' /* string */ | |||
} | |||
], | |||
'subtitle': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'language': '' /* string */ | |||
} | |||
], | |||
'video': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'aspect': 0 /* number */, | |||
'codec': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'height': 0 /* integer */, | |||
'width': 0 /* integer */ | |||
} | |||
] | |||
}, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | 'title': '' /* string */, | ||
'playcount': 0 /* integer */, | 'playcount': 0 /* integer */, | ||
Line 2,861: | Line 3,221: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetMovieSetDetails=== | ||
Retrieve | Retrieve details about a specific movie set | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 2,869: | Line 3,229: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovieSetDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': [ /* id: Video.Fields.MovieSet */ | 'params': { | ||
'setid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Video.Fields.MovieSet */ | |||
undefined /* string */ | |||
], | |||
'movies': { | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'properties': [ /* id: Video.Fields.Movie */ | |||
undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ | |||
], | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | |||
} | } | ||
} | } | ||
Line 2,887: | Line 3,257: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovieSetDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
' | 'setdetails': { /* id: Video.Details.MovieSet.Extended */ | ||
'movies': [ /* array */ | |||
{ /* id: Video.Details.Movie */ | |||
'cast': [ /* array, id: Video.Cast */ | |||
{ /* no additional properties allowed */ | |||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
} | |||
], | |||
'country': '' /* string */, | |||
'genre': '' /* string */, | |||
'imdbnumber': '' /* string */, | |||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'mpaa': '' /* string */, | |||
'originaltitle': '' /* string */, | |||
'plotoutline': '' /* string */, | |||
'premiered': '' /* string */, | |||
'productioncode': '' /* string */, | |||
'rating': 0 /* number */, | |||
'set': [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'setid': [ /* array, id: Array.Integer */ | |||
undefined /* integer */ | |||
], | |||
'showlink': '' /* string */, | |||
'sorttitle': '' /* string */, | |||
'studio': '' /* string */, | |||
'tagline': '' /* string */, | |||
'top250': 0 /* integer */, | |||
'trailer': '' /* string */, | |||
'votes': '' /* string */, | |||
'writer': '' /* string */, | |||
'year': 0 /* integer */, | |||
'director': '' /* string */, | |||
'resume': { /* id: Video.Resume, no additional properties allowed */ | |||
'position': 0 /* number, minimum: 0 */, | |||
'total': 0 /* number, minimum: 0 */ | |||
}, | |||
'runtime': '' /* string */, | |||
'streamdetails': { /* id: Video.Streams, no additional properties allowed */ | |||
'audio': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'channels': 0 /* integer */, | |||
'codec': '' /* string */, | |||
'language': '' /* string */ | |||
} | |||
], | |||
'subtitle': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'language': '' /* string */ | |||
} | |||
], | |||
'video': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'aspect': 0 /* number */, | |||
'codec': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'height': 0 /* integer */, | |||
'width': 0 /* integer */ | |||
} | |||
] | |||
}, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
], | |||
'setid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
===VideoLibrary.GetMovieSets=== | |||
Retrieve all movie sets | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
} | |||
} | |||
</syntaxhighlight> | |||
===VideoLibrary. | |||
Retrieve | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovieSets', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': -1 /* integer, | 'params': { | ||
'properties': [ /* id: Video.Fields.MovieSet */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,037: | Line 3,375: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovieSets', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
' | 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | ||
'end': -1 /* integer, minimum: 0 */, | |||
'start': 0 /* integer, minimum: 0 */, | |||
'total': undefined /* integer, required, minimum: 0 */ | |||
' | }, | ||
'sets': [ /* array */ | |||
{ /* id: Video.Details.MovieSet */ | |||
' | 'setid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
] | |||
' | |||
' | |||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetMovies=== | ||
Retrieve all | Retrieve all movies | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 3,097: | Line 3,404: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovies', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': | 'params': { | ||
'properties': [ /* id: Video.Fields.Movie */ | |||
undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 3,115: | Line 3,426: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMovies', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
Line 3,123: | Line 3,434: | ||
'total': undefined /* integer, required, minimum: 0 */ | 'total': undefined /* integer, required, minimum: 0 */ | ||
}, | }, | ||
' | 'movies': [ /* array */ | ||
{ /* id: Video.Details. | { /* id: Video.Details.Movie */ | ||
' | 'cast': [ /* array, id: Video.Cast */ | ||
' | { /* no additional properties allowed */ | ||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
} | |||
], | |||
'country': '' /* string */, | |||
'genre': '' /* string */, | 'genre': '' /* string */, | ||
' | 'imdbnumber': '' /* string */, | ||
'studio': '' /* string */, | 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
' | 'mpaa': '' /* string */, | ||
'year': 0 /* integer */, | 'originaltitle': '' /* string */, | ||
'director': '' /* string */, | 'plotoutline': '' /* string */, | ||
'resume': { /* id: Video.Resume, no additional properties allowed */ | 'premiered': '' /* string */, | ||
'productioncode': '' /* string */, | |||
'rating': 0 /* number */, | |||
'set': [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'setid': [ /* array, id: Array.Integer */ | |||
undefined /* integer */ | |||
], | |||
'showlink': '' /* string */, | |||
'sorttitle': '' /* string */, | |||
'studio': '' /* string */, | |||
'tagline': '' /* string */, | |||
'top250': 0 /* integer */, | |||
'trailer': '' /* string */, | |||
'votes': '' /* string */, | |||
'writer': '' /* string */, | |||
'year': 0 /* integer */, | |||
'director': '' /* string */, | |||
'resume': { /* id: Video.Resume, no additional properties allowed */ | |||
'position': 0 /* number, minimum: 0 */, | 'position': 0 /* number, minimum: 0 */, | ||
'total': 0 /* number, minimum: 0 */ | 'total': 0 /* number, minimum: 0 */ | ||
Line 3,161: | Line 3,497: | ||
] | ] | ||
}, | }, | ||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | 'file': '' /* string */, | ||
'lastplayed': '' /* string */, | 'lastplayed': '' /* string */, | ||
Line 3,174: | Line 3,511: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetMusicVideoDetails=== | ||
Retrieve | Retrieve details about a specific music video | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 3,182: | Line 3,519: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMusicVideoDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': | 'params': { | ||
'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Video.Fields.MusicVideo */ | |||
' | undefined /* string, Requesting the resume field will result in increased response times */ | ||
' | ] | ||
} | } | ||
} | } | ||
Line 3,200: | Line 3,533: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMusicVideoDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
' | 'musicvideodetails': { /* id: Video.Details.MusicVideo */ | ||
{ /* id: Video. | 'album': '' /* string */, | ||
' | 'artist': '' /* string */, | ||
{ /* no additional properties allowed */ | 'genre': '' /* string */, | ||
' | 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
' | 'studio': '' /* string */, | ||
' | 'track': 0 /* integer */, | ||
'year': 0 /* integer */, | |||
'director': '' /* string */, | |||
'resume': { /* id: Video.Resume, no additional properties allowed */ | |||
'position': 0 /* number, minimum: 0 */, | |||
'total': 0 /* number, minimum: 0 */ | |||
}, | |||
'runtime': '' /* string */, | |||
'streamdetails': { /* id: Video.Streams, no additional properties allowed */ | |||
'audio': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'channels': 0 /* integer */, | |||
'codec': '' /* string */, | |||
'language': '' /* string */ | |||
} | |||
], | |||
'subtitle': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'language': '' /* string */ | |||
} | } | ||
], | ], | ||
' | 'video': [ /* array, minimum items: 1 */ | ||
{ /* no additional properties allowed */ | |||
'aspect': 0 /* number */, | |||
'codec': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'height': 0 /* integer */, | |||
'width': 0 /* integer */ | |||
} | |||
] | |||
}, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
===VideoLibrary.GetMusicVideos=== | |||
Retrieve all music videos | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'VideoLibrary.GetMusicVideos', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Video.Fields.MusicVideo */ | |||
undefined /* string, Requesting the resume field will result in increased response times */ | |||
], | ], | ||
'limits': { /* | 'limits': { /* id: List.Limits, no additional properties allowed */ | ||
'end': -1 /* integer, minimum: 0 */, | 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | ||
'start': 0 /* integer, minimum: 0 */, | 'start': 0 /* integer, minimum: 0 */ | ||
' | }, | ||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | } | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ====Returns==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetMusicVideos', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | |||
'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | |||
'result': { | |||
'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0 */, | 'end': -1 /* integer, minimum: 0 */, | ||
'start': 0 /* integer, minimum: 0 */, | 'start': 0 /* integer, minimum: 0 */, | ||
'total': undefined /* integer, required, minimum: 0 */ | 'total': undefined /* integer, required, minimum: 0 */ | ||
}, | }, | ||
' | 'musicvideos': [ /* array */ | ||
{ /* id: Video.Details. | { /* id: Video.Details.MusicVideo */ | ||
' | 'album': '' /* string */, | ||
'artist': '' /* string */, | |||
' | |||
'genre': '' /* string */, | 'genre': '' /* string */, | ||
' | 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
'studio': '' /* string */, | 'studio': '' /* string */, | ||
' | 'track': 0 /* integer */, | ||
'year': 0 /* integer */, | 'year': 0 /* integer */, | ||
'director': '' /* string */, | 'director': '' /* string */, | ||
Line 3,367: | Line 3,664: | ||
] | ] | ||
}, | }, | ||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | 'file': '' /* string */, | ||
'lastplayed': '' /* string */, | 'lastplayed': '' /* string */, | ||
Line 3,380: | Line 3,678: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetRecentlyAddedEpisodes=== | ||
Retrieve all recently added | Retrieve all recently added tv episodes | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 3,388: | Line 3,686: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetRecentlyAddedEpisodes', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': [ /* id: Video.Fields. | 'params': { | ||
'properties': [ /* id: Video.Fields.Episode */ | |||
undefined /* string, Requesting the cast and/or resume field will result in increased response times */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 3,406: | Line 3,708: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetRecentlyAddedEpisodes', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
' | 'episodes': [ /* array */ | ||
{ /* id: Video.Details.Episode */ | |||
'cast': [ /* array, id: Video.Cast */ | |||
{ /* no additional properties allowed */ | |||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
' | } | ||
' | ], | ||
' | 'episode': 0 /* integer */, | ||
' | 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
' | 'firstaired': '' /* string */, | ||
' | 'originaltitle': '' /* string */, | ||
'productioncode': '' /* string */, | |||
'rating': 0 /* number */, | |||
'season': 0 /* integer */, | |||
'showtitle': '' /* string */, | |||
'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'votes': '' /* string */, | |||
'writer': '' /* string */, | |||
'director': '' /* string */, | 'director': '' /* string */, | ||
'resume': { /* id: Video.Resume, no additional properties allowed */ | 'resume': { /* id: Video.Resume, no additional properties allowed */ | ||
Line 3,452: | Line 3,760: | ||
] | ] | ||
}, | }, | ||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | 'file': '' /* string */, | ||
'lastplayed': '' /* string */, | 'lastplayed': '' /* string */, | ||
Line 3,461: | Line 3,770: | ||
'label': undefined /* string, required */ | 'label': undefined /* string, required */ | ||
} | } | ||
] | ], | ||
'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0 */, | |||
'start': 0 /* integer, minimum: 0 */, | |||
'total': undefined /* integer, required, minimum: 0 */ | |||
} | |||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetRecentlyAddedMovies=== | ||
Retrieve all | Retrieve all recently added movies | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 3,473: | Line 3,787: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetRecentlyAddedMovies', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': | 'params': { | ||
'properties': [ /* id: Video.Fields.Movie */ | |||
undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 3,491: | Line 3,809: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetRecentlyAddedMovies', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
Line 3,499: | Line 3,817: | ||
'total': undefined /* integer, required, minimum: 0 */ | 'total': undefined /* integer, required, minimum: 0 */ | ||
}, | }, | ||
' | 'movies': [ /* array */ | ||
{ /* id: Video.Details. | { /* id: Video.Details.Movie */ | ||
' | 'cast': [ /* array, id: Video.Cast */ | ||
{ /* no additional properties allowed */ | |||
' | 'name': undefined /* string, required */, | ||
' | 'role': undefined /* string, required */, | ||
' | 'thumbnail': '' /* string */ | ||
' | } | ||
' | ], | ||
' | 'country': '' /* string */, | ||
'genre': '' /* string */, | |||
'imdbnumber': '' /* string */, | |||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'mpaa': '' /* string */, | |||
'originaltitle': '' /* string */, | |||
'plotoutline': '' /* string */, | |||
'premiered': '' /* string */, | |||
'productioncode': '' /* string */, | |||
'rating': 0 /* number */, | |||
'set': [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'setid': [ /* array, id: Array.Integer */ | |||
undefined /* integer */ | |||
], | |||
'showlink': '' /* string */, | |||
'sorttitle': '' /* string */, | |||
'studio': '' /* string */, | |||
'tagline': '' /* string */, | |||
'top250': 0 /* integer */, | |||
'trailer': '' /* string */, | |||
'votes': '' /* string */, | |||
'writer': '' /* string */, | |||
'year': 0 /* integer */, | |||
'director': '' /* string */, | |||
'resume': { /* id: Video.Resume, no additional properties allowed */ | |||
'position': 0 /* number, minimum: 0 */, | |||
'total': 0 /* number, minimum: 0 */ | |||
}, | |||
{ /* no additional properties allowed */ | 'runtime': '' /* string */, | ||
' | 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ | ||
' | 'audio': [ /* array, minimum items: 1 */ | ||
{ /* no additional properties allowed */ | |||
'channels': 0 /* integer */, | |||
'codec': '' /* string */, | |||
'language': '' /* string */ | |||
} | |||
], | |||
'subtitle': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'language': '' /* string */ | |||
} | |||
], | |||
'video': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'aspect': 0 /* number */, | |||
'codec': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'height': 0 /* integer */, | |||
'width': 0 /* integer */ | |||
} | |||
] | |||
}, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
] | |||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetRecentlyAddedMusicVideos=== | ||
Retrieve all | Retrieve all recently added music videos | ||
====Permissions==== | ====Permissions==== | ||
ReadData | ReadData | ||
Line 3,577: | Line 3,902: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetRecentlyAddedMusicVideos', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': [ /* id: Video.Fields. | 'params': { | ||
'properties': [ /* id: Video.Fields.MusicVideo */ | |||
undefined /* string, Requesting the resume field will result in increased response times */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | } | ||
} | } | ||
Line 3,595: | Line 3,924: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetRecentlyAddedMusicVideos', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { | 'result': { | ||
Line 3,603: | Line 3,932: | ||
'total': undefined /* integer, required, minimum: 0 */ | 'total': undefined /* integer, required, minimum: 0 */ | ||
}, | }, | ||
' | 'musicvideos': [ /* array */ | ||
{ /* id: Video.Details. | { /* id: Video.Details.MusicVideo */ | ||
' | 'album': '' /* string */, | ||
'artist': '' /* string */, | |||
' | |||
'genre': '' /* string */, | 'genre': '' /* string */, | ||
' | 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
'studio': '' /* string */, | 'studio': '' /* string */, | ||
' | 'track': 0 /* integer */, | ||
'year': 0 /* integer */, | 'year': 0 /* integer */, | ||
'file': '' /* string */, | 'director': '' /* string */, | ||
'lastplayed': '' /* string */, | 'resume': { /* id: Video.Resume, no additional properties allowed */ | ||
'plot': '' /* string */, | 'position': 0 /* number, minimum: 0 */, | ||
'title': '' /* string */, | 'total': 0 /* number, minimum: 0 */ | ||
'playcount': 0 /* integer */, | }, | ||
'fanart': '' /* string */, | 'runtime': '' /* string */, | ||
'thumbnail': '' /* string */, | 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ | ||
'label': undefined /* string, required */ | 'audio': [ /* array, minimum items: 1 */ | ||
} | { /* no additional properties allowed */ | ||
] | 'channels': 0 /* integer */, | ||
} | 'codec': '' /* string */, | ||
'language': '' /* string */ | |||
} | |||
], | |||
'subtitle': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'language': '' /* string */ | |||
} | |||
], | |||
'video': [ /* array, minimum items: 1 */ | |||
{ /* no additional properties allowed */ | |||
'aspect': 0 /* number */, | |||
'codec': '' /* string */, | |||
'duration': 0 /* integer */, | |||
'height': 0 /* integer */, | |||
'width': 0 /* integer */ | |||
} | |||
] | |||
}, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary. | ===VideoLibrary.GetSeasons=== | ||
Retrieve all tv seasons | |||
====Permissions==== | ====Permissions==== | ||
ReadData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetSeasons', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */, | ||
} | 'params': { | ||
'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Video.Fields.Season */ | |||
undefined /* string */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
'ignorearticle': false /* boolean */, | |||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
====Returns==== | ====Returns==== | ||
Line 3,654: | Line 4,015: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': 'VideoLibrary. | 'method': 'VideoLibrary.GetSeasons', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': { | ||
'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0 */, | |||
'start': 0 /* integer, minimum: 0 */, | |||
'total': undefined /* integer, required, minimum: 0 */ | |||
}, | |||
'seasons': [ /* array */ | |||
{ /* id: Video.Details.Season */ | |||
'episode': 0 /* integer */, | |||
'season': undefined /* integer, required */, | |||
'showtitle': '' /* string */, | |||
'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, | |||
'watchedepisodes': 0 /* integer */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===VideoLibrary.GetTVShowDetails=== | |||
Retrieve details about a specific tv show | |||
=== | |||
====Permissions==== | ====Permissions==== | ||
ReadData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.GetTVShowDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
' | 'params': { | ||
'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'properties': [ /* id: Video.Fields.TVShow */ | |||
undefined /* string, Requesting the cast field will result in increased response times */ | |||
] | |||
} | |||
{ | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,699: | Line 4,061: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.GetTVShowDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': { | ||
} | 'tvshowdetails': { /* id: Video.Details.TVShow */ | ||
'cast': [ /* array, id: Video.Cast */ | |||
{ /* no additional properties allowed */ | |||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
} | |||
], | |||
'episode': 0 /* integer */, | |||
'episodeguide': '' /* string */, | |||
'genre': '' /* string */, | |||
'imdbnumber': '' /* string */, | |||
'mpaa': '' /* string */, | |||
'originaltitle': '' /* string */, | |||
'premiered': '' /* string */, | |||
'rating': 0 /* number */, | |||
'season': 0 /* integer */, | |||
'sorttitle': '' /* string */, | |||
'studio': '' /* string */, | |||
'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'votes': '' /* string */, | |||
'watchedepisodes': 0 /* integer */, | |||
'year': 0 /* integer */, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== | ===VideoLibrary.GetTVShows=== | ||
Retrieve all tv shows | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.GetTVShows', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
' | 'params': { | ||
'properties': [ /* id: Video.Fields.TVShow */ | |||
undefined /* string, Requesting the cast field will result in increased response times */ | |||
], | |||
'limits': { /* id: List.Limits, no additional properties allowed */ | |||
'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, | |||
'start': 0 /* integer, minimum: 0 */ | |||
}, | |||
'sort': { /* id: List.Sort */ | |||
{ | 'ignorearticle': false /* boolean */, | ||
'method': 'none' /* string */, | |||
'order': 'ascending' /* string */ | |||
} | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,741: | Line 4,130: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.GetTVShows', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': { | ||
} | 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ | ||
</syntaxhighlight> | 'end': -1 /* integer, minimum: 0 */, | ||
=== | 'start': 0 /* integer, minimum: 0 */, | ||
'total': undefined /* integer, required, minimum: 0 */ | |||
====Permissions==== | }, | ||
'tvshows': [ /* array */ | |||
{ /* id: Video.Details.TVShow */ | |||
'cast': [ /* array, id: Video.Cast */ | |||
{ /* no additional properties allowed */ | |||
'name': undefined /* string, required */, | |||
'role': undefined /* string, required */, | |||
'thumbnail': '' /* string */ | |||
} | |||
], | |||
'episode': 0 /* integer */, | |||
'episodeguide': '' /* string */, | |||
'genre': '' /* string */, | |||
'imdbnumber': '' /* string */, | |||
'mpaa': '' /* string */, | |||
'originaltitle': '' /* string */, | |||
'premiered': '' /* string */, | |||
'rating': 0 /* number */, | |||
'season': 0 /* integer */, | |||
'sorttitle': '' /* string */, | |||
'studio': '' /* string */, | |||
'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'votes': '' /* string */, | |||
'watchedepisodes': 0 /* integer */, | |||
'year': 0 /* integer */, | |||
'dateadded': '' /* string */, | |||
'file': '' /* string */, | |||
'lastplayed': '' /* string */, | |||
'plot': '' /* string */, | |||
'title': '' /* string */, | |||
'playcount': 0 /* integer */, | |||
'fanart': '' /* string */, | |||
'thumbnail': '' /* string */, | |||
'label': undefined /* string, required */ | |||
} | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
===VideoLibrary.RemoveEpisode=== | |||
Removes the given episode from the library | |||
====Permissions==== | |||
RemoveData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveEpisode', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */, | ||
'params': { | |||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,762: | Line 4,195: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveEpisode', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===VideoLibrary.RemoveMovie=== | ||
Removes the given movie from the library | |||
====Permissions==== | ====Permissions==== | ||
RemoveData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveMovie', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */, | ||
'params': { | |||
'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,783: | Line 4,219: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveMovie', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===VideoLibrary.RemoveMusicVideo=== | ||
Removes the given music video from the library | |||
====Permissions==== | ====Permissions==== | ||
RemoveData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveMusicVideo', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */, | ||
'params': { | |||
'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,804: | Line 4,243: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveMusicVideo', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= | ===VideoLibrary.RemoveTVShow=== | ||
Removes the given tv show from the library | |||
====Permissions==== | ====Permissions==== | ||
RemoveData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveTVShow', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': | 'params': { | ||
' | 'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */ | ||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,831: | Line 4,267: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.RemoveTVShow', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result | 'result': undefined /* string */ | ||
} | |||
</syntaxhighlight> | |||
===VideoLibrary.Scan=== | |||
Scans the video sources for new library items | |||
} | |||
</syntaxhighlight> | |||
=== | |||
====Permissions==== | ====Permissions==== | ||
UpdateData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.Scan', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */, | ||
'params': { | |||
'directory': '' /* string */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,862: | Line 4,291: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.Scan', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===VideoLibrary.SetEpisodeDetails=== | ||
Update the given episode with the given details | |||
====Permissions==== | ====Permissions==== | ||
UpdateData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetEpisodeDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': undefined /* | 'params': { | ||
'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'title': undefined /* null */ or undefined /* string */, | |||
'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'runtime': undefined /* null */ or undefined /* string */, | |||
'director': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'plot': undefined /* null */ or undefined /* string */, | |||
'rating': undefined /* null */ or undefined /* number, minimum: 2.2250738585072014e-308 */, | |||
'votes': undefined /* null */ or undefined /* string */, | |||
'lastplayed': undefined /* null */ or undefined /* string */, | |||
'writer': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'firstaired': undefined /* null */ or undefined /* string */, | |||
'productioncode': undefined /* null */ or undefined /* string */, | |||
'season': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'episode': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'originaltitle': undefined /* null */ or undefined /* string */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 3,884: | Line 4,333: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetEpisodeDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===VideoLibrary.SetMovieDetails=== | ||
Update the given movie with the given details | |||
====Permissions==== | ====Permissions==== | ||
UpdateData | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetMovieDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'params': undefined /* integer, | 'params': { | ||
} | 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | ||
</syntaxhighlight> | 'title': undefined /* null */ or undefined /* string */, | ||
====Returns==== | 'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, | ||
'runtime': undefined /* null */ or undefined /* string */, | |||
'director': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'studio': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'year': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'plot': undefined /* null */ or undefined /* string */, | |||
'genre': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'rating': undefined /* null */ or undefined /* number, minimum: 2.2250738585072014e-308 */, | |||
'mpaa': undefined /* null */ or undefined /* string */, | |||
'imdbnumber': undefined /* null */ or undefined /* string */, | |||
'votes': undefined /* null */ or undefined /* string */, | |||
'lastplayed': undefined /* null */ or undefined /* string */, | |||
'originaltitle': undefined /* null */ or undefined /* string */, | |||
'trailer': undefined /* null */ or undefined /* string */, | |||
'tagline': undefined /* null */ or undefined /* string */, | |||
'plotoutline': undefined /* null */ or undefined /* string */, | |||
'writer': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'country': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'top250': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'sorttitle': undefined /* null */ or undefined /* string */, | |||
'set': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'showlink': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetMovieDetails', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= | ===VideoLibrary.SetMusicVideoDetails=== | ||
Update the given music video with the given details | |||
== | ====Permissions==== | ||
=== | UpdateData | ||
====Syntax==== | |||
==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetMusicVideoDetails', | ||
'params': undefined /* string, | 'id': undefined /* integer, required */, | ||
'params': { | |||
'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'title': undefined /* null */ or undefined /* string */, | |||
'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'runtime': undefined /* null */ or undefined /* string */, | |||
'director': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'studio': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'year': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'plot': undefined /* null */ or undefined /* string */, | |||
'album': undefined /* null */ or undefined /* string */, | |||
'artist': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'genre': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'track': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'lastplayed': undefined /* null */ or undefined /* string */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====Returns==== | ====Returns==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetMusicVideoDetails', | ||
' | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===VideoLibrary.SetTVShowDetails=== | ||
Update the given tvshow with the given details | |||
==== | ====Permissions==== | ||
UpdateData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetTVShowDetails', | ||
'params': undefined /* string, | 'id': undefined /* integer, required */, | ||
'params': { | |||
'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, | |||
'title': undefined /* null */ or undefined /* string */, | |||
'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'studio': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'year': undefined /* null */ or undefined /* integer, minimum: 0 */, | |||
'plot': undefined /* null */ or undefined /* string */, | |||
'genre': undefined /* null */ or [ /* array, id: Array.String */ | |||
undefined /* string, minimum length: 1 */ | |||
], | |||
'rating': undefined /* null */ or undefined /* number, minimum: 2.2250738585072014e-308 */, | |||
'mpaa': undefined /* null */ or undefined /* string */, | |||
'imdbnumber': undefined /* null */ or undefined /* string */, | |||
'premiered': undefined /* null */ or undefined /* string */, | |||
'votes': undefined /* null */ or undefined /* string */, | |||
'lastplayed': undefined /* null */ or undefined /* string */, | |||
'originaltitle': undefined /* null */ or undefined /* string */, | |||
'sorttitle': undefined /* null */ or undefined /* string */, | |||
'episodeguide': undefined /* null */ or undefined /* string */ | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====Returns==== | ====Returns==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'VideoLibrary.SetTVShowDetails', | ||
' | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | =Input= | ||
Allows limited navigation within XBMC | |||
==== | ==Methods== | ||
===Input.Back=== | |||
Goes back in GUI | |||
====Permissions==== | |||
Navigate | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Back', | ||
' | 'id': undefined /* integer, required */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | ====Returns==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Back', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
' | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== | ===Input.ContextMenu=== | ||
Shows the context menu | |||
====Permissions==== | |||
Navigate | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.ContextMenu', | ||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Input.ContextMenu', | |||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===Input.Down=== | ||
Navigate down in GUI | |||
====Permissions==== | ====Permissions==== | ||
Navigate | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Down', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */ | ||
} | } | ||
Line 4,010: | Line 4,547: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Down', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===Input.Home=== | ||
Goes to home window in GUI | |||
====Permissions==== | ====Permissions==== | ||
Navigate | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Home', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */ | ||
} | } | ||
Line 4,031: | Line 4,568: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Home', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===Input.Info=== | ||
Shows the information dialog | |||
====Permissions==== | ====Permissions==== | ||
Navigate | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Info', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */ | ||
} | } | ||
Line 4,052: | Line 4,589: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Info', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===Input.Left=== | ||
Navigate left in GUI | |||
====Permissions==== | ====Permissions==== | ||
Navigate | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Left', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */ | ||
} | } | ||
Line 4,073: | Line 4,610: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Left', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': undefined /* string */ | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===Input.Right=== | |||
Navigate right in GUI | |||
=== | |||
====Permissions==== | ====Permissions==== | ||
Navigate | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Right', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 4,100: | Line 4,631: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Right', | ||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': | 'result': undefined /* string */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ===Input.Select=== | ||
Select current item in GUI | |||
====Permissions==== | ====Permissions==== | ||
Navigate | |||
====Syntax==== | ====Syntax==== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Select', | ||
'id': undefined /* integer, required */ | 'id': undefined /* integer, required */ | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 4,126: | Line 4,652: | ||
{ | { | ||
'jsonrpc': '2.0', | 'jsonrpc': '2.0', | ||
'method': ' | 'method': 'Input.Select', | ||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
===Input.Up=== | |||
Navigate up in GUI | |||
====Permissions==== | |||
Navigate | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Input.Up', | |||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Input.Up', | |||
'id': undefined /* integer, required */, | 'id': undefined /* integer, required */, | ||
'result': { /* List of key-value pairs of the retrieved info | 'result': undefined /* string */ | ||
} | |||
</syntaxhighlight> | |||
=Application= | |||
Application information and control | |||
==Notifications== | |||
===Application.OnVolumeChanged=== | |||
The volume of the application has changed. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.OnVolumeChanged', | |||
'params': undefined /* string, required */ or { /* required */ | |||
'muted': undefined /* boolean, required */, | |||
'volume': undefined /* integer, required, minimum: 0, maximum: 100 */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
==Methods== | |||
===Application.GetProperties=== | |||
Retrieves the values of the given properties | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.GetProperties', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'properties': [ /* array, required, all items must be unique */ | |||
'volume' /* string, id: Application.Property.Name */ | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.GetProperties', | |||
'id': undefined /* integer, required */, | |||
'result': { /* id: Application.Property.Value */ | |||
'muted': false /* boolean */, | |||
'name': '' /* string, minimum length: 1 */, | |||
'version': { | |||
'major': undefined /* integer, required, minimum: 0 */, | |||
'minor': undefined /* integer, required, minimum: 0 */, | |||
'revision': undefined /* string */ or undefined /* integer, minimum: 0 */, | |||
'tag': undefined /* string, required */ | |||
}, | |||
'volume': 0 /* integer, minimum: 0, maximum: 100 */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
===Application.Quit=== | |||
Quit application | |||
====Permissions==== | |||
ControlPower | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.Quit', | |||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.Quit', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
===Application.SetMute=== | |||
Toggle mute/unmute | |||
====Permissions==== | |||
ControlPlayback | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.SetMute', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'mute': undefined /* boolean */ or undefined /* string */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.SetMute', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* boolean, Mute state */ | |||
} | |||
</syntaxhighlight> | |||
===Application.SetVolume=== | |||
Set the current volume | |||
====Permissions==== | |||
ControlPlayback | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.SetVolume', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'volume': undefined /* integer, minimum: 0, maximum: 100 */ or 'increment' /* string, id: Global.IncrementDecrement */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'Application.SetVolume', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* integer, minimum: 0 */ | |||
} | |||
</syntaxhighlight> | |||
=System= | |||
System controls and information | |||
==Notifications== | |||
===System.OnLowBattery=== | |||
The system is on low battery. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.OnLowBattery', | |||
'params': undefined /* string, required */ or undefined /* null, required */ | |||
} | |||
</syntaxhighlight> | |||
===System.OnQuit=== | |||
XBMC will be closed. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.OnQuit', | |||
'params': undefined /* string, required */ or undefined /* null, required */ | |||
} | |||
</syntaxhighlight> | |||
===System.OnRestart=== | |||
The system will be restarted. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.OnRestart', | |||
'params': undefined /* string, required */ or undefined /* null, required */ | |||
} | |||
</syntaxhighlight> | |||
===System.OnSleep=== | |||
The system will be suspended. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.OnSleep', | |||
'params': undefined /* string, required */ or undefined /* null, required */ | |||
} | |||
</syntaxhighlight> | |||
===System.OnWake=== | |||
The system woke up from suspension. | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.OnWake', | |||
'params': undefined /* string, required */ or undefined /* null, required */ | |||
} | |||
</syntaxhighlight> | |||
==Methods== | |||
===System.EjectOpticalDrive=== | |||
Ejects or closes the optical disc drive (if available) | |||
====Permissions==== | |||
ControlSystem | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.EjectOpticalDrive', | |||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.EjectOpticalDrive', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
===System.GetProperties=== | |||
Retrieves the values of the given properties | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.GetProperties', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'properties': [ /* array, required, all items must be unique */ | |||
'canshutdown' /* string, id: System.Property.Name */ | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.GetProperties', | |||
'id': undefined /* integer, required */, | |||
'result': { /* id: System.Property.Value */ | |||
'canhibernate': false /* boolean */, | |||
'canreboot': false /* boolean */, | |||
'canshutdown': false /* boolean */, | |||
'cansuspend': false /* boolean */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
===System.Hibernate=== | |||
Puts the system running XBMC into hibernate mode | |||
====Permissions==== | |||
ControlPower | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Hibernate', | |||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Hibernate', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
===System.Reboot=== | |||
Reboots the system running XBMC | |||
====Permissions==== | |||
ControlPower | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Reboot', | |||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Reboot', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
===System.Shutdown=== | |||
Shuts the system running XBMC down | |||
====Permissions==== | |||
ControlPower | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Shutdown', | |||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Shutdown', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
===System.Suspend=== | |||
Suspends the system running XBMC | |||
====Permissions==== | |||
ControlPower | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Suspend', | |||
'id': undefined /* integer, required */ | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'System.Suspend', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* string */ | |||
} | |||
</syntaxhighlight> | |||
=XBMC= | |||
Dumping ground for very XBMC specific operations | |||
==Methods== | |||
===XBMC.GetInfoBooleans=== | |||
Retrieve info booleans about XBMC and the system | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'XBMC.GetInfoBooleans', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'booleans': [ /* array, required, minimum items: 1 */ | |||
undefined /* string */ | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'XBMC.GetInfoBooleans', | |||
'id': undefined /* integer, required */, | |||
'result': { /* List of key-value pairs of the retrieved info booleans */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
===XBMC.GetInfoLabels=== | |||
Retrieve info labels about XBMC and the system | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'XBMC.GetInfoLabels', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'labels': [ /* array, required, minimum items: 1, See http://wiki.xbmc.org/index.php?title=InfoLabels for a list of possible info labels */ | |||
undefined /* string */ | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'XBMC.GetInfoLabels', | |||
'id': undefined /* integer, required */, | |||
'result': { /* List of key-value pairs of the retrieved info labels */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
=GUI= | |||
==Methods== | |||
===GUI.GetProperties=== | |||
Retrieves the values of the given properties | |||
====Permissions==== | |||
ReadData | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'GUI.GetProperties', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'properties': [ /* array, required, all items must be unique */ | |||
'currentwindow' /* string, id: GUI.Property.Name */ | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'GUI.GetProperties', | |||
'id': undefined /* integer, required */, | |||
'result': { /* id: GUI.Property.Value */ | |||
'currentcontrol': { | |||
'label': undefined /* string, required */ | |||
}, | |||
'currentwindow': { | |||
'id': undefined /* integer, required */, | |||
'label': undefined /* string, required */ | |||
}, | |||
'fullscreen': false /* boolean */, | |||
'skin': { | |||
'id': undefined /* string, required, minimum length: 1 */, | |||
'name': '' /* string */ | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
===GUI.SetFullscreen=== | |||
Toggle fullscreen/GUI | |||
====Permissions==== | |||
ControlGUI | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'GUI.SetFullscreen', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'fullscreen': undefined /* boolean */ or undefined /* string */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'GUI.SetFullscreen', | |||
'id': undefined /* integer, required */, | |||
'result': undefined /* boolean, Fullscreen state */ | |||
} | |||
</syntaxhighlight> | |||
===GUI.ShowNotification=== | |||
Shows a GUI notification | |||
====Permissions==== | |||
ControlGUI | |||
====Syntax==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'GUI.ShowNotification', | |||
'id': undefined /* integer, required */, | |||
'params': { | |||
'title': undefined /* string, required */, | |||
'message': undefined /* string, required */, | |||
'image': undefined /* string */ or undefined /* string */, | |||
'displaytime': 5000 /* integer, minimum: 1500, The time in milliseconds the notification will be visible */ | |||
} | |||
} | |||
</syntaxhighlight> | |||
====Returns==== | |||
<syntaxhighlight lang="javascript"> | |||
{ | |||
'jsonrpc': '2.0', | |||
'method': 'GUI.ShowNotification', | |||
'id': undefined /* integer, required */, | |||
'result': { /* id: System.Property.Value */ | |||
'canhibernate': false /* boolean */, | |||
'canreboot': false /* boolean */, | |||
'canshutdown': false /* boolean */, | |||
'cansuspend': false /* boolean */ | |||
} | } | ||
} | } |
Revision as of 04:05, 21 June 2012
JSON-RPC Pages |
---|
Main JSON-RPC Page |
- v8 (Krypton) |
- v10 (Leia) |
- v12 (Matrix) |
- v13 (Nexus) |
- v14 (Omega) |
Examples |
All JSON-RPC Pages |
Version 4 is a stable version of XBMC's JSON-RPC API and is published with the release of Eden. It is a complete re-write and re-structuring of version 2 and therefore isn't backwards compatible to it. The main reason for this was the need to make this version fully compatible with all the functionality, features and requirements of the JSON-RPC 2.0 specification. This was a main concern during early development to make it easier for third party developers and applications to interact with XBMC's JSON-RPC API by using existing JSON-RPC libraries.
An rough and incomplete list of changes compared to version 2 can be found here. A more complete and detailed list can be found in the forum.
Documentation (JSON Schema)
Starting with JSON-RPC API version 3 a new way of API documentation has been introduced. All methods and data types are described using JSON Schema. This provides third party developers with an always complete and up-to-date documentation by calling JSONRPC.Introspect even during periods of heavy development. Furthermore the same method and data type specification that can be used by third party developers as a documentation is used by XBMC to check and verify method parameters and their values on every JSON-RPC request and allows to provide detailed error messages in case of a bad or missing parameter.
Supported features of JSON Schema
Schema | IETF Draft 03 |
---|---|
type | Yes |
properties | Yes |
patternProperties | No |
additionalProperties | Yes |
items | Yes |
additionalItems | Yes |
required | Yes |
dependencies | No |
minimum | Yes |
maximum | Yes |
Schema | IETF Draft 03 |
---|---|
exclusiveMinimum | Yes |
exclusiveMaximum | Yes |
minItems | Yes |
maxItems | Yes |
uniqueItems | Yes |
pattern | No |
minLength | Yes |
maxLength | Yes |
enum | Yes |
default | Yes |
Schema | IETF Draft 03 |
---|---|
title | No |
description | Yes |
format | No |
divisibleBy | Yes |
disallow | No |
extends | Yes |
id | Yes |
$ref | Yes |
$schema | No |
Hyper Schema | No |
Error message
If XBMC detects a bad or missing parameter in a JSON-RPC request it returns an error object. The JSON schema description of that error object is
{ "type": "object", "properties": { "code": { "type": "integer", "required": true }, "message": { "type": "string", "required": true }, "data": { "type": "object", "properties": { "method": { "type": "string", "required": true }, "stack": { "type": "object", "id": "Error.Stack", "properties": { "name": { "type": "string", "required": true }, "type": { "type": "string", "required": true }, "message": { "type": "string", "required": true }, "property": { "$ref": "Error.Stack" } } } } } } } |
JSONRPC
A variety of standard JSONRPC calls
Methods
JSONRPC.Introspect
Enumerates all actions and descriptions
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Introspect', 'id': undefined /* integer, required */, 'params': { 'getdescriptions': true /* boolean */, 'getmetadata': false /* boolean */, 'filterbytransport': true /* boolean */, 'filter': { 'getreferences': true /* boolean, Whether or not to print the schema for referenced types */, 'id': undefined /* string, required, Name of a namespace, method or type */, 'type': undefined /* string, required, Type of the given name */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Introspect', 'id': undefined /* integer, required */, 'result': { /* no additional properties allowed */ } }
JSONRPC.NotifyAll
Notify all other connected clients
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.NotifyAll', 'id': undefined /* integer, required */, 'params': { 'sender': undefined /* string, required */, 'message': undefined /* string, required */, 'data': null /* any */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.NotifyAll', 'id': undefined /* integer, required */, 'result': undefined /* any */ }
JSONRPC.Permission
Retrieve the clients permissions
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Permission', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Permission', 'id': undefined /* integer, required */, 'result': { 'controlgui': undefined /* boolean, required */, 'controlnotify': undefined /* boolean, required */, 'controlplayback': undefined /* boolean, required */, 'controlpower': undefined /* boolean, required */, 'controlsystem': undefined /* boolean, required */, 'navigate': undefined /* boolean, required */, 'readdata': undefined /* boolean, required */, 'removedata': undefined /* boolean, required */, 'updatedata': undefined /* boolean, required */, 'writefile': undefined /* boolean, required */ } }
JSONRPC.Ping
Ping responder
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Ping', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
JSONRPC.Version
Retrieve the jsonrpc protocol version
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Version', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'JSONRPC.Version', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player
Manages all available players
Notifications
Player.OnPause
Playback of a media item has been paused. If there is no ID available extra information will be provided.
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.OnPause', 'params': undefined /* string, required */ or { /* required, id: Player.Notifications.Data */ 'item': { /* An unknown item does not have any additional information. */ 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* An item known to the database has an identification. */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A movie item has a title and may have a release year. */ 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */, 'year': 0 /* integer */ } or { /* A tv episode has a title and may have an episode number, season number and the title of the show it belongs to. */ 'episode': 0 /* integer */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A music video has a title and may have an album and an artist. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A song has a title and may have an album, an artist and a track number. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'track': 0 /* integer */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ }, 'player': { /* required, id: Player.Notifications.Player */ 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'speed': 0 /* integer */ } } }
Player.OnPlay
Playback of a media item has been started or the playback speed has changed. If there is no ID available extra information will be provided.
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.OnPlay', 'params': undefined /* string, required */ or { /* required, id: Player.Notifications.Data */ 'item': { /* An unknown item does not have any additional information. */ 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* An item known to the database has an identification. */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A movie item has a title and may have a release year. */ 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */, 'year': 0 /* integer */ } or { /* A tv episode has a title and may have an episode number, season number and the title of the show it belongs to. */ 'episode': 0 /* integer */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A music video has a title and may have an album and an artist. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A song has a title and may have an album, an artist and a track number. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'track': 0 /* integer */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ }, 'player': { /* required, id: Player.Notifications.Player */ 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'speed': 0 /* integer */ } } }
Player.OnSeek
The playback position has been changed. If there is no ID available extra information will be provided.
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.OnSeek', 'params': undefined /* string, required */ or { /* required */ 'item': { /* An unknown item does not have any additional information. */ 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* An item known to the database has an identification. */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A movie item has a title and may have a release year. */ 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */, 'year': 0 /* integer */ } or { /* A tv episode has a title and may have an episode number, season number and the title of the show it belongs to. */ 'episode': 0 /* integer */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A music video has a title and may have an album and an artist. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A song has a title and may have an album, an artist and a track number. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'track': 0 /* integer */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ }, 'player': { /* required, id: Player.Notifications.Player.Seek */ 'seekoffset': { /* id: Global.Time, no additional properties allowed */ 'hours': undefined /* integer, required, minimum: 0, maximum: 23 */, 'milliseconds': undefined /* integer, required, minimum: 0, maximum: 999 */, 'minutes': undefined /* integer, required, minimum: 0, maximum: 59 */, 'seconds': undefined /* integer, required, minimum: 0, maximum: 59 */ }, 'time': { /* id: Global.Time, no additional properties allowed */ 'hours': undefined /* integer, required, minimum: 0, maximum: 23 */, 'milliseconds': undefined /* integer, required, minimum: 0, maximum: 999 */, 'minutes': undefined /* integer, required, minimum: 0, maximum: 59 */, 'seconds': undefined /* integer, required, minimum: 0, maximum: 59 */ }, 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'speed': 0 /* integer */ } } }
Player.OnSpeedChanged
Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.OnSpeedChanged', 'params': undefined /* string, required */ or { /* required, id: Player.Notifications.Data */ 'item': { /* An unknown item does not have any additional information. */ 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* An item known to the database has an identification. */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A movie item has a title and may have a release year. */ 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */, 'year': 0 /* integer */ } or { /* A tv episode has a title and may have an episode number, season number and the title of the show it belongs to. */ 'episode': 0 /* integer */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A music video has a title and may have an album and an artist. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A song has a title and may have an album, an artist and a track number. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'track': 0 /* integer */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ }, 'player': { /* required, id: Player.Notifications.Player */ 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'speed': 0 /* integer */ } } }
Player.OnStop
Playback of a media item has been stopped. If there is no ID available extra information will be provided.
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.OnStop', 'params': undefined /* string, required */ or { /* required */ 'item': { /* An unknown item does not have any additional information. */ 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* An item known to the database has an identification. */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A movie item has a title and may have a release year. */ 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */, 'year': 0 /* integer */ } or { /* A tv episode has a title and may have an episode number, season number and the title of the show it belongs to. */ 'episode': 0 /* integer */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A music video has a title and may have an album and an artist. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } or { /* A song has a title and may have an album, an artist and a track number. */ 'album': '' /* string */, 'artist': '' /* string */, 'title': undefined /* string, required */, 'track': 0 /* integer */, 'type': 'unknown' /* string, required, id: Player.Notifications.Item.Type */ } } }
Methods
Player.GetActivePlayers
Returns all active players
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.GetActivePlayers', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.GetActivePlayers', 'id': undefined /* integer, required */, 'result': [ /* array, all items must be unique */ { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'type': 'video' /* string, required, id: Player.Type */ } ] }
Player.GetItem
Retrieves the currently played item
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.GetItem', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'properties': [ /* id: List.Fields.All */ undefined /* string */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.GetItem', 'id': undefined /* integer, required */, 'result': { 'item': { /* required, id: List.Item.All */ 'album': '' /* string */, 'albumartist': '' /* string */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'comment': '' /* string */, 'country': '' /* string */, 'duration': 0 /* integer */, 'episode': 0 /* integer */, 'firstaired': '' /* string */, 'id': -1 /* integer, id: Library.Id, minimum: 1 */, 'imdbnumber': '' /* string */, 'lyrics': '' /* string */, 'mpaa': '' /* string */, 'musicbrainzartistid': '' /* string */, 'musicbrainztrackid': '' /* string */, 'originaltitle': '' /* string */, 'plotoutline': '' /* string */, 'premiered': '' /* string */, 'productioncode': '' /* string */, 'season': 0 /* integer */, 'set': [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'setid': [ /* array, id: Array.Integer */ undefined /* integer */ ], 'showlink': '' /* string */, 'showtitle': '' /* string */, 'studio': '' /* string */, 'tagline': '' /* string */, 'top250': 0 /* integer */, 'track': 0 /* integer */, 'trailer': '' /* string */, 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string */, 'votes': '' /* string */, 'watchedepisodes': 0 /* integer */, 'writer': '' /* string */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'year': 0 /* integer */, 'genre': '' /* string */ } } }
Player.GetProperties
Retrieves the values of the given properties
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.GetProperties', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'properties': [ /* array, required, all items must be unique */ 'type' /* string, id: Player.Property.Name */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.GetProperties', 'id': undefined /* integer, required */, 'result': { /* id: Player.Property.Value */ 'audiostreams': [ /* array */ { /* id: Player.Audio.Stream */ 'index': undefined /* integer, required, minimum: 0 */, 'language': undefined /* string, required */, 'name': undefined /* string, required */ } ], 'canchangespeed': false /* boolean */, 'canmove': false /* boolean */, 'canrepeat': false /* boolean */, 'canrotate': false /* boolean */, 'canseek': false /* boolean */, 'canshuffle': false /* boolean */, 'canzoom': false /* boolean */, 'currentaudiostream': { /* id: Player.Audio.Stream.Extended */ 'bitrate': undefined /* integer, required */, 'channels': undefined /* integer, required */, 'codec': undefined /* string, required */, 'index': undefined /* integer, required, minimum: 0 */, 'language': undefined /* string, required */, 'name': undefined /* string, required */ }, 'currentsubtitle': { /* id: Player.Subtitle */ 'index': undefined /* integer, required, minimum: 0 */, 'language': undefined /* string, required */, 'name': undefined /* string, required */ }, 'partymode': false /* boolean */, 'percentage': 0 /* number, id: Player.Position.Percentage, minimum: 0, maximum: 100 */, 'playlistid': -1 /* integer, id: Playlist.Id, minimum: 0, maximum: 2 */, 'position': -1 /* integer, id: Playlist.Position, minimum: 0 */, 'repeat': 'off' /* string, id: Player.Repeat */, 'shuffled': false /* boolean */, 'speed': 0 /* integer */, 'subtitleenabled': false /* boolean */, 'subtitles': [ /* array */ { /* id: Player.Subtitle */ 'index': undefined /* integer, required, minimum: 0 */, 'language': undefined /* string, required */, 'name': undefined /* string, required */ } ], 'time': { /* id: Global.Time, no additional properties allowed */ 'hours': undefined /* integer, required, minimum: 0, maximum: 23 */, 'milliseconds': undefined /* integer, required, minimum: 0, maximum: 999 */, 'minutes': undefined /* integer, required, minimum: 0, maximum: 59 */, 'seconds': undefined /* integer, required, minimum: 0, maximum: 59 */ }, 'totaltime': { /* id: Global.Time, no additional properties allowed */ 'hours': undefined /* integer, required, minimum: 0, maximum: 23 */, 'milliseconds': undefined /* integer, required, minimum: 0, maximum: 999 */, 'minutes': undefined /* integer, required, minimum: 0, maximum: 59 */, 'seconds': undefined /* integer, required, minimum: 0, maximum: 59 */ }, 'type': 'video' /* string, id: Player.Type */ } }
Player.GoNext
Go to next item on the playlist
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.GoNext', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.GoNext', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.GoPrevious
Go to previous item on the playlist
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.GoPrevious', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.GoPrevious', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.GoTo
Go to item at the given position in the playlist
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.GoTo', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'position': -1 /* integer, required, id: Playlist.Position, minimum: 0 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.GoTo', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.MoveDown
If picture is zoomed move viewport down
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.MoveDown', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.MoveDown', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.MoveLeft
If picture is zoomed move viewport left otherwise skip previous
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.MoveLeft', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.MoveLeft', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.MoveRight
If picture is zoomed move viewport right otherwise skip next
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.MoveRight', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.MoveRight', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.MoveUp
If picture is zoomed move viewport up
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.MoveUp', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.MoveUp', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.Open
Start playback of either the playlist with the given ID, a slideshow with the pictures from the given directory or a single file or an item from the database.
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.Open', 'id': undefined /* integer, required */, 'params': { 'item': { /* no additional properties allowed */ 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'position': -1 /* integer, id: Playlist.Position, minimum: 0 */ } or { /* no additional properties allowed */ 'file': undefined /* string, required, Path to a file (not a directory) to be added to the playlist */ } or { /* no additional properties allowed */ 'directory': undefined /* string, required */ } or { /* no additional properties allowed */ 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'genreid': -1 /* integer, required, id: Library.Id, minimum: 1, Identification of a genre from the AudioLibrary */ } or { /* no additional properties allowed */ 'path': undefined /* string, required */, 'random': true /* boolean, Deprecated, use the shuffled property of the options parameter instead */, 'recursive': true /* boolean */ }, 'options': { /* no additional properties allowed */ 'repeat': undefined /* null */ or 'off' /* string, id: Player.Repeat */, 'resume': undefined /* boolean, Whether to resume from the resume point or not */ or 0 /* number, id: Player.Position.Percentage, minimum: 0, maximum: 100, Percentage value to start from */ or { /* id: Player.Position.Time, no additional properties allowed, Time to start from */ 'hours': 0 /* integer, minimum: 0, maximum: 23 */, 'milliseconds': 0 /* integer, minimum: 0, maximum: 999 */, 'minutes': 0 /* integer, minimum: 0, maximum: 59 */, 'seconds': 0 /* integer, minimum: 0, maximum: 59 */ }, 'shuffled': undefined /* null */ or undefined /* boolean */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.Open', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.PlayPause
Pauses or unpause playback and returns the new state
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.PlayPause', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'play': undefined /* boolean */ or undefined /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.PlayPause', 'id': undefined /* integer, required */, 'result': { /* required, id: Player.Speed */ 'speed': 0 /* integer */ } }
Player.Repeat
Set the repeat mode of the player
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.Repeat', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'state': 'off' /* string, required, id: Player.Repeat */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.Repeat', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.Rotate
Rotates current picture
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.Rotate', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.Rotate', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.Seek
Seek through the playing item
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.Seek', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'value': 0 /* number, id: Player.Position.Percentage, minimum: 0, maximum: 100, Percentage value to seek to */ or { /* id: Player.Position.Time, no additional properties allowed, Time to seek to */ 'hours': 0 /* integer, minimum: 0, maximum: 23 */, 'milliseconds': 0 /* integer, minimum: 0, maximum: 999 */, 'minutes': 0 /* integer, minimum: 0, maximum: 59 */, 'seconds': 0 /* integer, minimum: 0, maximum: 59 */ } or undefined /* string, Seek by predefined jumps */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.Seek', 'id': undefined /* integer, required */, 'result': { 'percentage': 0 /* number, id: Player.Position.Percentage, minimum: 0, maximum: 100 */, 'time': { /* id: Global.Time, no additional properties allowed */ 'hours': undefined /* integer, required, minimum: 0, maximum: 23 */, 'milliseconds': undefined /* integer, required, minimum: 0, maximum: 999 */, 'minutes': undefined /* integer, required, minimum: 0, maximum: 59 */, 'seconds': undefined /* integer, required, minimum: 0, maximum: 59 */ }, 'totaltime': { /* id: Global.Time, no additional properties allowed */ 'hours': undefined /* integer, required, minimum: 0, maximum: 23 */, 'milliseconds': undefined /* integer, required, minimum: 0, maximum: 999 */, 'minutes': undefined /* integer, required, minimum: 0, maximum: 59 */, 'seconds': undefined /* integer, required, minimum: 0, maximum: 59 */ } } }
Player.SetAudioStream
Set the audio stream played by the player
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.SetAudioStream', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'stream': undefined /* string */ or undefined /* integer, minimum: 0, Index of the audio stream to play */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.SetAudioStream', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.SetSpeed
Set the speed of the current playback
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.SetSpeed', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'speed': undefined /* integer */ or 'increment' /* string, id: Global.IncrementDecrement */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.SetSpeed', 'id': undefined /* integer, required */, 'result': { /* required, id: Player.Speed */ 'speed': 0 /* integer */ } }
Player.SetSubtitle
Set the subtitle displayed by the player
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.SetSubtitle', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'subtitle': undefined /* string */ or undefined /* integer, minimum: 0, Index of the subtitle to display */, 'enable': false /* boolean, Whether to enable subtitles to be displayed after setting the new subtitle */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.SetSubtitle', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.Shuffle
Shuffle items in the player
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.Shuffle', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.Shuffle', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.Stop
Stops playback
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.Stop', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.Stop', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.UnShuffle
Unshuffle items in the player
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.UnShuffle', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.UnShuffle', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.Zoom
Zooms current picture
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.Zoom', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */, 'value': undefined /* integer, required, minimum: 1, maximum: 10, Zoom level */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.Zoom', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.ZoomIn
Zoom in once
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.ZoomIn', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.ZoomIn', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Player.ZoomOut
Zoom out once
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Player.ZoomOut', 'id': undefined /* integer, required */, 'params': { 'playerid': -1 /* integer, required, id: Player.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Player.ZoomOut', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Playlist
Playlist modification
Methods
Playlist.Add
Add item(s) to playlist
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.Add', 'id': undefined /* integer, required */, 'params': { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'item': { /* no additional properties allowed */ 'file': undefined /* string, required, Path to a file (not a directory) to be added to the playlist */ } or { /* no additional properties allowed */ 'directory': undefined /* string, required */ } or { /* no additional properties allowed */ 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'genreid': -1 /* integer, required, id: Library.Id, minimum: 1, Identification of a genre from the AudioLibrary */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.Add', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Playlist.Clear
Clear playlist
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.Clear', 'id': undefined /* integer, required */, 'params': { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.Clear', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Playlist.GetItems
Get all items from playlist
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.GetItems', 'id': undefined /* integer, required */, 'params': { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'properties': [ /* id: List.Fields.All */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.GetItems', 'id': undefined /* integer, required */, 'result': { 'items': [ /* array, required */ { /* id: List.Item.All */ 'album': '' /* string */, 'albumartist': '' /* string */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'comment': '' /* string */, 'country': '' /* string */, 'duration': 0 /* integer */, 'episode': 0 /* integer */, 'firstaired': '' /* string */, 'id': -1 /* integer, id: Library.Id, minimum: 1 */, 'imdbnumber': '' /* string */, 'lyrics': '' /* string */, 'mpaa': '' /* string */, 'musicbrainzartistid': '' /* string */, 'musicbrainztrackid': '' /* string */, 'originaltitle': '' /* string */, 'plotoutline': '' /* string */, 'premiered': '' /* string */, 'productioncode': '' /* string */, 'season': 0 /* integer */, 'set': [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'setid': [ /* array, id: Array.Integer */ undefined /* integer */ ], 'showlink': '' /* string */, 'showtitle': '' /* string */, 'studio': '' /* string */, 'tagline': '' /* string */, 'top250': 0 /* integer */, 'track': 0 /* integer */, 'trailer': '' /* string */, 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string */, 'votes': '' /* string */, 'watchedepisodes': 0 /* integer */, 'writer': '' /* string */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'year': 0 /* integer */, 'genre': '' /* string */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
Playlist.GetPlaylists
Returns all existing playlists
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.GetPlaylists', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.GetPlaylists', 'id': undefined /* integer, required */, 'result': [ /* array, all items must be unique */ { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'type': 'unknown' /* string, required, id: Playlist.Type */ } ] }
Playlist.GetProperties
Retrieves the values of the given properties
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.GetProperties', 'id': undefined /* integer, required */, 'params': { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'properties': [ /* array, required, all items must be unique */ 'type' /* string, id: Playlist.Property.Name */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.GetProperties', 'id': undefined /* integer, required */, 'result': { /* id: Playlist.Property.Value */ 'size': 0 /* integer, minimum: 0 */, 'type': 'unknown' /* string, id: Playlist.Type */ } }
Playlist.Insert
Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.Insert', 'id': undefined /* integer, required */, 'params': { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'position': -1 /* integer, required, id: Playlist.Position, minimum: 0 */, 'item': { /* no additional properties allowed */ 'file': undefined /* string, required, Path to a file (not a directory) to be added to the playlist */ } or { /* no additional properties allowed */ 'directory': undefined /* string, required */ } or { /* no additional properties allowed */ 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } or { /* no additional properties allowed */ 'genreid': -1 /* integer, required, id: Library.Id, minimum: 1, Identification of a genre from the AudioLibrary */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.Insert', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Playlist.Remove
Remove item from playlist. Does not work for picture playlists (aka slideshows).
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.Remove', 'id': undefined /* integer, required */, 'params': { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'position': -1 /* integer, required, id: Playlist.Position, minimum: 0 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.Remove', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Playlist.Swap
Swap items in the playlist. Does not work for picture playlists (aka slideshows).
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Playlist.Swap', 'id': undefined /* integer, required */, 'params': { 'playlistid': -1 /* integer, required, id: Playlist.Id, minimum: 0, maximum: 2 */, 'position1': -1 /* integer, required, id: Playlist.Position, minimum: 0 */, 'position2': -1 /* integer, required, id: Playlist.Position, minimum: 0 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Playlist.Swap', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Files
Shares information
Methods
Files.GetDirectory
Get the directories and files in the given directory
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Files.GetDirectory', 'id': undefined /* integer, required */, 'params': { 'directory': undefined /* string, required */, 'media': 'video' /* string, id: Files.Media */, 'properties': [ /* id: List.Fields.Files */ undefined /* string */ ], 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Files.GetDirectory', 'id': undefined /* integer, required */, 'result': { 'files': [ /* array, required */ { /* id: List.Item.File */ 'file': '' /* string */, 'filetype': undefined /* string, required */, 'lastmodified': '' /* string */, 'mimetype': '' /* string */, 'size': 0 /* integer, Size of the file in kB (1000 Byte) */, 'album': '' /* string */, 'albumartist': '' /* string */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'comment': '' /* string */, 'country': '' /* string */, 'duration': 0 /* integer */, 'episode': 0 /* integer */, 'firstaired': '' /* string */, 'id': -1 /* integer, id: Library.Id, minimum: 1 */, 'imdbnumber': '' /* string */, 'lyrics': '' /* string */, 'mpaa': '' /* string */, 'musicbrainzartistid': '' /* string */, 'musicbrainztrackid': '' /* string */, 'originaltitle': '' /* string */, 'plotoutline': '' /* string */, 'premiered': '' /* string */, 'productioncode': '' /* string */, 'season': 0 /* integer */, 'set': [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'setid': [ /* array, id: Array.Integer */ undefined /* integer */ ], 'showlink': '' /* string */, 'showtitle': '' /* string */, 'studio': '' /* string */, 'tagline': '' /* string */, 'top250': 0 /* integer */, 'track': 0 /* integer */, 'trailer': '' /* string */, 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'type': 'unknown' /* string */, 'votes': '' /* string */, 'watchedepisodes': 0 /* integer */, 'writer': '' /* string */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'year': 0 /* integer */, 'genre': '' /* string */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
Files.GetSources
Get the sources of the media windows
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Files.GetSources', 'id': undefined /* integer, required */, 'params': { 'media': 'video' /* string, required, id: Files.Media */, 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Files.GetSources', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'sources': [ /* array, required, id: List.Items.Sources */ { 'file': undefined /* string, required */ } ] } }
Files.PrepareDownload
Provides a way to download a given file (e.g. providing an URL to the real file location)
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Files.PrepareDownload', 'id': undefined /* integer, required */, 'params': { 'path': undefined /* string, required */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Files.PrepareDownload', 'id': undefined /* integer, required */, 'result': { 'details': undefined /* any, required, Transport specific details on how/from where to download the given file */, 'mode': undefined /* string, required, Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol */, 'protocol': undefined /* string, required */ } }
AudioLibrary
Audio Library information
Notifications
AudioLibrary.OnRemove
An audio item has been removed.
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.OnRemove', 'params': undefined /* string, required */ or { /* required */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': undefined /* required */ } }
AudioLibrary.OnScanFinished
Scanning the audio library has been finished.
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.OnScanFinished', 'params': undefined /* string, required */ or undefined /* null, required */ }
AudioLibrary.OnUpdate
An audio item has been updated.
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.OnUpdate', 'params': undefined /* string, required */ or { /* required */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': undefined /* string ('song'), required, id: Notifications.Library.Audio.Type */ } }
Methods
AudioLibrary.Clean
Cleans the audio library from non-existent items
Permissions
RemoveData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.Clean', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.Clean', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
AudioLibrary.Export
Exports all items from the audio library
Permissions
WriteFile
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.Export', 'id': undefined /* integer, required */, 'params': { 'options': { /* no additional properties allowed */ 'path': undefined /* string, required, minimum length: 1, Path to the directory to where the data should be exported */ } or { /* no additional properties allowed */ 'images': false /* boolean, Whether to export thumbnails and fanart images */, 'overwrite': false /* boolean, Whether to overwrite existing exported files */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.Export', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
AudioLibrary.GetAlbumDetails
Retrieve details about a specific album
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetAlbumDetails', 'id': undefined /* integer, required */, 'params': { 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Audio.Fields.Album */ undefined /* string */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetAlbumDetails', 'id': undefined /* integer, required */, 'result': { 'albumdetails': { /* id: Audio.Details.Album */ 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'albumlabel': '' /* string */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'description': '' /* string */, 'mood': '' /* string */, 'style': '' /* string */, 'theme': '' /* string */, 'type': '' /* string */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
AudioLibrary.GetAlbums
Retrieve all albums from specified artist or genre
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetAlbums', 'id': undefined /* integer, required */, 'params': { 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'genreid': -1 /* integer, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Audio.Fields.Album */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetAlbums', 'id': undefined /* integer, required */, 'result': { 'albums': [ /* array */ { /* id: Audio.Details.Album */ 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'albumlabel': '' /* string */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'description': '' /* string */, 'mood': '' /* string */, 'style': '' /* string */, 'theme': '' /* string */, 'type': '' /* string */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
AudioLibrary.GetArtistDetails
Retrieve details about a specific artist
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetArtistDetails', 'id': undefined /* integer, required */, 'params': { 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Audio.Fields.Artist */ undefined /* string */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetArtistDetails', 'id': undefined /* integer, required */, 'result': { 'artistdetails': { /* id: Audio.Details.Artist */ 'artist': undefined /* string, required */, 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'born': '' /* string */, 'description': '' /* string */, 'died': '' /* string */, 'disbanded': '' /* string */, 'formed': '' /* string */, 'instrument': '' /* string */, 'mood': '' /* string */, 'musicbrainzartistid': '' /* string */, 'style': '' /* string */, 'yearsactive': '' /* string */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
AudioLibrary.GetArtists
Retrieve all artists
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetArtists', 'id': undefined /* integer, required */, 'params': { 'albumartistsonly': undefined /* null */ or undefined /* boolean */, 'genreid': -1 /* integer, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Audio.Fields.Artist */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetArtists', 'id': undefined /* integer, required */, 'result': { 'artists': [ /* array */ { /* id: Audio.Details.Artist */ 'artist': undefined /* string, required */, 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'born': '' /* string */, 'description': '' /* string */, 'died': '' /* string */, 'disbanded': '' /* string */, 'formed': '' /* string */, 'instrument': '' /* string */, 'mood': '' /* string */, 'musicbrainzartistid': '' /* string */, 'style': '' /* string */, 'yearsactive': '' /* string */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
AudioLibrary.GetGenres
Retrieve all genres
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetGenres', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Library.Fields.Genre */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetGenres', 'id': undefined /* integer, required */, 'result': { 'genres': [ /* array, required */ { /* id: Library.Details.Genre */ 'genreid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'thumbnail': '' /* string */, 'title': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
AudioLibrary.GetRecentlyAddedAlbums
Retrieve recently added albums
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyAddedAlbums', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Audio.Fields.Album */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyAddedAlbums', 'id': undefined /* integer, required */, 'result': { 'albums': [ /* array */ { /* id: Audio.Details.Album */ 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'albumlabel': '' /* string */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'description': '' /* string */, 'mood': '' /* string */, 'style': '' /* string */, 'theme': '' /* string */, 'type': '' /* string */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
AudioLibrary.GetRecentlyAddedSongs
Retrieve recently added songs
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyAddedSongs', 'id': undefined /* integer, required */, 'params': { 'albumlimit': -1 /* integer, id: List.Amount, minimum: 0, The amount of recently added albums from which to return the songs */, 'properties': [ /* id: Audio.Fields.Song */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyAddedSongs', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'songs': [ /* array */ { /* id: Audio.Details.Song */ 'album': '' /* string */, 'albumartist': '' /* string */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'comment': '' /* string */, 'duration': 0 /* integer */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'lyrics': '' /* string */, 'musicbrainzartistid': '' /* string */, 'musicbrainztrackid': '' /* string */, 'playcount': 0 /* integer */, 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'track': 0 /* integer */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
AudioLibrary.GetRecentlyPlayedAlbums
Retrieve recently played albums
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyPlayedAlbums', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Audio.Fields.Album */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyPlayedAlbums', 'id': undefined /* integer, required */, 'result': { 'albums': [ /* array */ { /* id: Audio.Details.Album */ 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'albumlabel': '' /* string */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'description': '' /* string */, 'mood': '' /* string */, 'style': '' /* string */, 'theme': '' /* string */, 'type': '' /* string */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
AudioLibrary.GetRecentlyPlayedSongs
Retrieve recently played songs
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyPlayedSongs', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Audio.Fields.Song */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetRecentlyPlayedSongs', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'songs': [ /* array */ { /* id: Audio.Details.Song */ 'album': '' /* string */, 'albumartist': '' /* string */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'comment': '' /* string */, 'duration': 0 /* integer */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'lyrics': '' /* string */, 'musicbrainzartistid': '' /* string */, 'musicbrainztrackid': '' /* string */, 'playcount': 0 /* integer */, 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'track': 0 /* integer */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
AudioLibrary.GetSongDetails
Retrieve details about a specific song
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetSongDetails', 'id': undefined /* integer, required */, 'params': { 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Audio.Fields.Song */ undefined /* string */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetSongDetails', 'id': undefined /* integer, required */, 'result': { 'songdetails': { /* id: Audio.Details.Song */ 'album': '' /* string */, 'albumartist': '' /* string */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'comment': '' /* string */, 'duration': 0 /* integer */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'lyrics': '' /* string */, 'musicbrainzartistid': '' /* string */, 'musicbrainztrackid': '' /* string */, 'playcount': 0 /* integer */, 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'track': 0 /* integer */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
AudioLibrary.GetSongs
Retrieve all songs from specified album, artist or genre
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetSongs', 'id': undefined /* integer, required */, 'params': { 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'genreid': -1 /* integer, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Audio.Fields.Song */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.GetSongs', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'songs': [ /* array */ { /* id: Audio.Details.Song */ 'album': '' /* string */, 'albumartist': '' /* string */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'comment': '' /* string */, 'duration': 0 /* integer */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'lyrics': '' /* string */, 'musicbrainzartistid': '' /* string */, 'musicbrainztrackid': '' /* string */, 'playcount': 0 /* integer */, 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'track': 0 /* integer */, 'artist': '' /* string */, 'musicbrainzalbumartistid': '' /* string */, 'musicbrainzalbumid': '' /* string */, 'rating': 0 /* integer */, 'title': '' /* string */, 'year': 0 /* integer */, 'genre': '' /* string */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
AudioLibrary.Scan
Scans the audio sources for new library items
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.Scan', 'id': undefined /* integer, required */, 'params': { 'directory': '' /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.Scan', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
AudioLibrary.SetAlbumDetails
Update the given album with the given details
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.SetAlbumDetails', 'id': undefined /* integer, required */, 'params': { 'albumid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': undefined /* null */ or undefined /* string */, 'artist': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'description': undefined /* null */ or undefined /* string */, 'genre': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'theme': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'mood': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'style': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'type': undefined /* null */ or undefined /* string */, 'albumlabel': undefined /* null */ or undefined /* string */, 'rating': undefined /* null */ or undefined /* integer, minimum: 0 */, 'year': undefined /* null */ or undefined /* integer, minimum: 0 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.SetAlbumDetails', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
AudioLibrary.SetArtistDetails
Update the given artist with the given details
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.SetArtistDetails', 'id': undefined /* integer, required */, 'params': { 'artistid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'artist': undefined /* null */ or undefined /* string */, 'instrument': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'style': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'mood': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'born': undefined /* null */ or undefined /* string */, 'formed': undefined /* null */ or undefined /* string */, 'description': undefined /* null */ or undefined /* string */, 'genre': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'died': undefined /* null */ or undefined /* string */, 'disbanded': undefined /* null */ or undefined /* string */, 'yearsactive': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.SetArtistDetails', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
AudioLibrary.SetSongDetails
Update the given song with the given details
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.SetSongDetails', 'id': undefined /* integer, required */, 'params': { 'songid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': undefined /* null */ or undefined /* string */, 'artist': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'albumartist': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'genre': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'year': undefined /* null */ or undefined /* integer, minimum: 0 */, 'rating': undefined /* null */ or undefined /* integer, minimum: 0 */, 'album': undefined /* null */ or undefined /* string */, 'track': undefined /* null */ or undefined /* integer, minimum: 0 */, 'duration': undefined /* null */ or undefined /* integer, minimum: 0 */, 'comment': undefined /* null */ or undefined /* string */, 'musicbrainztrackid': undefined /* null */ or undefined /* string */, 'musicbrainzartistid': undefined /* null */ or undefined /* string */, 'musicbrainzalbumid': undefined /* null */ or undefined /* string */, 'musicbrainzalbumartistid': undefined /* null */ or undefined /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'AudioLibrary.SetSongDetails', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary
Video Library information
Notifications
VideoLibrary.OnRemove
A video item has been removed.
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.OnRemove', 'params': undefined /* string, required */ or { /* required */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'type': undefined /* required */ } }
VideoLibrary.OnScanFinished
Scanning the video library has been finished.
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.OnScanFinished', 'params': undefined /* string, required */ or undefined /* null, required */ }
VideoLibrary.OnUpdate
A video item has been updated.
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.OnUpdate', 'params': undefined /* string, required */ or { /* required */ 'id': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'playcount': -1 /* integer, minimum: 0 */, 'type': undefined /* string ('movie', 'tvshow', 'episode', 'musicvideo'), required, id: Notifications.Library.Video.Type */ } }
Methods
VideoLibrary.Clean
Cleans the video library from non-existent items
Permissions
RemoveData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.Clean', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.Clean', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.Export
Exports all items from the video library
Permissions
WriteFile
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.Export', 'id': undefined /* integer, required */, 'params': { 'options': { /* no additional properties allowed */ 'path': undefined /* string, required, minimum length: 1, Path to the directory to where the data should be exported */ } or { /* no additional properties allowed */ 'actorthumbs': false /* boolean, Whether to export actor thumbnails */, 'images': false /* boolean, Whether to export thumbnails and fanart images */, 'overwrite': false /* boolean, Whether to overwrite existing exported files */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.Export', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.GetEpisodeDetails
Retrieve details about a specific tv show episode
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetEpisodeDetails', 'id': undefined /* integer, required */, 'params': { 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Video.Fields.Episode */ undefined /* string, Requesting the cast and/or resume field will result in increased response times */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetEpisodeDetails', 'id': undefined /* integer, required */, 'result': { 'episodedetails': { /* id: Video.Details.Episode */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'episode': 0 /* integer */, 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'firstaired': '' /* string */, 'originaltitle': '' /* string */, 'productioncode': '' /* string */, 'rating': 0 /* number */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'votes': '' /* string */, 'writer': '' /* string */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
VideoLibrary.GetEpisodes
Retrieve all tv show episodes
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetEpisodes', 'id': undefined /* integer, required */, 'params': { 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'season': -1 /* integer, minimum: 0 */, 'properties': [ /* id: Video.Fields.Episode */ undefined /* string, Requesting the cast and/or resume field will result in increased response times */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetEpisodes', 'id': undefined /* integer, required */, 'result': { 'episodes': [ /* array */ { /* id: Video.Details.Episode */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'episode': 0 /* integer */, 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'firstaired': '' /* string */, 'originaltitle': '' /* string */, 'productioncode': '' /* string */, 'rating': 0 /* number */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'votes': '' /* string */, 'writer': '' /* string */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
VideoLibrary.GetGenres
Retrieve all genres
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetGenres', 'id': undefined /* integer, required */, 'params': { 'type': undefined /* string, required */, 'properties': [ /* id: Library.Fields.Genre */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetGenres', 'id': undefined /* integer, required */, 'result': { 'genres': [ /* array, required */ { /* id: Library.Details.Genre */ 'genreid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'thumbnail': '' /* string */, 'title': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
VideoLibrary.GetMovieDetails
Retrieve details about a specific movie
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovieDetails', 'id': undefined /* integer, required */, 'params': { 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Video.Fields.Movie */ undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovieDetails', 'id': undefined /* integer, required */, 'result': { 'moviedetails': { /* id: Video.Details.Movie */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'country': '' /* string */, 'genre': '' /* string */, 'imdbnumber': '' /* string */, 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'mpaa': '' /* string */, 'originaltitle': '' /* string */, 'plotoutline': '' /* string */, 'premiered': '' /* string */, 'productioncode': '' /* string */, 'rating': 0 /* number */, 'set': [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'setid': [ /* array, id: Array.Integer */ undefined /* integer */ ], 'showlink': '' /* string */, 'sorttitle': '' /* string */, 'studio': '' /* string */, 'tagline': '' /* string */, 'top250': 0 /* integer */, 'trailer': '' /* string */, 'votes': '' /* string */, 'writer': '' /* string */, 'year': 0 /* integer */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
VideoLibrary.GetMovieSetDetails
Retrieve details about a specific movie set
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovieSetDetails', 'id': undefined /* integer, required */, 'params': { 'setid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Video.Fields.MovieSet */ undefined /* string */ ], 'movies': { 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'properties': [ /* id: Video.Fields.Movie */ undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ ], 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovieSetDetails', 'id': undefined /* integer, required */, 'result': { 'setdetails': { /* id: Video.Details.MovieSet.Extended */ 'movies': [ /* array */ { /* id: Video.Details.Movie */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'country': '' /* string */, 'genre': '' /* string */, 'imdbnumber': '' /* string */, 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'mpaa': '' /* string */, 'originaltitle': '' /* string */, 'plotoutline': '' /* string */, 'premiered': '' /* string */, 'productioncode': '' /* string */, 'rating': 0 /* number */, 'set': [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'setid': [ /* array, id: Array.Integer */ undefined /* integer */ ], 'showlink': '' /* string */, 'sorttitle': '' /* string */, 'studio': '' /* string */, 'tagline': '' /* string */, 'top250': 0 /* integer */, 'trailer': '' /* string */, 'votes': '' /* string */, 'writer': '' /* string */, 'year': 0 /* integer */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ], 'setid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
VideoLibrary.GetMovieSets
Retrieve all movie sets
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovieSets', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Video.Fields.MovieSet */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovieSets', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'sets': [ /* array */ { /* id: Video.Details.MovieSet */ 'setid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
VideoLibrary.GetMovies
Retrieve all movies
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovies', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Video.Fields.Movie */ undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMovies', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'movies': [ /* array */ { /* id: Video.Details.Movie */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'country': '' /* string */, 'genre': '' /* string */, 'imdbnumber': '' /* string */, 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'mpaa': '' /* string */, 'originaltitle': '' /* string */, 'plotoutline': '' /* string */, 'premiered': '' /* string */, 'productioncode': '' /* string */, 'rating': 0 /* number */, 'set': [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'setid': [ /* array, id: Array.Integer */ undefined /* integer */ ], 'showlink': '' /* string */, 'sorttitle': '' /* string */, 'studio': '' /* string */, 'tagline': '' /* string */, 'top250': 0 /* integer */, 'trailer': '' /* string */, 'votes': '' /* string */, 'writer': '' /* string */, 'year': 0 /* integer */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
VideoLibrary.GetMusicVideoDetails
Retrieve details about a specific music video
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMusicVideoDetails', 'id': undefined /* integer, required */, 'params': { 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Video.Fields.MusicVideo */ undefined /* string, Requesting the resume field will result in increased response times */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMusicVideoDetails', 'id': undefined /* integer, required */, 'result': { 'musicvideodetails': { /* id: Video.Details.MusicVideo */ 'album': '' /* string */, 'artist': '' /* string */, 'genre': '' /* string */, 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'studio': '' /* string */, 'track': 0 /* integer */, 'year': 0 /* integer */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
VideoLibrary.GetMusicVideos
Retrieve all music videos
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMusicVideos', 'id': undefined /* integer, required */, 'params': { 'artistid': -1 /* integer, id: Library.Id, minimum: 1 */, 'albumid': -1 /* integer, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Video.Fields.MusicVideo */ undefined /* string, Requesting the resume field will result in increased response times */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetMusicVideos', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'musicvideos': [ /* array */ { /* id: Video.Details.MusicVideo */ 'album': '' /* string */, 'artist': '' /* string */, 'genre': '' /* string */, 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'studio': '' /* string */, 'track': 0 /* integer */, 'year': 0 /* integer */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
VideoLibrary.GetRecentlyAddedEpisodes
Retrieve all recently added tv episodes
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetRecentlyAddedEpisodes', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Video.Fields.Episode */ undefined /* string, Requesting the cast and/or resume field will result in increased response times */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetRecentlyAddedEpisodes', 'id': undefined /* integer, required */, 'result': { 'episodes': [ /* array */ { /* id: Video.Details.Episode */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'episode': 0 /* integer */, 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'firstaired': '' /* string */, 'originaltitle': '' /* string */, 'productioncode': '' /* string */, 'rating': 0 /* number */, 'season': 0 /* integer */, 'showtitle': '' /* string */, 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'votes': '' /* string */, 'writer': '' /* string */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ], 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ } } }
VideoLibrary.GetRecentlyAddedMovies
Retrieve all recently added movies
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetRecentlyAddedMovies', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Video.Fields.Movie */ undefined /* string, Requesting the cast, set, showling and/or resume field will result in increased response times */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetRecentlyAddedMovies', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'movies': [ /* array */ { /* id: Video.Details.Movie */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'country': '' /* string */, 'genre': '' /* string */, 'imdbnumber': '' /* string */, 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'mpaa': '' /* string */, 'originaltitle': '' /* string */, 'plotoutline': '' /* string */, 'premiered': '' /* string */, 'productioncode': '' /* string */, 'rating': 0 /* number */, 'set': [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'setid': [ /* array, id: Array.Integer */ undefined /* integer */ ], 'showlink': '' /* string */, 'sorttitle': '' /* string */, 'studio': '' /* string */, 'tagline': '' /* string */, 'top250': 0 /* integer */, 'trailer': '' /* string */, 'votes': '' /* string */, 'writer': '' /* string */, 'year': 0 /* integer */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
VideoLibrary.GetRecentlyAddedMusicVideos
Retrieve all recently added music videos
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetRecentlyAddedMusicVideos', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Video.Fields.MusicVideo */ undefined /* string, Requesting the resume field will result in increased response times */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetRecentlyAddedMusicVideos', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'musicvideos': [ /* array */ { /* id: Video.Details.MusicVideo */ 'album': '' /* string */, 'artist': '' /* string */, 'genre': '' /* string */, 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'studio': '' /* string */, 'track': 0 /* integer */, 'year': 0 /* integer */, 'director': '' /* string */, 'resume': { /* id: Video.Resume, no additional properties allowed */ 'position': 0 /* number, minimum: 0 */, 'total': 0 /* number, minimum: 0 */ }, 'runtime': '' /* string */, 'streamdetails': { /* id: Video.Streams, no additional properties allowed */ 'audio': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'channels': 0 /* integer */, 'codec': '' /* string */, 'language': '' /* string */ } ], 'subtitle': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'language': '' /* string */ } ], 'video': [ /* array, minimum items: 1 */ { /* no additional properties allowed */ 'aspect': 0 /* number */, 'codec': '' /* string */, 'duration': 0 /* integer */, 'height': 0 /* integer */, 'width': 0 /* integer */ } ] }, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
VideoLibrary.GetSeasons
Retrieve all tv seasons
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetSeasons', 'id': undefined /* integer, required */, 'params': { 'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Video.Fields.Season */ undefined /* string */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetSeasons', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'seasons': [ /* array */ { /* id: Video.Details.Season */ 'episode': 0 /* integer */, 'season': undefined /* integer, required */, 'showtitle': '' /* string */, 'tvshowid': -1 /* integer, id: Library.Id, minimum: 1 */, 'watchedepisodes': 0 /* integer */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
VideoLibrary.GetTVShowDetails
Retrieve details about a specific tv show
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetTVShowDetails', 'id': undefined /* integer, required */, 'params': { 'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'properties': [ /* id: Video.Fields.TVShow */ undefined /* string, Requesting the cast field will result in increased response times */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetTVShowDetails', 'id': undefined /* integer, required */, 'result': { 'tvshowdetails': { /* id: Video.Details.TVShow */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'episode': 0 /* integer */, 'episodeguide': '' /* string */, 'genre': '' /* string */, 'imdbnumber': '' /* string */, 'mpaa': '' /* string */, 'originaltitle': '' /* string */, 'premiered': '' /* string */, 'rating': 0 /* number */, 'season': 0 /* integer */, 'sorttitle': '' /* string */, 'studio': '' /* string */, 'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'votes': '' /* string */, 'watchedepisodes': 0 /* integer */, 'year': 0 /* integer */, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } } }
VideoLibrary.GetTVShows
Retrieve all tv shows
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetTVShows', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* id: Video.Fields.TVShow */ undefined /* string, Requesting the cast field will result in increased response times */ ], 'limits': { /* id: List.Limits, no additional properties allowed */ 'end': -1 /* integer, minimum: 0, The number of items in the list being returned */, 'start': 0 /* integer, minimum: 0 */ }, 'sort': { /* id: List.Sort */ 'ignorearticle': false /* boolean */, 'method': 'none' /* string */, 'order': 'ascending' /* string */ } } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.GetTVShows', 'id': undefined /* integer, required */, 'result': { 'limits': { /* required, id: List.LimitsReturned, no additional properties allowed */ 'end': -1 /* integer, minimum: 0 */, 'start': 0 /* integer, minimum: 0 */, 'total': undefined /* integer, required, minimum: 0 */ }, 'tvshows': [ /* array */ { /* id: Video.Details.TVShow */ 'cast': [ /* array, id: Video.Cast */ { /* no additional properties allowed */ 'name': undefined /* string, required */, 'role': undefined /* string, required */, 'thumbnail': '' /* string */ } ], 'episode': 0 /* integer */, 'episodeguide': '' /* string */, 'genre': '' /* string */, 'imdbnumber': '' /* string */, 'mpaa': '' /* string */, 'originaltitle': '' /* string */, 'premiered': '' /* string */, 'rating': 0 /* number */, 'season': 0 /* integer */, 'sorttitle': '' /* string */, 'studio': '' /* string */, 'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'votes': '' /* string */, 'watchedepisodes': 0 /* integer */, 'year': 0 /* integer */, 'dateadded': '' /* string */, 'file': '' /* string */, 'lastplayed': '' /* string */, 'plot': '' /* string */, 'title': '' /* string */, 'playcount': 0 /* integer */, 'fanart': '' /* string */, 'thumbnail': '' /* string */, 'label': undefined /* string, required */ } ] } }
VideoLibrary.RemoveEpisode
Removes the given episode from the library
Permissions
RemoveData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveEpisode', 'id': undefined /* integer, required */, 'params': { 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveEpisode', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.RemoveMovie
Removes the given movie from the library
Permissions
RemoveData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveMovie', 'id': undefined /* integer, required */, 'params': { 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveMovie', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.RemoveMusicVideo
Removes the given music video from the library
Permissions
RemoveData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveMusicVideo', 'id': undefined /* integer, required */, 'params': { 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveMusicVideo', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.RemoveTVShow
Removes the given tv show from the library
Permissions
RemoveData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveTVShow', 'id': undefined /* integer, required */, 'params': { 'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.RemoveTVShow', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.Scan
Scans the video sources for new library items
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.Scan', 'id': undefined /* integer, required */, 'params': { 'directory': '' /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.Scan', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.SetEpisodeDetails
Update the given episode with the given details
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetEpisodeDetails', 'id': undefined /* integer, required */, 'params': { 'episodeid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': undefined /* null */ or undefined /* string */, 'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, 'runtime': undefined /* null */ or undefined /* string */, 'director': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'plot': undefined /* null */ or undefined /* string */, 'rating': undefined /* null */ or undefined /* number, minimum: 2.2250738585072014e-308 */, 'votes': undefined /* null */ or undefined /* string */, 'lastplayed': undefined /* null */ or undefined /* string */, 'writer': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'firstaired': undefined /* null */ or undefined /* string */, 'productioncode': undefined /* null */ or undefined /* string */, 'season': undefined /* null */ or undefined /* integer, minimum: 0 */, 'episode': undefined /* null */ or undefined /* integer, minimum: 0 */, 'originaltitle': undefined /* null */ or undefined /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetEpisodeDetails', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.SetMovieDetails
Update the given movie with the given details
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetMovieDetails', 'id': undefined /* integer, required */, 'params': { 'movieid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': undefined /* null */ or undefined /* string */, 'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, 'runtime': undefined /* null */ or undefined /* string */, 'director': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'studio': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'year': undefined /* null */ or undefined /* integer, minimum: 0 */, 'plot': undefined /* null */ or undefined /* string */, 'genre': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'rating': undefined /* null */ or undefined /* number, minimum: 2.2250738585072014e-308 */, 'mpaa': undefined /* null */ or undefined /* string */, 'imdbnumber': undefined /* null */ or undefined /* string */, 'votes': undefined /* null */ or undefined /* string */, 'lastplayed': undefined /* null */ or undefined /* string */, 'originaltitle': undefined /* null */ or undefined /* string */, 'trailer': undefined /* null */ or undefined /* string */, 'tagline': undefined /* null */ or undefined /* string */, 'plotoutline': undefined /* null */ or undefined /* string */, 'writer': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'country': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'top250': undefined /* null */ or undefined /* integer, minimum: 0 */, 'sorttitle': undefined /* null */ or undefined /* string */, 'set': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'showlink': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetMovieDetails', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.SetMusicVideoDetails
Update the given music video with the given details
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetMusicVideoDetails', 'id': undefined /* integer, required */, 'params': { 'musicvideoid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': undefined /* null */ or undefined /* string */, 'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, 'runtime': undefined /* null */ or undefined /* string */, 'director': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'studio': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'year': undefined /* null */ or undefined /* integer, minimum: 0 */, 'plot': undefined /* null */ or undefined /* string */, 'album': undefined /* null */ or undefined /* string */, 'artist': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'genre': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'track': undefined /* null */ or undefined /* integer, minimum: 0 */, 'lastplayed': undefined /* null */ or undefined /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetMusicVideoDetails', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
VideoLibrary.SetTVShowDetails
Update the given tvshow with the given details
Permissions
UpdateData
Syntax
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetTVShowDetails', 'id': undefined /* integer, required */, 'params': { 'tvshowid': -1 /* integer, required, id: Library.Id, minimum: 1 */, 'title': undefined /* null */ or undefined /* string */, 'playcount': undefined /* null */ or undefined /* integer, minimum: 0 */, 'studio': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'year': undefined /* null */ or undefined /* integer, minimum: 0 */, 'plot': undefined /* null */ or undefined /* string */, 'genre': undefined /* null */ or [ /* array, id: Array.String */ undefined /* string, minimum length: 1 */ ], 'rating': undefined /* null */ or undefined /* number, minimum: 2.2250738585072014e-308 */, 'mpaa': undefined /* null */ or undefined /* string */, 'imdbnumber': undefined /* null */ or undefined /* string */, 'premiered': undefined /* null */ or undefined /* string */, 'votes': undefined /* null */ or undefined /* string */, 'lastplayed': undefined /* null */ or undefined /* string */, 'originaltitle': undefined /* null */ or undefined /* string */, 'sorttitle': undefined /* null */ or undefined /* string */, 'episodeguide': undefined /* null */ or undefined /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'VideoLibrary.SetTVShowDetails', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input
Allows limited navigation within XBMC
Methods
Input.Back
Goes back in GUI
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Back', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Back', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.ContextMenu
Shows the context menu
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.ContextMenu', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.ContextMenu', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.Down
Navigate down in GUI
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Down', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Down', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.Home
Goes to home window in GUI
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Home', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Home', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.Info
Shows the information dialog
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Info', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Info', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.Left
Navigate left in GUI
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Left', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Left', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.Right
Navigate right in GUI
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Right', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Right', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.Select
Select current item in GUI
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Select', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Select', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Input.Up
Navigate up in GUI
Permissions
Navigate
Syntax
{ 'jsonrpc': '2.0', 'method': 'Input.Up', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Input.Up', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Application
Application information and control
Notifications
Application.OnVolumeChanged
The volume of the application has changed.
Returns
{ 'jsonrpc': '2.0', 'method': 'Application.OnVolumeChanged', 'params': undefined /* string, required */ or { /* required */ 'muted': undefined /* boolean, required */, 'volume': undefined /* integer, required, minimum: 0, maximum: 100 */ } }
Methods
Application.GetProperties
Retrieves the values of the given properties
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'Application.GetProperties', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* array, required, all items must be unique */ 'volume' /* string, id: Application.Property.Name */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Application.GetProperties', 'id': undefined /* integer, required */, 'result': { /* id: Application.Property.Value */ 'muted': false /* boolean */, 'name': '' /* string, minimum length: 1 */, 'version': { 'major': undefined /* integer, required, minimum: 0 */, 'minor': undefined /* integer, required, minimum: 0 */, 'revision': undefined /* string */ or undefined /* integer, minimum: 0 */, 'tag': undefined /* string, required */ }, 'volume': 0 /* integer, minimum: 0, maximum: 100 */ } }
Application.Quit
Quit application
Permissions
ControlPower
Syntax
{ 'jsonrpc': '2.0', 'method': 'Application.Quit', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'Application.Quit', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
Application.SetMute
Toggle mute/unmute
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Application.SetMute', 'id': undefined /* integer, required */, 'params': { 'mute': undefined /* boolean */ or undefined /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Application.SetMute', 'id': undefined /* integer, required */, 'result': undefined /* boolean, Mute state */ }
Application.SetVolume
Set the current volume
Permissions
ControlPlayback
Syntax
{ 'jsonrpc': '2.0', 'method': 'Application.SetVolume', 'id': undefined /* integer, required */, 'params': { 'volume': undefined /* integer, minimum: 0, maximum: 100 */ or 'increment' /* string, id: Global.IncrementDecrement */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'Application.SetVolume', 'id': undefined /* integer, required */, 'result': undefined /* integer, minimum: 0 */ }
System
System controls and information
Notifications
System.OnLowBattery
The system is on low battery.
Returns
{ 'jsonrpc': '2.0', 'method': 'System.OnLowBattery', 'params': undefined /* string, required */ or undefined /* null, required */ }
System.OnQuit
XBMC will be closed.
Returns
{ 'jsonrpc': '2.0', 'method': 'System.OnQuit', 'params': undefined /* string, required */ or undefined /* null, required */ }
System.OnRestart
The system will be restarted.
Returns
{ 'jsonrpc': '2.0', 'method': 'System.OnRestart', 'params': undefined /* string, required */ or undefined /* null, required */ }
System.OnSleep
The system will be suspended.
Returns
{ 'jsonrpc': '2.0', 'method': 'System.OnSleep', 'params': undefined /* string, required */ or undefined /* null, required */ }
System.OnWake
The system woke up from suspension.
Returns
{ 'jsonrpc': '2.0', 'method': 'System.OnWake', 'params': undefined /* string, required */ or undefined /* null, required */ }
Methods
System.EjectOpticalDrive
Ejects or closes the optical disc drive (if available)
Permissions
ControlSystem
Syntax
{ 'jsonrpc': '2.0', 'method': 'System.EjectOpticalDrive', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'System.EjectOpticalDrive', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
System.GetProperties
Retrieves the values of the given properties
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'System.GetProperties', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* array, required, all items must be unique */ 'canshutdown' /* string, id: System.Property.Name */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'System.GetProperties', 'id': undefined /* integer, required */, 'result': { /* id: System.Property.Value */ 'canhibernate': false /* boolean */, 'canreboot': false /* boolean */, 'canshutdown': false /* boolean */, 'cansuspend': false /* boolean */ } }
System.Hibernate
Puts the system running XBMC into hibernate mode
Permissions
ControlPower
Syntax
{ 'jsonrpc': '2.0', 'method': 'System.Hibernate', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'System.Hibernate', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
System.Reboot
Reboots the system running XBMC
Permissions
ControlPower
Syntax
{ 'jsonrpc': '2.0', 'method': 'System.Reboot', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'System.Reboot', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
System.Shutdown
Shuts the system running XBMC down
Permissions
ControlPower
Syntax
{ 'jsonrpc': '2.0', 'method': 'System.Shutdown', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'System.Shutdown', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
System.Suspend
Suspends the system running XBMC
Permissions
ControlPower
Syntax
{ 'jsonrpc': '2.0', 'method': 'System.Suspend', 'id': undefined /* integer, required */ }
Returns
{ 'jsonrpc': '2.0', 'method': 'System.Suspend', 'id': undefined /* integer, required */, 'result': undefined /* string */ }
XBMC
Dumping ground for very XBMC specific operations
Methods
XBMC.GetInfoBooleans
Retrieve info booleans about XBMC and the system
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'XBMC.GetInfoBooleans', 'id': undefined /* integer, required */, 'params': { 'booleans': [ /* array, required, minimum items: 1 */ undefined /* string */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'XBMC.GetInfoBooleans', 'id': undefined /* integer, required */, 'result': { /* List of key-value pairs of the retrieved info booleans */ } }
XBMC.GetInfoLabels
Retrieve info labels about XBMC and the system
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'XBMC.GetInfoLabels', 'id': undefined /* integer, required */, 'params': { 'labels': [ /* array, required, minimum items: 1, See http://wiki.xbmc.org/index.php?title=InfoLabels for a list of possible info labels */ undefined /* string */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'XBMC.GetInfoLabels', 'id': undefined /* integer, required */, 'result': { /* List of key-value pairs of the retrieved info labels */ } }
GUI
Methods
GUI.GetProperties
Retrieves the values of the given properties
Permissions
ReadData
Syntax
{ 'jsonrpc': '2.0', 'method': 'GUI.GetProperties', 'id': undefined /* integer, required */, 'params': { 'properties': [ /* array, required, all items must be unique */ 'currentwindow' /* string, id: GUI.Property.Name */ ] } }
Returns
{ 'jsonrpc': '2.0', 'method': 'GUI.GetProperties', 'id': undefined /* integer, required */, 'result': { /* id: GUI.Property.Value */ 'currentcontrol': { 'label': undefined /* string, required */ }, 'currentwindow': { 'id': undefined /* integer, required */, 'label': undefined /* string, required */ }, 'fullscreen': false /* boolean */, 'skin': { 'id': undefined /* string, required, minimum length: 1 */, 'name': '' /* string */ } } }
GUI.SetFullscreen
Toggle fullscreen/GUI
Permissions
ControlGUI
Syntax
{ 'jsonrpc': '2.0', 'method': 'GUI.SetFullscreen', 'id': undefined /* integer, required */, 'params': { 'fullscreen': undefined /* boolean */ or undefined /* string */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'GUI.SetFullscreen', 'id': undefined /* integer, required */, 'result': undefined /* boolean, Fullscreen state */ }
GUI.ShowNotification
Shows a GUI notification
Permissions
ControlGUI
Syntax
{ 'jsonrpc': '2.0', 'method': 'GUI.ShowNotification', 'id': undefined /* integer, required */, 'params': { 'title': undefined /* string, required */, 'message': undefined /* string, required */, 'image': undefined /* string */ or undefined /* string */, 'displaytime': 5000 /* integer, minimum: 1500, The time in milliseconds the notification will be visible */ } }
Returns
{ 'jsonrpc': '2.0', 'method': 'GUI.ShowNotification', 'id': undefined /* integer, required */, 'result': { /* id: System.Property.Value */ 'canhibernate': false /* boolean */, 'canreboot': false /* boolean */, 'canshutdown': false /* boolean */, 'cansuspend': false /* boolean */ } }
JSON-RPC 2.0 compatibility
Version | Method calls | Notifications (server-side) |
Notifications (client-side) |
Parameters by-name |
Parameters by-position |
Batch requests |
---|---|---|---|---|---|---|
Version 4 | Yes | Yes | Yes | Yes | Yes | Yes |