Archive:JSON-RPC API/v4: Difference between revisions
m (prettytable) |
m (Bot: Automated text replacement (-class="wikitable" +class="prettytable" & -Available Tags +Available tags & -<source +<syntaxhighlight & -</source> +</syntaxhighlight>)) |
||
Line 152: | Line 152: | ||
{| | {| | ||
| | | | ||
< | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
"type": "object", | "type": "object", | ||
Line 173: | Line 173: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
|} | |} | ||
Revision as of 05:53, 14 March 2014
Development | JSON-RPC API | v4 |
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.
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 |
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" } } } } } } } |
Namespaces
The XBMC JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:
JSONRPC A variety of standard JSONRPC calls Player Manages all available players Playlist Playlist modification Files Shares information AudioLibrary Audio Library information VideoLibrary Video Library information Input Allows limited navigation within XBMC Application Application information and control System System controls and information XBMC Dumping ground for very XBMC specific operations |
Methods
Application
Application.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- Application.Property.Name[] properties
Returns: Application.Property.Value
JSON Schema Description |
---|
{ "returns": { "$ref": "Application.Property.Value" }, "params": [ { "uniqueItems": true, "items": { "$ref": "Application.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties" } |
Application.Quit
Quit application
Permissions:
- ControlPower
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Quit application" } |
Application.SetMute
Toggle mute/unmute
Permissions:
- ControlPlayback
Parameters:
- mixed mute
Returns: boolean
JSON Schema Description |
---|
{ "returns": { "type": "boolean", "description": "Mute state" }, "params": [ { "required": true, "type": [ { "type": "boolean" }, { "enums": [ "toggle" ], "type": "string" } ], "name": "mute" } ], "description": "Toggle mute/unmute" } |
Application.SetVolume
Set the current volume
Permissions:
- ControlPlayback
Parameters:
- integer volume
Returns: integer
JSON Schema Description |
---|
{ "returns": { "minimum": 0, "type": "integer" }, "params": [ { "required": true, "minimum": 0, "type": "integer", "maximum": 100, "name": "volume" } ], "description": "Set the current volume" } |
AudioLibrary
AudioLibrary.Clean
Cleans the audio library from non-existent items
Permissions:
- RemoveData
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Cleans the audio library from non-existent items" } |
AudioLibrary.Export
Exports all items from the audio library
Permissions:
- WriteFile
Parameters:
- [ mixed options ]
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "type": [ { "additionalProperties": false, "type": "object", "properties": { "path": { "minLength": 1, "required": true, "type": "string", "description": "Path to the directory to where the data should be exported" } } }, { "additionalProperties": false, "type": "object", "properties": { "images": { "default": false, "type": "boolean", "description": "Whether to export thumbnails and fanart images" }, "overwrite": { "default": false, "type": "boolean", "description": "Whether to overwrite existing exported files" } } } ], "name": "options" } ], "description": "Exports all items from the audio library" } |
AudioLibrary.GetAlbumDetails
Retrieve details about a specific album
Permissions:
- ReadData
Parameters:
- Library.Id albumid
- [ Audio.Fields.Album properties ]
Returns:
Type: object
Properties:
- [ Audio.Details.Album albumdetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "albumdetails": { "$ref": "Audio.Details.Album" } } }, "params": [ { "required": true, "name": "albumid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Album" } ], "description": "Retrieve details about a specific album" } |
AudioLibrary.GetAlbums
Retrieve all albums from specified artist or genre
Permissions:
- ReadData
Parameters:
- [ Library.Id artistid = -1 ]
- [ Library.Id genreid = -1 ]
- [ Audio.Fields.Album properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Audio.Details.Album[] albums ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "albums": { "items": { "$ref": "Audio.Details.Album" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "default": -1, "name": "artistid", "$ref": "Library.Id" }, { "default": -1, "name": "genreid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Album" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all albums from specified artist or genre" } |
AudioLibrary.GetArtistDetails
Retrieve details about a specific artist
Permissions:
- ReadData
Parameters:
- Library.Id artistid
- [ Audio.Fields.Artist properties ]
Returns:
Type: object
Properties:
- [ Audio.Details.Artist artistdetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "artistdetails": { "$ref": "Audio.Details.Artist" } } }, "params": [ { "required": true, "name": "artistid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Artist" } ], "description": "Retrieve details about a specific artist" } |
AudioLibrary.GetArtists
Retrieve all artists
Permissions:
- ReadData
Parameters:
- [ Optional.Boolean albumartistsonly = null ]
- [ Library.Id genreid = -1 ]
- [ Audio.Fields.Artist properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [ Audio.Details.Artist[] artists ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "artists": { "items": { "$ref": "Audio.Details.Artist" }, "type": "array" } } }, "params": [ { "default": null, "description": "Whether or not to include artists only appearing in compilations. If the parameter is not passed or is passed as null the GUI setting will be used", "name": "albumartistsonly", "$ref": "Optional.Boolean" }, { "default": -1, "name": "genreid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Artist" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all artists" } |
AudioLibrary.GetGenres
Retrieve all genres
Permissions:
- ReadData
Parameters:
- [ Library.Fields.Genre properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- Library.Details.Genre[] genres
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "genres": { "items": { "$ref": "Library.Details.Genre" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Library.Fields.Genre" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all genres" } |
AudioLibrary.GetRecentlyAddedAlbums
Retrieve recently added albums
Permissions:
- ReadData
Parameters:
- [ Audio.Fields.Album properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Audio.Details.Album[] albums ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "albums": { "items": { "$ref": "Audio.Details.Album" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Audio.Fields.Album" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve recently added albums" } |
AudioLibrary.GetRecentlyAddedSongs
Retrieve recently added songs
Permissions:
- ReadData
Parameters:
- [ List.Amount albumlimit = -1 ]
- [ Audio.Fields.Song properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [ Audio.Details.Song[] songs ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "songs": { "items": { "$ref": "Audio.Details.Song" }, "type": "array" } } }, "params": [ { "default": -1, "description": "The amount of recently added albums from which to return the songs", "name": "albumlimit", "$ref": "List.Amount" }, { "name": "properties", "$ref": "Audio.Fields.Song" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve recently added songs" } |
AudioLibrary.GetSongDetails
Retrieve details about a specific song
Permissions:
- ReadData
Parameters:
- Library.Id songid
- [ Audio.Fields.Song properties ]
Returns:
Type: object
Properties:
- [ Audio.Details.Song songdetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "songdetails": { "$ref": "Audio.Details.Song" } } }, "params": [ { "required": true, "name": "songid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Song" } ], "description": "Retrieve details about a specific song" } |
AudioLibrary.GetSongs
Retrieve all songs from specified album, artist or genre
Permissions:
- ReadData
Parameters:
- [ Library.Id artistid = -1 ]
- [ Library.Id albumid = -1 ]
- [ Library.Id genreid = -1 ]
- [ Audio.Fields.Song properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [ Audio.Details.Song[] songs ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "songs": { "items": { "$ref": "Audio.Details.Song" }, "type": "array" } } }, "params": [ { "default": -1, "name": "artistid", "$ref": "Library.Id" }, { "default": -1, "name": "albumid", "$ref": "Library.Id" }, { "default": -1, "name": "genreid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Song" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all songs from specified album, artist or genre" } |
AudioLibrary.Scan
Scans the audio sources for new library items
Permissions:
- UpdateData
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Scans the audio sources for new library items" } |
Files
Files.Download
Provides a way to download a given file (e.g. providing an URL to the real file location)
Permissions:
- ReadData
Parameters:
- string path
Returns:
Type: object
Properties:
- string path
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "path": { "required": true, "type": "string" } } }, "params": [ { "required": true, "type": "string", "name": "path" } ], "description": "Provides a way to download a given file (e.g. providing an URL to the real file location)" } |
Files.GetDirectory
Get the directories and files in the given directory
Permissions:
- ReadData
Parameters:
- string directory
- [ Files.Media media = "files" ]
- [ List.Fields.All properties ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.Item.File[] files
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "files": { "items": { "$ref": "List.Item.File" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "type": "string", "name": "directory" }, { "default": "files", "name": "media", "$ref": "Files.Media" }, { "name": "properties", "$ref": "List.Fields.All" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Get the directories and files in the given directory" } |
Files.GetSources
Get the sources of the media windows
Permissions:
- ReadData
Parameters:
- Files.Media media
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.Items.Sources sources
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "sources": { "required": true, "$ref": "List.Items.Sources" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "media", "$ref": "Files.Media" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Get the sources of the media windows" } |
Input
Input.Back
Goes back in GUI
Permissions:
- Navigate
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Goes back in GUI" } |
Input.Down
Navigate down in GUI
Permissions:
- Navigate
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Navigate down in GUI" } |
Input.Home
Goes to home window in GUI
Permissions:
- Navigate
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Goes to home window in GUI" } |
Input.Left
Navigate left in GUI
Permissions:
- Navigate
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Navigate left in GUI" } |
Input.Right
Navigate right in GUI
Permissions:
- Navigate
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Navigate right in GUI" } |
Input.Select
Select current item in GUI
Permissions:
- Navigate
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Select current item in GUI" } |
Input.Up
Navigate up in GUI
Permissions:
- Navigate
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Navigate up in GUI" } |
JSONRPC
JSONRPC.Introspect
Enumerates all actions and descriptions
Permissions:
- ReadData
Parameters:
- [ boolean getdescriptions = True ]
- [ boolean getmetadata = False ]
- [ boolean filterbytransport = True ]
- [ object filter ]
Properties:
- string type
- string id
- [ boolean getreferences = True ]
Returns:
Type: object
JSON Schema Description |
---|
{ "returns": { "type": "object" }, "params": [ { "default": true, "type": "boolean", "name": "getdescriptions" }, { "default": false, "type": "boolean", "name": "getmetadata" }, { "default": true, "type": "boolean", "name": "filterbytransport" }, { "type": "object", "name": "filter", "properties": { "type": { "enums": [ "method", "namespace", "type", "notification" ], "type": "string", "description": "Type of the given name", "required": true }, "id": { "required": true, "type": "string", "description": "Name of a namespace, method or type" }, "getreferences": { "default": true, "type": "boolean", "description": "Whether or not to print the schema for referenced types" } } } ], "description": "Enumerates all actions and descriptions" } |
JSONRPC.NotifyAll
Notify all other connected clients
Permissions:
- ReadData
Parameters:
- string sender
- string message
- [ any data = null ]
Returns: any
JSON Schema Description |
---|
{ "returns": { "type": "any" }, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "string", "name": "message" }, { "default": null, "type": "any", "name": "data" } ], "description": "Notify all other connected clients" } |
JSONRPC.Permission
Retrieve the clients permissions
Permissions:
- ReadData
Parameters: None
Returns:
Type: object
Properties:
- boolean navigate
- boolean removedata
- boolean controlplayback
- boolean readdata
- boolean updatedata
- boolean writefile
- boolean controlnotify
- boolean controlpower
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "navigate": { "required": true, "type": "boolean" }, "removedata": { "required": true, "type": "boolean" }, "controlplayback": { "required": true, "type": "boolean" }, "readdata": { "required": true, "type": "boolean" }, "updatedata": { "required": true, "type": "boolean" }, "writefile": { "required": true, "type": "boolean" }, "controlnotify": { "required": true, "type": "boolean" }, "controlpower": { "required": true, "type": "boolean" } } }, "params": [], "description": "Retrieve the clients permissions" } |
JSONRPC.Ping
Ping responder
Permissions:
- ReadData
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Ping responder" } |
JSONRPC.Version
Retrieve the jsonrpc protocol version
Permissions:
- ReadData
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Retrieve the jsonrpc protocol version" } |
Player
Player.GetActivePlayers
Returns all active players
Permissions:
- ReadData
Parameters: None
Returns:
Type: array
JSON Schema Description |
---|
{ "returns": { "uniqueItems": true, "items": { "type": "object", "properties": { "playerid": { "required": true, "$ref": "Player.Id" }, "type": { "required": true, "$ref": "Player.Type" } } }, "type": "array" }, "params": [], "description": "Returns all active players" } |
Player.GetItem
Retrieves the currently played item
Permissions:
- ReadData
Parameters:
- Player.Id playerid
- [ List.Fields.All properties ]
Returns:
Type: object
Properties:
- List.Item.All item
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "item": { "required": true, "$ref": "List.Item.All" } } }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "name": "properties", "$ref": "List.Fields.All" } ], "description": "Retrieves the currently played item" } |
Player.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- Player.Id playerid
- Player.Property.Name[] properties
Returns: Player.Property.Value
JSON Schema Description |
---|
{ "returns": { "$ref": "Player.Property.Value" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "uniqueItems": true, "items": { "$ref": "Player.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties" } |
Player.GoNext
Go to next item on the playlist
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Go to next item on the playlist" } |
Player.GoPrevious
Go to previous item on the playlist
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Go to previous item on the playlist" } |
Player.GoTo
Go to item at the given position in the playlist
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- Playlist.Position position
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "name": "position", "$ref": "Playlist.Position" } ], "description": "Go to item at the given position in the playlist" } |
Player.MoveDown
If picture is zoomed move viewport down
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "If picture is zoomed move viewport down" } |
Player.MoveLeft
If picture is zoomed move viewport left otherwise skip previous
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "If picture is zoomed move viewport left otherwise skip previous" } |
Player.MoveRight
If picture is zoomed move viewport right otherwise skip next
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "If picture is zoomed move viewport right otherwise skip next" } |
Player.MoveUp
If picture is zoomed move viewport up
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "If picture is zoomed move viewport up" } |
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
Parameters:
- [ mixed item ]
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "type": [ { "additionalProperties": false, "type": "object", "properties": { "position": { "default": 0, "$ref": "Playlist.Position" }, "playlistid": { "required": true, "$ref": "Playlist.Id" } } }, { "$ref": "Playlist.Item" }, { "additionalProperties": false, "type": "object", "properties": { "path": { "required": true, "type": "string" }, "random": { "default": true, "type": "boolean" }, "recursive": { "default": true, "type": "boolean" } } } ], "name": "item" } ], "description": "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." } |
Player.PlayPause
Pauses or unpause playback and returns the new state
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: Player.Speed
JSON Schema Description |
---|
{ "returns": { "$ref": "Player.Speed" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Pauses or unpause playback and returns the new state" } |
Player.Repeat
Set the repeat mode of the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- Player.Repeat state
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "name": "state", "$ref": "Player.Repeat" } ], "description": "Set the repeat mode of the player" } |
Player.Rotate
Rotates current picture
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Rotates current picture" } |
Player.Seek
Seek through the playing item
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed value
Returns:
Type: object
Properties:
- [ Global.Time totaltime ]
- [ Player.Position.Percentage percentage = 0 ]
- [ Global.Time time ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "totaltime": { "$ref": "Global.Time" }, "percentage": { "default": 0, "$ref": "Player.Position.Percentage" }, "time": { "$ref": "Global.Time" } } }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "description": "Percentage value to seek to", "$ref": "Player.Position.Percentage" }, { "additionalProperties": false, "type": "object", "description": "Time to seek to", "properties": { "hours": { "default": 0, "minimum": 0, "type": "integer", "maximum": 23 }, "seconds": { "default": 0, "minimum": 0, "type": "integer", "maximum": 59 }, "minutes": { "default": 0, "minimum": 0, "type": "integer", "maximum": 59 }, "milliseconds": { "default": 0, "minimum": 0, "type": "integer", "maximum": 999 } } }, { "enums": [ "smallforward", "smallbackward", "bigforward", "bigbackward" ], "type": "string", "description": "Seek by predefined jumps" } ], "name": "value" } ], "description": "Seek through the playing item" } |
Player.SetAudioStream
Set the audio stream played by the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed stream
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ "previous", "next" ], "type": "string" }, { "minimum": 0, "type": "integer", "description": "Index of the audio stream to play" } ], "name": "stream" } ], "description": "Set the audio stream played by the player" } |
Player.SetSpeed
Set the speed of the current playback
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed speed
Returns: Player.Speed
JSON Schema Description |
---|
{ "returns": { "$ref": "Player.Speed" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "enums": [ -32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 32, "increment", "decrement" ], "type": [ { "minimum": 0, "type": "integer" }, { "type": "string" } ], "name": "speed", "required": true } ], "description": "Set the speed of the current playback" } |
Player.SetSubtitle
Set the subtitle displayed by the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed subtitle
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ "previous", "next", "off", "on" ], "type": "string" }, { "minimum": 0, "type": "integer", "description": "Index of the subtitle to display" } ], "name": "subtitle" } ], "description": "Set the subtitle displayed by the player" } |
Player.Shuffle
Shuffle items in the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Shuffle items in the player" } |
Player.Stop
Stops playback
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Stops playback" } |
Player.UnShuffle
Unshuffle items in the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Unshuffle items in the player" } |
Player.Zoom
Zooms current picture
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- integer value
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "description": "Zoom level", "required": true, "maximum": 10, "minimum": 1, "type": "integer", "name": "value" } ], "description": "Zooms current picture" } |
Player.ZoomIn
Zoom in once
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Zoom in once" } |
Player.ZoomOut
Zoom out once
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Zoom out once" } |
Playlist
Playlist.Add
Add item(s) to playlist
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- Playlist.Item item
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "name": "item", "$ref": "Playlist.Item" } ], "description": "Add item(s) to playlist" } |
Playlist.Clear
Clear playlist
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" } ], "description": "Clear playlist" } |
Playlist.GetItems
Get all items from playlist
Permissions:
- ReadData
Parameters:
- Playlist.Id playlistid
- [ List.Fields.All properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.Item.All[] items
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "items": { "items": { "$ref": "List.Item.All" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "name": "properties", "$ref": "List.Fields.All" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Get all items from playlist" } |
Playlist.GetPlaylists
Returns all existing playlists
Permissions:
- ReadData
Parameters: None
Returns:
Type: array
JSON Schema Description |
---|
{ "returns": { "uniqueItems": true, "items": { "type": "object", "properties": { "playlistid": { "required": true, "$ref": "Playlist.Id" }, "type": { "required": true, "$ref": "Playlist.Type" } } }, "type": "array" }, "params": [], "description": "Returns all existing playlists" } |
Playlist.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- Playlist.Id playlistid
- Playlist.Property.Name[] properties
Returns: Playlist.Property.Value
JSON Schema Description |
---|
{ "returns": { "$ref": "Playlist.Property.Value" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "uniqueItems": true, "items": { "$ref": "Playlist.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties" } |
Playlist.Insert
Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- Playlist.Position position
- Playlist.Item item
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "name": "position", "$ref": "Playlist.Position" }, { "required": true, "name": "item", "$ref": "Playlist.Item" } ], "description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows)." } |
Playlist.Remove
Remove item from playlist. Does not work for picture playlists (aka slideshows).
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- Playlist.Position position
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "name": "position", "$ref": "Playlist.Position" } ], "description": "Remove item from playlist. Does not work for picture playlists (aka slideshows)." } |
Playlist.Swap
Swap items in the playlist. Does not work for picture playlists (aka slideshows).
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- Playlist.Position position1
- Playlist.Position position2
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "name": "position1", "$ref": "Playlist.Position" }, { "required": true, "name": "position2", "$ref": "Playlist.Position" } ], "description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows)." } |
System
System.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- System.Property.Name[] properties
Returns: System.Property.Value
JSON Schema Description |
---|
{ "returns": { "$ref": "System.Property.Value" }, "params": [ { "uniqueItems": true, "items": { "$ref": "System.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties" } |
System.Hibernate
Puts the system running XBMC into hibernate mode
Permissions:
- ControlPower
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Puts the system running XBMC into hibernate mode" } |
System.Reboot
Reboots the system running XBMC
Permissions:
- ControlPower
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Reboots the system running XBMC" } |
System.Shutdown
Shuts the system running XBMC down
Permissions:
- ControlPower
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Shuts the system running XBMC down" } |
System.Suspend
Suspends the system running XBMC
Permissions:
- ControlPower
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Suspends the system running XBMC" } |
VideoLibrary
VideoLibrary.Clean
Cleans the video library from non-existent items
Permissions:
- RemoveData
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Cleans the video library from non-existent items" } |
VideoLibrary.Export
Exports all items from the video library
Permissions:
- WriteFile
Parameters:
- [ mixed options ]
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [ { "type": [ { "additionalProperties": false, "type": "object", "properties": { "path": { "minLength": 1, "required": true, "type": "string", "description": "Path to the directory to where the data should be exported" } } }, { "additionalProperties": false, "type": "object", "properties": { "images": { "default": false, "type": "boolean", "description": "Whether to export thumbnails and fanart images" }, "overwrite": { "default": false, "type": "boolean", "description": "Whether to overwrite existing exported files" }, "actorthumbs": { "default": false, "type": "boolean", "description": "Whether to export actor thumbnails" } } } ], "name": "options" } ], "description": "Exports all items from the video library" } |
VideoLibrary.GetEpisodeDetails
Retrieve details about a specific tv show episode
Permissions:
- ReadData
Parameters:
- Library.Id episodeid
- [ Video.Fields.Episode properties ]
Returns:
Type: object
Properties:
- [ Video.Details.Episode episodedetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "episodedetails": { "$ref": "Video.Details.Episode" } } }, "params": [ { "required": true, "name": "episodeid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.Episode" } ], "description": "Retrieve details about a specific tv show episode" } |
VideoLibrary.GetEpisodes
Retrieve all tv show episodes
Permissions:
- ReadData
Parameters:
- [ Library.Id tvshowid = -1 ]
- [ integer season = -1 ]
- [ Video.Fields.Episode properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Video.Details.Episode[] episodes ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "episodes": { "items": { "$ref": "Video.Details.Episode" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "default": -1, "name": "tvshowid", "$ref": "Library.Id" }, { "default": -1, "minimum": 0, "type": "integer", "name": "season" }, { "name": "properties", "$ref": "Video.Fields.Episode" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all tv show episodes" } |
VideoLibrary.GetGenres
Retrieve all genres
Permissions:
- ReadData
Parameters:
- string type
- [ Library.Fields.Genre properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- Library.Details.Genre[] genres
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "genres": { "items": { "$ref": "Library.Details.Genre" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "enums": [ "movie", "tvshow", "musicvideo" ], "type": "string", "name": "type", "required": true }, { "name": "properties", "$ref": "Library.Fields.Genre" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all genres" } |
VideoLibrary.GetMovieDetails
Retrieve details about a specific movie
Permissions:
- ReadData
Parameters:
- Library.Id movieid
- [ Video.Fields.Movie properties ]
Returns:
Type: object
Properties:
- [ Video.Details.Movie moviedetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "moviedetails": { "$ref": "Video.Details.Movie" } } }, "params": [ { "required": true, "name": "movieid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.Movie" } ], "description": "Retrieve details about a specific movie" } |
VideoLibrary.GetMovieSetDetails
Retrieve details about a specific movie set
Permissions:
- ReadData
Parameters:
- Library.Id setid
- [ Video.Fields.MovieSet properties ]
- [ object movies ]
Properties:
- [ List.Sort sort ]
- [ Video.Fields.Movie properties ]
- [ List.Limits limits ]
Returns:
Type: object
Properties:
- [ Video.Details.MovieSet.Extended setdetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "setdetails": { "$ref": "Video.Details.MovieSet.Extended" } } }, "params": [ { "required": true, "name": "setid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.MovieSet" }, { "type": "object", "name": "movies", "properties": { "sort": { "$ref": "List.Sort" }, "properties": { "$ref": "Video.Fields.Movie" }, "limits": { "$ref": "List.Limits" } } } ], "description": "Retrieve details about a specific movie set" } |
VideoLibrary.GetMovieSets
Retrieve all movie sets
Permissions:
- ReadData
Parameters:
- [ Video.Fields.MovieSet properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [ Video.Details.MovieSet[] sets ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "sets": { "items": { "$ref": "Video.Details.MovieSet" }, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.MovieSet" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all movie sets" } |
VideoLibrary.GetMovies
Retrieve all movies
Permissions:
- ReadData
Parameters:
- [ Video.Fields.Movie properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Video.Details.Movie[] movies ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "movies": { "items": { "$ref": "Video.Details.Movie" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.Movie" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all movies" } |
VideoLibrary.GetMusicVideoDetails
Retrieve details about a specific music video
Permissions:
- ReadData
Parameters:
- Library.Id musicvideoid
- [ Video.Fields.MusicVideo properties ]
Returns:
Type: object
Properties:
- [ Video.Details.MusicVideo musicvideodetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "musicvideodetails": { "$ref": "Video.Details.MusicVideo" } } }, "params": [ { "required": true, "name": "musicvideoid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.MusicVideo" } ], "description": "Retrieve details about a specific music video" } |
VideoLibrary.GetMusicVideos
Retrieve all music videos
Permissions:
- ReadData
Parameters:
- [ Library.Id artistid = -1 ]
- [ Library.Id albumid = -1 ]
- [ Video.Fields.MusicVideo properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Video.Details.MusicVideo[] musicvideos ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "musicvideos": { "items": { "$ref": "Video.Details.MusicVideo" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "default": -1, "name": "artistid", "$ref": "Library.Id" }, { "default": -1, "name": "albumid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.MusicVideo" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all music videos" } |
VideoLibrary.GetRecentlyAddedEpisodes
Retrieve all recently added tv episodes
Permissions:
- ReadData
Parameters:
- [ Video.Fields.Episode properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Video.Details.Episode[] episodes ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "episodes": { "items": { "$ref": "Video.Details.Episode" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.Episode" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all recently added tv episodes" } |
VideoLibrary.GetRecentlyAddedMovies
Retrieve all recently added movies
Permissions:
- ReadData
Parameters:
- [ Video.Fields.Movie properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Video.Details.Movie[] movies ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "movies": { "items": { "$ref": "Video.Details.Movie" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.Movie" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all recently added movies" } |
VideoLibrary.GetRecentlyAddedMusicVideos
Retrieve all recently added music videos
Permissions:
- ReadData
Parameters:
- [ Video.Fields.MusicVideo properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Video.Details.MusicVideo[] musicvideos ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "musicvideos": { "items": { "$ref": "Video.Details.MusicVideo" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.MusicVideo" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all recently added music videos" } |
VideoLibrary.GetSeasons
Retrieve all tv seasons
Permissions:
- ReadData
Parameters:
- Library.Id tvshowid
- [ Video.Fields.Season properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- [ Video.Details.Season[] seasons ]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "seasons": { "items": { "$ref": "Video.Details.Season" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "tvshowid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.Season" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all tv seasons" } |
VideoLibrary.GetTVShowDetails
Retrieve details about a specific tv show
Permissions:
- ReadData
Parameters:
- Library.Id tvshowid
- [ Video.Fields.TVShow properties ]
Returns:
Type: object
Properties:
- [ Video.Details.TVShow tvshowdetails ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "tvshowdetails": { "$ref": "Video.Details.TVShow" } } }, "params": [ { "required": true, "name": "tvshowid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.TVShow" } ], "description": "Retrieve details about a specific tv show" } |
VideoLibrary.GetTVShows
Retrieve all tv shows
Permissions:
- ReadData
Parameters:
- [ Video.Fields.TVShow properties ]
- [ List.Limits limits ]
- [ List.Sort sort ]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [ Video.Details.TVShow[] tvshows ]
JSON Schema Description |
---|
{ "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "tvshows": { "items": { "$ref": "Video.Details.TVShow" }, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.TVShow" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all tv shows" } |
VideoLibrary.Scan
Scans the video sources for new library items
Permissions:
- UpdateData
Parameters: None
Returns: string
JSON Schema Description |
---|
{ "returns": { "type": "string" }, "params": [], "description": "Scans the video sources for new library items" } |
XBMC
XBMC.GetInfoBooleans
Retrieve info booleans about XBMC and the system
Permissions:
- ReadData
Parameters:
- array[1..X] booleans
Returns:
Type: object
JSON Schema Description |
---|
{ "returns": { "type": "object", "description": "List of key-value pairs of the retrieved info booleans" }, "params": [ { "minItems": 1, "items": { "type": "string" }, "required": true, "type": "array", "name": "booleans" } ], "description": "Retrieve info booleans about XBMC and the system" } |
XBMC.GetInfoLabels
Retrieve info labels about XBMC and the system
Permissions:
- ReadData
Parameters:
- array[1..X] labels
Returns:
Type: object
JSON Schema Description |
---|
{ "returns": { "type": "object", "description": "List of key-value pairs of the retrieved info labels" }, "params": [ { "description": "See http://wiki.xbmc.org/index.php?title=InfoLabels for a list of possible info labels", "minItems": 1, "items": { "type": "string" }, "required": true, "type": "array", "name": "labels" } ], "description": "Retrieve info labels about XBMC and the system" } |
Global types
Application
Application.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "volume", "enums": [ "volume", "muted", "name", "version" ], "type": "string", "id": "Application.Property.Name" } |
Application.Property.Value
Type: object
Properties:
- [ boolean muted = False ]
- [ integer volume = 0 ]
- [ object version ]
Properties:
- integer major
- string tag
- integer minor
- [ mixed revision = null ]
- [ string name = "" ]
JSON Schema Description |
---|
{ "type": "object", "id": "Application.Property.Value", "properties": { "muted": { "default": false, "type": "boolean" }, "volume": { "default": 0, "type": "integer" }, "version": { "type": "object", "properties": { "major": { "minimum": 0, "type": "integer", "required": true }, "tag": { "enums": [ "prealpha", "alpha", "beta", "releasecandidate", "stable" ], "type": "string", "required": true }, "minor": { "minimum": 0, "type": "integer", "required": true }, "revision": { "default": null, "type": [ { "type": "string" }, { "minimum": 0, "type": "integer" } ] } } }, "name": { "default": "", "minLength": 1, "type": "string" } } } |
Array
Array.Integer
Type: array
JSON Schema Description |
---|
{ "items": { "type": "integer" }, "type": "array", "id": "Array.Integer" } |
Array.String
Type: array
JSON Schema Description |
---|
{ "items": { "minLength": 1, "type": "string" }, "type": "array", "id": "Array.String" } |
Audio
Audio.Details.Album
Extends:
Properties:
- [ string style = "" ]
- [ string mood = "" ]
- [ string albumlabel = "" ]
- [ string theme = "" ]
- Library.Id albumid
- [ Library.Id artistid = -1 ]
- [ string type = "" ]
- [ string description = "" ]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Media", "id": "Audio.Details.Album", "properties": { "style": { "default": "", "type": "string" }, "mood": { "default": "", "type": "string" }, "albumlabel": { "default": "", "type": "string" }, "theme": { "default": "", "type": "string" }, "albumid": { "required": true, "$ref": "Library.Id" }, "artistid": { "default": -1, "$ref": "Library.Id" }, "type": { "default": "", "type": "string" }, "description": { "default": "", "type": "string" } } } |
Audio.Details.Artist
Extends:
Properties:
- [ string style = "" ]
- [ string description = "" ]
- [ string musicbrainzartistid = "" ]
- string artist
- [ string formed = "" ]
- [ string disbanded = "" ]
- [ string born = "" ]
- Library.Id artistid
- [ string yearsactive = "" ]
- [ string instrument = "" ]
- [ string died = "" ]
- [ string mood = "" ]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Base", "id": "Audio.Details.Artist", "properties": { "style": { "default": "", "type": "string" }, "description": { "default": "", "type": "string" }, "musicbrainzartistid": { "default": "", "type": "string" }, "artist": { "required": true, "type": "string" }, "formed": { "default": "", "type": "string" }, "disbanded": { "default": "", "type": "string" }, "born": { "default": "", "type": "string" }, "artistid": { "required": true, "$ref": "Library.Id" }, "yearsactive": { "default": "", "type": "string" }, "instrument": { "default": "", "type": "string" }, "died": { "default": "", "type": "string" }, "mood": { "default": "", "type": "string" } } } |
Audio.Details.Base
Extends:
Properties:
- [ string genre = "" ]
JSON Schema Description |
---|
{ "extends": "Media.Details.Base", "id": "Audio.Details.Base", "properties": { "genre": { "default": "", "type": "string" } } } |
Audio.Details.Media
Extends:
Properties:
- [ integer rating = 0 ]
- [ string title = "" ]
- [ string artist = "" ]
- [ string musicbrainzalbumartistid = "" ]
- [ integer year = 0 ]
- [ string musicbrainzalbumid = "" ]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Base", "id": "Audio.Details.Media", "properties": { "rating": { "default": 0, "type": "integer" }, "title": { "default": "", "type": "string" }, "artist": { "default": "", "type": "string" }, "musicbrainzalbumartistid": { "default": "", "type": "string" }, "year": { "default": 0, "type": "integer" }, "musicbrainzalbumid": { "default": "", "type": "string" } } } |
Audio.Details.Song
Extends:
Properties:
- [ string album = "" ]
- [ string comment = "" ]
- Library.Id songid
- [ string musicbrainzartistid = "" ]
- [ string lyrics = "" ]
- [ integer track = 0 ]
- [ string musicbrainztrackid = "" ]
- [ Library.Id albumid = -1 ]
- [ Library.Id artistid = -1 ]
- [ string albumartist = "" ]
- [ string file = "" ]
- [ integer duration = 0 ]
- [ integer playcount = 0 ]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Media", "id": "Audio.Details.Song", "properties": { "album": { "default": "", "type": "string" }, "comment": { "default": "", "type": "string" }, "songid": { "required": true, "$ref": "Library.Id" }, "musicbrainzartistid": { "default": "", "type": "string" }, "lyrics": { "default": "", "type": "string" }, "track": { "default": 0, "type": "integer" }, "musicbrainztrackid": { "default": "", "type": "string" }, "albumid": { "default": -1, "$ref": "Library.Id" }, "artistid": { "default": -1, "$ref": "Library.Id" }, "albumartist": { "default": "", "type": "string" }, "file": { "default": "", "type": "string" }, "duration": { "default": 0, "type": "integer" }, "playcount": { "default": 0, "type": "integer" } } } |
Audio.Fields.Album
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "description", "artist", "genre", "theme", "mood", "style", "type", "albumlabel", "rating", "year", "musicbrainzalbumid", "musicbrainzalbumartistid", "fanart", "thumbnail", "artistid" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Audio.Fields.Album" } |
Audio.Fields.Artist
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "instrument", "style", "mood", "born", "formed", "description", "genre", "died", "disbanded", "yearsactive", "musicbrainzartistid", "fanart", "thumbnail" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Audio.Fields.Artist" } |
Audio.Fields.Song
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "artist", "albumartist", "genre", "year", "rating", "album", "track", "duration", "comment", "lyrics", "musicbrainztrackid", "musicbrainzartistid", "musicbrainzalbumid", "musicbrainzalbumartistid", "playcount", "fanart", "thumbnail", "file", "artistid", "albumid" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Audio.Fields.Song" } |
Configuration
Configuration
Type: object
Properties:
- Configuration.Notifications notifications
JSON Schema Description |
---|
{ "required": true, "type": "object", "id": "Configuration", "properties": { "notifications": { "required": true, "$ref": "Configuration.Notifications" } } } |
Configuration.Notifications
Type: object
Properties:
- boolean gui
- boolean system
- boolean player
- boolean audiolibrary
- boolean other
- boolean videolibrary
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Configuration.Notifications", "properties": { "gui": { "required": true, "type": "boolean" }, "system": { "required": true, "type": "boolean" }, "player": { "required": true, "type": "boolean" }, "audiolibrary": { "required": true, "type": "boolean" }, "other": { "required": true, "type": "boolean" }, "videolibrary": { "required": true, "type": "boolean" } } } |
Files
Files.Media
Type: string
JSON Schema Description |
---|
{ "default": "video", "enums": [ "video", "music", "pictures", "files", "programs" ], "type": "string", "id": "Files.Media" } |
Global
Global.Time
Type: object
Properties:
- integer hours
- integer seconds
- integer minutes
- integer milliseconds
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Global.Time", "properties": { "hours": { "minimum": 0, "type": "integer", "maximum": 23, "required": true }, "seconds": { "minimum": 0, "type": "integer", "maximum": 59, "required": true }, "minutes": { "minimum": 0, "type": "integer", "maximum": 59, "required": true }, "milliseconds": { "minimum": 0, "type": "integer", "maximum": 999, "required": true } } } |
Item
Item.Details.Base
Type: object
Properties:
- string label
JSON Schema Description |
---|
{ "type": "object", "id": "Item.Details.Base", "properties": { "label": { "required": true, "type": "string" } } } |
Item.Fields.Base
Type: array
JSON Schema Description |
---|
{ "uniqueItems": true, "items": { "type": "string" }, "type": "array", "id": "Item.Fields.Base" } |
Library
Library.Details.Genre
Extends:
Properties:
- Library.Id genreid
- [ string thumbnail = "" ]
- [ string title = "" ]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Library.Details.Genre", "properties": { "genreid": { "required": true, "$ref": "Library.Id" }, "thumbnail": { "default": "", "type": "string" }, "title": { "default": "", "type": "string" } } } |
Library.Fields.Genre
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "thumbnail" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Library.Fields.Genre" } |
Library.Id
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 1, "type": "integer", "id": "Library.Id" } |
List
List.Amount
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "List.Amount" } |
List.Fields.All
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "artist", "albumartist", "genre", "year", "rating", "album", "track", "duration", "comment", "lyrics", "musicbrainztrackid", "musicbrainzartistid", "musicbrainzalbumid", "musicbrainzalbumartistid", "playcount", "fanart", "director", "trailer", "tagline", "plot", "plotoutline", "originaltitle", "lastplayed", "writer", "studio", "mpaa", "cast", "country", "imdbnumber", "premiered", "productioncode", "runtime", "set", "showlink", "streamdetails", "top250", "votes", "firstaired", "season", "episode", "showtitle", "thumbnail", "file", "resume", "artistid", "albumid", "tvshowid", "setid" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "List.Fields.All" } |
List.Item.All
Extends:
Properties:
- [ string comment = "" ]
- [ Library.Id tvshowid = -1 ]
- [ Array.String set ]
- [ string lyrics = "" ]
- [ string albumartist = "" ]
- [ integer duration = 0 ]
- [ Array.Integer setid ]
- [ Library.Id id = -1 ]
- [ string album = "" ]
- [ string votes = "" ]
- [ string mpaa = "" ]
- [ string writer = "" ]
- [ Library.Id albumid = -1 ]
- [ string type = "unknown" ]
- [ string plotoutline = "" ]
- [ integer track = 0 ]
- [ integer season = 0 ]
- [ string musicbrainztrackid = "" ]
- [ string imdbnumber = "" ]
- [ string studio = "" ]
- [ string showlink = "" ]
- [ string showtitle = "" ]
- [ integer episode = 0 ]
- [ string musicbrainzartistid = "" ]
- [ string productioncode = "" ]
- [ string country = "" ]
- [ string premiered = "" ]
- [ string originaltitle = "" ]
- [ Video.Cast cast ]
- [ Library.Id artistid = -1 ]
- [ string firstaired = "" ]
- [ string tagline = "" ]
- [ integer top250 = 0 ]
- [ string trailer = "" ]
JSON Schema Description |
---|
{ "extends": [ "Video.Details.File", "Audio.Details.Media" ], "id": "List.Item.All", "properties": { "comment": { "default": "", "type": "string" }, "tvshowid": { "default": -1, "$ref": "Library.Id" }, "set": { "$ref": "Array.String" }, "lyrics": { "default": "", "type": "string" }, "albumartist": { "default": "", "type": "string" }, "duration": { "default": 0, "type": "integer" }, "setid": { "$ref": "Array.Integer" }, "id": { "default": -1, "$ref": "Library.Id" }, "album": { "default": "", "type": "string" }, "votes": { "default": "", "type": "string" }, "mpaa": { "default": "", "type": "string" }, "writer": { "default": "", "type": "string" }, "albumid": { "default": -1, "$ref": "Library.Id" }, "type": { "default": "unknown", "enums": [ "unknown", "movie", "episode", "musicvideo", "song", "picture" ], "type": "string" }, "plotoutline": { "default": "", "type": "string" }, "track": { "default": 0, "type": "integer" }, "season": { "default": 0, "type": "integer" }, "musicbrainztrackid": { "default": "", "type": "string" }, "imdbnumber": { "default": "", "type": "string" }, "studio": { "default": "", "type": "string" }, "showlink": { "default": "", "type": "string" }, "showtitle": { "default": "", "type": "string" }, "episode": { "default": 0, "type": "integer" }, "musicbrainzartistid": { "default": "", "type": "string" }, "productioncode": { "default": "", "type": "string" }, "country": { "default": "", "type": "string" }, "premiered": { "default": "", "type": "string" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "artistid": { "default": -1, "$ref": "Library.Id" }, "firstaired": { "default": "", "type": "string" }, "tagline": { "default": "", "type": "string" }, "top250": { "default": 0, "type": "integer" }, "trailer": { "default": "", "type": "string" } } } |
List.Item.File
Extends:
Properties:
- string filetype
- string file
JSON Schema Description |
---|
{ "extends": "List.Item.All", "id": "List.Item.File", "properties": { "filetype": { "enums": [ "file", "directory" ], "type": "string", "required": true }, "file": { "required": true, "type": "string" } } } |
List.Items.Sources
Type: array
JSON Schema Description |
---|
{ "items": { "extends": "Item.Details.Base", "properties": { "file": { "required": true, "type": "string" } } }, "type": "array", "id": "List.Items.Sources" } |
List.Limits
Type: object
Properties:
- [ integer start = 0 ]
- [ integer end = -1 ]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "List.Limits", "properties": { "start": { "default": 0, "minimum": 0, "type": "integer" }, "end": { "default": -1, "minimum": 0, "type": "integer" } } } |
List.LimitsReturned
Type: object
Properties:
- [ integer start = 0 ]
- integer total
- [ integer end = -1 ]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "List.LimitsReturned", "properties": { "start": { "default": 0, "minimum": 0, "type": "integer" }, "total": { "minimum": 0, "type": "integer", "required": true }, "end": { "default": -1, "minimum": 0, "type": "integer" } } } |
List.Sort
Type: object
Properties:
- [ string order = "ascending" ]
- [ boolean ignorearticle = False ]
- [ string method = "none" ]
JSON Schema Description |
---|
{ "type": "object", "id": "List.Sort", "properties": { "order": { "default": "ascending", "enums": [ "ascending", "descending" ], "type": "string" }, "ignorearticle": { "default": false, "type": "boolean" }, "method": { "default": "none", "enums": [ "none", "label", "date", "size", "file", "drivetype", "track", "duration", "title", "artist", "album", "genre", "year", "videorating", "programcount", "playlist", "episode", "videotitle", "sorttitle", "productioncode", "songrating", "mpaarating", "videoruntime", "studio", "fullpath", "lastplayed", "unsorted", "max" ], "type": "string" } } } |
Media
Media.Details.Base
Extends:
Properties:
- [ string fanart = "" ]
- [ string thumbnail = "" ]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Media.Details.Base", "properties": { "fanart": { "default": "", "type": "string" }, "thumbnail": { "default": "", "type": "string" } } } |
Optional
Optional.Boolean
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "null" }, { "type": "boolean" } ], "id": "Optional.Boolean" } |
Player
Player.Audio.Stream
Type: object
Properties:
- integer index
- string name
- string language
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Audio.Stream", "properties": { "index": { "minimum": 0, "type": "integer", "required": true }, "name": { "required": true, "type": "string" }, "language": { "required": true, "type": "string" } } } |
Player.Audio.Stream.Extended
Extends:
Properties:
- integer channels
- string codec
- integer bitrate
JSON Schema Description |
---|
{ "extends": "Player.Audio.Stream", "id": "Player.Audio.Stream.Extended", "properties": { "channels": { "required": true, "type": "integer" }, "codec": { "required": true, "type": "string" }, "bitrate": { "required": true, "type": "integer" } } } |
Player.Id
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "Player.Id", "maximum": 2 } |
Player.Notifications.Data
Type: object
Properties:
- Player.Notifications.Item item
- Player.Notifications.Player player
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Notifications.Data", "properties": { "item": { "required": true, "$ref": "Player.Notifications.Item" }, "player": { "required": true, "$ref": "Player.Notifications.Player" } } } |
Player.Notifications.Item
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "description": "An unknown item does not have any additional information.", "properties": { "type": { "required": true, "$ref": "Player.Notifications.Item.Type" } } }, { "type": "object", "description": "An item known to the database has an identification.", "properties": { "type": { "required": true, "$ref": "Player.Notifications.Item.Type" }, "id": { "required": true, "$ref": "Library.Id" } } }, { "type": "object", "description": "A movie item has a title and may have a release year.", "properties": { "year": { "default": 0, "type": "integer" }, "type": { "required": true, "$ref": "Player.Notifications.Item.Type" }, "title": { "required": true, "type": "string" } } }, { "type": "object", "description": "A tv episode has a title and may have an episode number, season number and the title of the show it belongs to.", "properties": { "season": { "default": 0, "type": "integer" }, "type": { "required": true, "$ref": "Player.Notifications.Item.Type" }, "episode": { "default": 0, "type": "integer" }, "showtitle": { "default": "", "type": "string" }, "title": { "required": true, "type": "string" } } }, { "type": "object", "description": "A music video has a title and may have an album and an artist.", "properties": { "album": { "default": "", "type": "string" }, "title": { "required": true, "type": "string" }, "type": { "required": true, "$ref": "Player.Notifications.Item.Type" }, "artist": { "default": "", "type": "string" } } }, { "type": "object", "description": "A song has a title and may have an album, an artist and a track number.", "properties": { "album": { "default": "", "type": "string" }, "track": { "default": 0, "type": "integer" }, "title": { "required": true, "type": "string" }, "type": { "required": true, "$ref": "Player.Notifications.Item.Type" }, "artist": { "default": "", "type": "string" } } } ], "id": "Player.Notifications.Item" } |
Player.Notifications.Item.Type
Type: string
JSON Schema Description |
---|
{ "default": "unknown", "enums": [ "unknown", "movie", "episode", "musicvideo", "song" ], "type": "string", "id": "Player.Notifications.Item.Type" } |
Player.Notifications.Player
Type: object
Properties:
- Player.Id playerid
- [ integer speed = 0 ]
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Notifications.Player", "properties": { "playerid": { "required": true, "$ref": "Player.Id" }, "speed": { "default": 0, "type": "integer" } } } |
Player.Notifications.Player.Seek
Extends:
Properties:
- [ Global.Time seekoffset ]
- [ Global.Time time ]
JSON Schema Description |
---|
{ "extends": "Player.Notifications.Player", "id": "Player.Notifications.Player.Seek", "properties": { "seekoffset": { "$ref": "Global.Time" }, "time": { "$ref": "Global.Time" } } } |
Player.Position.Percentage
Type: number
JSON Schema Description |
---|
{ "default": 0, "minimum": 0, "type": "number", "id": "Player.Position.Percentage", "maximum": 100 } |
Player.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "type", "enums": [ "type", "partymode", "speed", "time", "percentage", "totaltime", "playlistid", "position", "repeat", "shuffled", "canseek", "canchangespeed", "canmove", "canzoom", "canrotate", "canshuffle", "canrepeat", "currentaudiostream", "audiostreams", "subtitleenabled", "currentsubtitle", "subtitles" ], "type": "string", "id": "Player.Property.Name" } |
Player.Property.Value
Type: object
Properties:
- [ boolean canrotate = False ]
- [ boolean canrepeat = False ]
- [ integer speed = 0 ]
- [ boolean canshuffle = False ]
- [ boolean shuffled = False ]
- [ boolean canmove = False ]
- [ boolean subtitleenabled = False ]
- [ Player.Position.Percentage percentage = 0 ]
- [ Player.Type type = "video" ]
- [ Player.Repeat repeat = "off" ]
- [ boolean canseek = False ]
- [ Player.Subtitle currentsubtitle ]
- [ Player.Subtitle[] subtitles ]
- [ Global.Time totaltime ]
- [ boolean canzoom = False ]
- [ Player.Audio.Stream.Extended currentaudiostream ]
- [ Playlist.Id playlistid = -1 ]
- [ Player.Audio.Stream.Extended[] audiostreams ]
- [ boolean partymode = False ]
- [ Global.Time time ]
- [ Playlist.Position position = -1 ]
- [ boolean canchangespeed = False ]
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Property.Value", "properties": { "canrotate": { "default": false, "type": "boolean" }, "canrepeat": { "default": false, "type": "boolean" }, "speed": { "default": 0, "type": "integer" }, "canshuffle": { "default": false, "type": "boolean" }, "shuffled": { "default": false, "type": "boolean" }, "canmove": { "default": false, "type": "boolean" }, "subtitleenabled": { "default": false, "type": "boolean" }, "percentage": { "default": 0, "$ref": "Player.Position.Percentage" }, "type": { "default": "video", "$ref": "Player.Type" }, "repeat": { "default": "off", "$ref": "Player.Repeat" }, "canseek": { "default": false, "type": "boolean" }, "currentsubtitle": { "$ref": "Player.Subtitle" }, "subtitles": { "items": { "$ref": "Player.Subtitle" }, "type": "array" }, "totaltime": { "$ref": "Global.Time" }, "canzoom": { "default": false, "type": "boolean" }, "currentaudiostream": { "$ref": "Player.Audio.Stream.Extended" }, "playlistid": { "default": -1, "$ref": "Playlist.Id" }, "audiostreams": { "items": { "$ref": "Player.Audio.Stream.Extended" }, "type": "array" }, "partymode": { "default": false, "type": "boolean" }, "time": { "$ref": "Global.Time" }, "position": { "default": -1, "$ref": "Playlist.Position" }, "canchangespeed": { "default": false, "type": "boolean" } } } |
Player.Repeat
Type: string
JSON Schema Description |
---|
{ "default": "off", "enums": [ "off", "one", "all" ], "type": "string", "id": "Player.Repeat" } |
Player.Speed
Type: object
Properties:
- [ integer speed = 0 ]
JSON Schema Description |
---|
{ "required": true, "type": "object", "id": "Player.Speed", "properties": { "speed": { "default": 0, "type": "integer" } } } |
Player.Subtitle
Type: object
Properties:
- integer index
- string name
- string language
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Subtitle", "properties": { "index": { "minimum": 0, "type": "integer", "required": true }, "name": { "required": true, "type": "string" }, "language": { "required": true, "type": "string" } } } |
Player.Type
Type: string
JSON Schema Description |
---|
{ "default": "video", "enums": [ "video", "audio", "picture" ], "type": "string", "id": "Player.Type" } |
Playlist
Playlist.Id
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "Playlist.Id", "maximum": 2 } |
Playlist.Item
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "additionalProperties": false, "type": "object", "properties": { "file": { "required": true, "type": "string", "description": "Path to a file (not a directory) to be added to the playlist" } } }, { "additionalProperties": false, "type": "object", "properties": { "directory": { "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "movieid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "episodeid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "musicvideoid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "artistid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "albumid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "songid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "description": "Identification of a genre from the AudioLibrary", "$ref": "Library.Id" } } } ], "id": "Playlist.Item" } |
Playlist.Position
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "Playlist.Position" } |
Playlist.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "type", "enums": [ "type", "size" ], "type": "string", "id": "Playlist.Property.Name" } |
Playlist.Property.Value
Type: object
Properties:
- [ Playlist.Type type = "unknown" ]
- [ integer size = 0 ]
JSON Schema Description |
---|
{ "type": "object", "id": "Playlist.Property.Value", "properties": { "type": { "default": "unknown", "$ref": "Playlist.Type" }, "size": { "default": 0, "minimum": 0, "type": "integer" } } } |
Playlist.Type
Type: string
JSON Schema Description |
---|
{ "default": "unknown", "enums": [ "unknown", "video", "audio", "picture", "mixed" ], "type": "string", "id": "Playlist.Type" } |
System
System.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "canshutdown", "enums": [ "canshutdown", "cansuspend", "canhibernate", "canreboot" ], "type": "string", "id": "System.Property.Name" } |
System.Property.Value
Type: object
Properties:
- [ boolean canreboot = False ]
- [ boolean cansuspend = False ]
- [ boolean canhibernate = False ]
- [ boolean canshutdown = False ]
JSON Schema Description |
---|
{ "type": "object", "id": "System.Property.Value", "properties": { "canreboot": { "default": false, "type": "boolean" }, "cansuspend": { "default": false, "type": "boolean" }, "canhibernate": { "default": false, "type": "boolean" }, "canshutdown": { "default": false, "type": "boolean" } } } |
Video
Video.Cast
Type: array
JSON Schema Description |
---|
{ "items": { "additionalProperties": false, "type": "object", "properties": { "role": { "required": true, "type": "string" }, "name": { "required": true, "type": "string" }, "thumbnail": { "default": "", "type": "string" } } }, "type": "array", "id": "Video.Cast" } |
Video.Details.Base
Extends:
Properties:
- [ integer playcount = 0 ]
JSON Schema Description |
---|
{ "extends": "Media.Details.Base", "id": "Video.Details.Base", "properties": { "playcount": { "default": 0, "type": "integer" } } } |
Video.Details.Episode
Extends:
Properties:
- [ number rating = 0 ]
- [ Library.Id tvshowid = -1 ]
- [ string votes = "" ]
- [ integer episode = 0 ]
- [ string productioncode = "" ]
- [ integer season = 0 ]
- [ string writer = "" ]
- Library.Id episodeid
- [ string originaltitle = "" ]
- [ Video.Cast cast ]
- [ string firstaired = "" ]
- [ string showtitle = "" ]
JSON Schema Description |
---|
{ "extends": "Video.Details.File", "id": "Video.Details.Episode", "properties": { "rating": { "default": 0, "type": "number" }, "tvshowid": { "default": -1, "$ref": "Library.Id" }, "votes": { "default": "", "type": "string" }, "episode": { "default": 0, "type": "integer" }, "productioncode": { "default": "", "type": "string" }, "season": { "default": 0, "type": "integer" }, "writer": { "default": "", "type": "string" }, "episodeid": { "required": true, "$ref": "Library.Id" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "firstaired": { "default": "", "type": "string" }, "showtitle": { "default": "", "type": "string" } } } |
Video.Details.File
Extends:
Properties:
- [ string director = "" ]
- [ Video.Streams streamdetails ]
- [ string runtime = "" ]
- [ Video.Resume resume ]
JSON Schema Description |
---|
{ "extends": "Video.Details.Item", "id": "Video.Details.File", "properties": { "director": { "default": "", "type": "string" }, "streamdetails": { "$ref": "Video.Streams" }, "runtime": { "default": "", "type": "string" }, "resume": { "$ref": "Video.Resume" } } } |
Video.Details.Item
Extends:
Properties:
- [ string plot = "" ]
- [ string lastplayed = "" ]
- [ string file = "" ]
JSON Schema Description |
---|
{ "extends": "Video.Details.Media", "id": "Video.Details.Item", "properties": { "plot": { "default": "", "type": "string" }, "lastplayed": { "default": "", "type": "string" }, "file": { "default": "", "type": "string" } } } |
Video.Details.Media
Extends:
Properties:
- [ string title = "" ]
JSON Schema Description |
---|
{ "extends": "Video.Details.Base", "id": "Video.Details.Media", "properties": { "title": { "default": "", "type": "string" } } } |
Video.Details.Movie
Extends:
Properties:
- [ number rating = 0 ]
- [ Array.String set ]
- [ integer year = 0 ]
- [ Array.Integer setid ]
- [ string votes = "" ]
- [ string tagline = "" ]
- [ string writer = "" ]
- [ string plotoutline = "" ]
- [ string sorttitle = "" ]
- [ string imdbnumber = "" ]
- [ string studio = "" ]
- [ string showlink = "" ]
- [ string genre = "" ]
- Library.Id movieid
- [ string productioncode = "" ]
- [ string country = "" ]
- [ string premiered = "" ]
- [ string originaltitle = "" ]
- [ Video.Cast cast ]
- [ string mpaa = "" ]
- [ integer top250 = 0 ]
- [ string trailer = "" ]
- [ array streamdetails = "" ]
JSON Schema Description |
---|
{ "extends": "Video.Details.File", "id": "Video.Details.Movie", "properties": { "rating": { "default": 0, "type": "number" }, "set": { "$ref": "Array.String" }, "year": { "default": 0, "type": "integer" }, "setid": { "$ref": "Array.Integer" }, "votes": { "default": "", "type": "string" }, "tagline": { "default": "", "type": "string" }, "writer": { "default": "", "type": "string" }, "plotoutline": { "default": "", "type": "string" }, "sorttitle": { "default": "", "type": "string" }, "imdbnumber": { "default": "", "type": "string" }, "studio": { "default": "", "type": "string" }, "showlink": { "default": "", "type": "string" }, "genre": { "default": "", "type": "string" }, "movieid": { "required": true, "$ref": "Library.Id" }, "productioncode": { "default": "", "type": "string" }, "country": { "default": "", "type": "string" }, "premiered": { "default": "", "type": "string" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "mpaa": { "default": "", "type": "string" }, "top250": { "default": 0, "type": "integer" }, "trailer": { "default": "", "type": "string" } } } |
Video.Details.MovieSet
Extends:
Properties:
- Library.Id setid
JSON Schema Description |
---|
{ "extends": "Video.Details.Media", "id": "Video.Details.MovieSet", "properties": { "setid": { "required": true, "$ref": "Library.Id" } } } |
Video.Details.MovieSet.Extended
Extends:
Properties:
- [ Video.Details.Movie[] movies ]
JSON Schema Description |
---|
{ "extends": "Video.Details.MovieSet", "id": "Video.Details.MovieSet.Extended", "properties": { "movies": { "items": { "$ref": "Video.Details.Movie" }, "type": "array" } } } |
Video.Details.MusicVideo
Extends:
Properties:
- [ string album = "" ]
- [ string artist = "" ]
- [ integer track = 0 ]
- [ string studio = "" ]
- [ integer year = 0 ]
- [ string genre = "" ]
- Library.Id musicvideoid
JSON Schema Description |
---|
{ "extends": "Video.Details.File", "id": "Video.Details.MusicVideo", "properties": { "album": { "default": "", "type": "string" }, "artist": { "default": "", "type": "string" }, "track": { "default": 0, "type": "integer" }, "studio": { "default": "", "type": "string" }, "year": { "default": 0, "type": "integer" }, "genre": { "default": "", "type": "string" }, "musicvideoid": { "required": true, "$ref": "Library.Id" } } } |
Video.Details.Season
Extends:
Properties:
- integer season
- [ Library.Id tvshowid = -1 ]
- [ integer episode = 0 ]
- [ string showtitle = "" ]
JSON Schema Description |
---|
{ "extends": "Video.Details.Base", "id": "Video.Details.Season", "properties": { "season": { "required": true, "type": "integer" }, "tvshowid": { "default": -1, "$ref": "Library.Id" }, "episode": { "default": 0, "type": "integer" }, "showtitle": { "default": "", "type": "string" } } } |
Video.Details.TVShow
Extends:
Properties:
- [ string episodeguide = "" ]
- Library.Id tvshowid
- [ integer episode = 0 ]
- [ string imdbnumber = "" ]
- [ number rating = 0 ]
- [ string mpaa = "" ]
- [ integer year = 0 ]
- [ string votes = "" ]
- [ string premiered = "" ]
- [ string originaltitle = "" ]
- [ Video.Cast cast ]
- [ string studio = "" ]
- [ string sorttitle = "" ]
- [ string genre = "" ]
JSON Schema Description |
---|
{ "extends": "Video.Details.Item", "id": "Video.Details.TVShow", "properties": { "episodeguide": { "default": "", "type": "string" }, "tvshowid": { "required": true, "$ref": "Library.Id" }, "episode": { "default": 0, "type": "integer" }, "imdbnumber": { "default": "", "type": "string" }, "rating": { "default": 0, "type": "number" }, "mpaa": { "default": "", "type": "string" }, "year": { "default": 0, "type": "integer" }, "votes": { "default": "", "type": "string" }, "premiered": { "default": "", "type": "string" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "studio": { "default": "", "type": "string" }, "sorttitle": { "default": "", "type": "string" }, "genre": { "default": "", "type": "string" } } } |
Video.Fields.Episode
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "plot", "votes", "rating", "writer", "firstaired", "playcount", "runtime", "director", "productioncode", "season", "episode", "originaltitle", "showtitle", "cast", "streamdetails", "lastplayed", "fanart", "thumbnail", "file", "resume", "tvshowid" ], "type": "string", "description": "Requesting the cast and/or resume field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.Episode" } |
Video.Fields.Movie
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "genre", "year", "rating", "director", "trailer", "tagline", "plot", "plotoutline", "originaltitle", "lastplayed", "playcount", "writer", "studio", "mpaa", "cast", "country", "imdbnumber", "premiered", "productioncode", "runtime", "set", "showlink", "streamdetails", "top250", "votes", "fanart", "thumbnail", "file", "sorttitle", "resume", "setid" ], "type": "string", "description": "Requesting the cast, set, showling and/or resume field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.Movie" } |
Video.Fields.MovieSet
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "playcount", "fanart", "thumbnail" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Video.Fields.MovieSet" } |
Video.Fields.MusicVideo
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "playcount", "runtime", "director", "studio", "year", "plot", "album", "artist", "genre", "track", "streamdetails", "lastplayed", "fanart", "thumbnail", "file", "resume" ], "type": "string", "description": "Requesting the resume field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.MusicVideo" } |
Video.Fields.Season
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "season", "showtitle", "playcount", "episode", "fanart", "thumbnail", "tvshowid" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Video.Fields.Season" } |
Video.Fields.TVShow
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "genre", "year", "rating", "plot", "studio", "mpaa", "cast", "playcount", "episode", "imdbnumber", "premiered", "votes", "lastplayed", "fanart", "thumbnail", "file", "originaltitle", "sorttitle", "episodeguide" ], "type": "string", "description": "Requesting the cast field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.TVShow" } |
Video.Resume
Type: object
Properties:
- [ number position = 0 ]
- [ number total = 0 ]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Video.Resume", "properties": { "position": { "default": 0, "minimum": 0, "type": "number" }, "total": { "default": 0, "minimum": 0, "type": "number" } } } |
Video.Streams
Type: object
Properties:
- [ array[1..X] video ]
- [ array[1..X] audio ]
- [ array[1..X] subtitle ]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Video.Streams", "properties": { "video": { "minItems": 1, "items": { "additionalProperties": false, "type": "object", "properties": { "duration": { "default": 0, "type": "integer" }, "width": { "default": 0, "type": "integer" }, "codec": { "default": "", "type": "string" }, "aspect": { "default": 0, "type": "number" }, "height": { "default": 0, "type": "integer" } } }, "type": "array" }, "audio": { "minItems": 1, "items": { "additionalProperties": false, "type": "object", "properties": { "channels": { "default": 0, "type": "integer" }, "codec": { "default": "", "type": "string" }, "language": { "default": "", "type": "string" } } }, "type": "array" }, "subtitle": { "minItems": 1, "items": { "additionalProperties": false, "type": "object", "properties": { "language": { "default": "", "type": "string" } } }, "type": "array" } } } |
Notifications
AudioLibrary
AudioLibrary.OnRemove
An audio item has been removed.
Parameters:
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "type": { "required": true, "$ref": "Notifications.Library.Audio.Type" }, "id": { "required": true, "$ref": "Library.Id" } } } ], "description": "An audio item has been removed." } |
AudioLibrary.OnUpdate
An audio item has been updated.
Parameters:
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "type": { "enum": [ "song" ], "type": "string", "id": "Notifications.Library.Audio.Type", "required": true }, "id": { "required": true, "$ref": "Library.Id" } } } ], "description": "An audio item has been updated." } |
Player
Player.OnPause
Playback of a media item has been paused. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "description": "Playback of a media item has been paused. If there is no ID available extra information will be provided." } |
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.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "description": "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." } |
Player.OnSeek
The playback position has been changed. If there is no ID available extra information will be provided.
Parameters:
- string sender
- object data
Properties:
- [ Player.Notifications.Item item ]
- Player.Notifications.Player.Seek player
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "item": { "$ref": "Player.Notifications.Item" }, "player": { "required": true, "$ref": "Player.Notifications.Player.Seek" } } } ], "description": "The playback position has been changed. If there is no ID available extra information will be provided." } |
Player.OnSpeedChanged
Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "description": "Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided." } |
Player.OnStop
Playback of a media item has been stopped. If there is no ID available extra information will be provided.
Parameters:
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "item": { "$ref": "Player.Notifications.Item" } } } ], "description": "Playback of a media item has been stopped. If there is no ID available extra information will be provided." } |
System
System.OnLowBattery
The system is on low battery.
Parameters:
- string sender
- null data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system is on low battery." } |
System.OnQuit
XBMC will be closed.
Parameters:
- string sender
- null data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "XBMC will be closed." } |
System.OnRestart
The system will be restarted.
Parameters:
- string sender
- null data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system will be restarted." } |
System.OnSleep
The system will be suspended.
Parameters:
- string sender
- null data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system will be suspended." } |
System.OnWake
The system woke up from suspension.
Parameters:
- string sender
- null data
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system woke up from suspension." } |
VideoLibrary
VideoLibrary.OnRemove
A video item has been removed.
Parameters:
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "type": { "required": true, "$ref": "Notifications.Library.Video.Type" }, "id": { "required": true, "$ref": "Library.Id" } } } ], "description": "A video item has been removed." } |
VideoLibrary.OnUpdate
A video item has been updated.
Parameters:
JSON Schema Description |
---|
{ "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "playcount": { "default": -1, "minimum": 0, "type": "integer" }, "type": { "enum": [ "movie", "tvshow", "episode", "musicvideo" ], "type": "string", "id": "Notifications.Library.Video.Type", "required": true }, "id": { "required": true, "$ref": "Library.Id" } } } ], "description": "A video item has been updated." } |