JSON-RPC API/v6

Version 6 is a stable version of Kodi's JSON-RPC API and is published with the release of v12 (Frodo). It continues to be used for v13, v14, and v15. It comes with support for WebSockets as an alternative transport for third party clients. Using WebSockets will allow webinterfaces (which are currently restricted to the HTTP transport only) to get access to a bidirectional transport with Kodi's JSON-RPC API and can therefore also profit from additional features like notifications.

Some of the methods have been changed or removed, so v6 is not 100% backwards compatible with older versions. A rough and incomplete list of changes compared to version 4 can be found here. A more complete and detailed list can be found in the forum.

Error message
If Kodi 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

Namespaces
The Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:

Addons.ExecuteAddon
Executes the given addon with the given parameters (if possible)

Permissions: Parameters:  Returns: string
 * ExecuteAddon
 * 1) string addonid
 * 2) [ mixed params = null ]
 * 3) [ boolean wait = False ]

Addons.GetAddonDetails
Gets the details of a specific addon

Permissions: Parameters:  Returns:  Type: object
 * ReadData
 * 1) string addonid
 * 2) [ Addon.Fields properties ]

Properties:
 * List.LimitsReturned limits
 * Addon.Details addon

Addons.GetAddons
Gets all available addons

Permissions: Parameters:  Returns:  Type: object
 * ReadData
 * 1) [ Addon.Types type = "unknown" ]
 * 2) [ Addon.Content content = "unknown" ]
 * 3) [ mixed enabled = "all" ]
 * 4) [ Addon.Fields properties ]
 * 5) [ List.Limits limits ]

Properties:
 * List.LimitsReturned limits
 * [ Addon.Details[] addons ]

Addons.SetAddonEnabled
Enables/Disables a specific addon

Permissions: Parameters:  Returns: string
 * ManageAddon
 * 1) string addonid
 * 2) Global.Toggle enabled

Application.GetProperties
Retrieves the values of the given properties

Permissions: Parameters:  Returns: Application.Property.Value
 * ReadData
 * 1) Application.Property.Name[] properties

Application.Quit
Quit application

Permissions: Parameters: None
 * ControlPower

Returns: string

Application.SetMute
Toggle mute/unmute

Permissions: Parameters:  Returns: boolean
 * ControlPlayback
 * 1) Global.Toggle mute

Application.SetVolume
Set the current volume

Permissions: Parameters:  Returns: integer
 * ControlPlayback
 * 1) mixed volume

AudioLibrary.Clean
Cleans the audio library from non-existent items

Permissions: Parameters: None
 * RemoveData

Returns: string

AudioLibrary.Export
Exports all items from the audio library

Permissions: Parameters:  Returns: string
 * WriteFile
 * 1) [ mixed options ]

AudioLibrary.GetAlbumDetails
Retrieve details about a specific album

Permissions: Parameters:  Returns:  Type: object
 * ReadData
 * 1) Library.Id albumid
 * 2) [ Audio.Fields.Album properties ]

Properties:
 * [ Audio.Details.Album albumdetails ]

AudioLibrary.GetAlbums
Retrieve all albums from specified artist or genre

Permissions: Parameters:  Returns:  Type: object
 * ReadData
 * 1) [ Audio.Fields.Album properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]
 * 4) [ mixed filter ]

Properties:
 * [ Audio.Details.Album[] albums ]
 * List.LimitsReturned limits

AudioLibrary.GetArtistDetails
Retrieve details about a specific artist

Permissions: Parameters:  Returns:  Type: object
 * ReadData
 * 1) Library.Id artistid
 * 2) [ Audio.Fields.Artist properties ]

Properties:
 * [ Audio.Details.Artist artistdetails ]

AudioLibrary.GetArtists
Retrieve all artists

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Optional.Boolean albumartistsonly = null ]
 * 2) [ Audio.Fields.Artist properties ]
 * 3) [ List.Limits limits ]
 * 4) [ List.Sort sort ]
 * 5) [ mixed filter ]

Properties:
 * List.LimitsReturned limits
 * [ Audio.Details.Artist[] artists ]

AudioLibrary.GetGenres
Retrieve all genres

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Library.Fields.Genre properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * Library.Details.Genre[] genres
 * List.LimitsReturned limits

AudioLibrary.GetRecentlyAddedAlbums
Retrieve recently added albums

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Audio.Fields.Album properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * [ Audio.Details.Album[] albums ]
 * List.LimitsReturned limits

AudioLibrary.GetRecentlyAddedSongs
Retrieve recently added songs

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ List.Amount albumlimit = -1 ]
 * 2) [ Audio.Fields.Song properties ]
 * 3) [ List.Limits limits ]
 * 4) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * [ Audio.Details.Song[] songs ]

AudioLibrary.GetRecentlyPlayedAlbums
Retrieve recently played albums

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Audio.Fields.Album properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * [ Audio.Details.Album[] albums ]
 * List.LimitsReturned limits

AudioLibrary.GetRecentlyPlayedSongs
Retrieve recently played songs

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Audio.Fields.Song properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * [ Audio.Details.Song[] songs ]

AudioLibrary.GetSongDetails
Retrieve details about a specific song

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Library.Id songid
 * 2) [ Audio.Fields.Song properties ]

Properties:
 * [ Audio.Details.Song songdetails ]

AudioLibrary.GetSongs
Retrieve all songs from specified album, artist or genre

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Audio.Fields.Song properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]
 * 4) [ mixed filter ]

Properties:
 * List.LimitsReturned limits
 * [ Audio.Details.Song[] songs ]

AudioLibrary.Scan
Scans the audio sources for new library items

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) [ string directory = "" ]

AudioLibrary.SetAlbumDetails
Update the given album with the given details

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) Library.Id albumid
 * 2) [ Optional.String title = null ]
 * 3) [ mixed artist = null ]
 * 4) [ Optional.String description = null ]
 * 5) [ mixed genre = null ]
 * 6) [ mixed theme = null ]
 * 7) [ mixed mood = null ]
 * 8) [ mixed style = null ]
 * 9) [ Optional.String type = null ]
 * 10) [ Optional.String albumlabel = null ]
 * 11) [ Optional.Integer rating = null ]
 * 12) [ Optional.Integer year = null ]

AudioLibrary.SetArtistDetails
Update the given artist with the given details

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) Library.Id artistid
 * 2) [ Optional.String artist = null ]
 * 3) [ mixed instrument = null ]
 * 4) [ mixed style = null ]
 * 5) [ mixed mood = null ]
 * 6) [ Optional.String born = null ]
 * 7) [ Optional.String formed = null ]
 * 8) [ Optional.String description = null ]
 * 9) [ mixed genre = null ]
 * 10) [ Optional.String died = null ]
 * 11) [ Optional.String disbanded = null ]
 * 12) [ mixed yearsactive = null ]

AudioLibrary.SetSongDetails
Update the given song with the given details

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) Library.Id songid
 * 2) [ Optional.String title = null ]
 * 3) [ mixed artist = null ]
 * 4) [ mixed albumartist = null ]
 * 5) [ mixed genre = null ]
 * 6) [ Optional.Integer year = null ]
 * 7) [ Optional.Integer rating = null ]
 * 8) [ Optional.String album = null ]
 * 9) [ Optional.Integer track = null ]
 * 10) [ Optional.Integer disc = null ]
 * 11) [ Optional.Integer duration = null ]
 * 12) [ Optional.String comment = null ]
 * 13) [ Optional.String musicbrainztrackid = null ]
 * 14) [ Optional.String musicbrainzartistid = null ]
 * 15) [ Optional.String musicbrainzalbumid = null ]
 * 16) [ Optional.String musicbrainzalbumartistid = null ]

Files.Download
Downloads the given file

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: any
 * ReadData
 * 1) string path

Files.GetDirectory
Get the directories and files in the given directory

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) string directory
 * 2) [ Files.Media media = "files" ]
 * 3) [ List.Fields.Files properties ]
 * 4) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * List.Item.File[] files

Files.GetFileDetails
Get details for a specific file

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) string file
 * 2) [ Files.Media media = "files" ]
 * 3) [ List.Fields.Files properties ]

Properties:
 * List.Item.File filedetails

Files.GetSources
Get the sources of the media windows

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Files.Media media
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * List.Items.Sources sources

Files.PrepareDownload
Provides a way to download a given file (e.g. providing an URL to the real file location)

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) string path

Properties:
 * string mode
 * string protocol
 * any details

GUI.ActivateWindow
Activates the given window

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlGUI
 * 1) GUI.Window window
 * 2) [ array[1..X] parameters ]

GUI.GetProperties
Retrieves the values of the given properties

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: GUI.Property.Value
 * ReadData
 * 1) GUI.Property.Name[] properties

GUI.SetFullscreen
Toggle fullscreen/GUI

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: boolean
 * ControlGUI
 * 1) Global.Toggle fullscreen

GUI.ShowNotification
Shows a GUI notification

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlGUI
 * 1) string title
 * 2) string message
 * 3) [ mixed image = "" ]
 * 4) [ integer displaytime = 5000 ]

Input.Back
Goes back in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.ContextMenu
Shows the context menu

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Down
Navigate down in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.ExecuteAction
Execute a specific action

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * Navigate
 * 1) Input.Action action

Input.Home
Goes to home window in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Info
Shows the information dialog

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Left
Navigate left in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Right
Navigate right in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Select
Select current item in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.SendText
Send a generic (unicode) text

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * Navigate
 * 1) string text
 * 2) [ boolean done = True ]

Input.ShowCodec
Show codec information of the playing item

Permissions: Parameters: None
 * Navigate

Returns: string

Input.ShowOSD
Show the on-screen display for the current player

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Up
Navigate up in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

JSONRPC.GetConfiguration
Get client-specific configurations

Permissions: Parameters: None
 * ReadData

Returns: Configuration

JSONRPC.Introspect
Enumerates all actions and descriptions

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * ReadData
 * 1) [ boolean getdescriptions = True ]
 * 2) [ boolean getmetadata = False ]
 * 3) [ boolean filterbytransport = True ]
 * 4) [ object filter ]

Properties:
 * [ boolean getreferences = True ]
 * string id
 * string type

Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object

JSONRPC.NotifyAll
Notify all other connected clients

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: any
 * ReadData
 * 1) string sender
 * 2) string message
 * 3) [ any data = null ]

JSONRPC.Permission
Retrieve the clients permissions

Permissions: Parameters: None
 * ReadData

Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object

Properties:
 * boolean readdata
 * boolean writefile
 * boolean controlpvr
 * boolean controlsystem
 * boolean removedata
 * boolean controlplayback
 * boolean navigate
 * boolean controlpower
 * boolean executeaddon
 * boolean manageaddon
 * boolean controlgui
 * boolean controlnotify
 * boolean updatedata

JSONRPC.Ping
Ping responder

Permissions: Parameters: None
 * ReadData

Returns: string

JSONRPC.SetConfiguration
Change the client-specific configuration

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * ControlNotify
 * 1) [ object notifications ]

Properties:
 * [ Optional.Boolean gui = null ]
 * [ Optional.Boolean other = null ]
 * [ Optional.Boolean input = null ]
 * [ Optional.Boolean videolibrary = null ]
 * [ Optional.Boolean audiolibrary = null ]
 * [ Optional.Boolean playlist = null ]
 * [ Optional.Boolean system = null ]
 * [ Optional.Boolean player = null ]
 * [ Optional.Boolean application = null ]

Returns: Configuration

JSONRPC.Version
Retrieve the JSON-RPC protocol version.

Permissions: Parameters: None
 * ReadData

Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object

Properties:
 * integer minor
 * integer patch
 * integer major

PVR.GetChannelDetails
Retrieves the details of a specific channel

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Library.Id channelid
 * 2) [ PVR.Fields.Channel properties ]

Properties:
 * [ PVR.Details.Channel channeldetails ]

PVR.GetChannelGroupDetails
Retrieves the details of a specific channel group

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * ReadData
 * 1) PVR.ChannelGroup.Id channelgroupid
 * 2) [ object channels ]

Properties:
 * [ List.Limits limits ]
 * [ PVR.Fields.Channel properties ]

Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object

Properties:
 * [ PVR.Details.ChannelGroup.Extended channelgroupdetails ]

PVR.GetChannelGroups
Retrieves the channel groups for the specified type

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) PVR.Channel.Type channeltype
 * 2) [ List.Limits limits ]

Properties:
 * List.LimitsReturned limits
 * PVR.Details.ChannelGroup[] channelgroups

PVR.GetChannels
Retrieves the channel list

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) PVR.ChannelGroup.Id channelgroupid
 * 2) [ PVR.Fields.Channel properties ]
 * 3) [ List.Limits limits ]

Properties:
 * List.LimitsReturned limits
 * PVR.Details.Channel[] channels

PVR.GetProperties
Retrieves the values of the given properties

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: PVR.Property.Value
 * ReadData
 * 1) PVR.Property.Name[] properties

PVR.Record
Toggle recording of a channel

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPVR
 * 1) [ Global.Toggle record = "toggle" ]
 * 2) [ mixed channel = "current" ]

PVR.Scan
Starts a channel scan

Permissions: Parameters: None
 * ControlPVR

Returns: string

Player.GetActivePlayers
Returns all active players

Permissions: Parameters: None
 * ReadData

Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: array

Player.GetItem
Retrieves the currently played item

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Player.Id playerid
 * 2) [ List.Fields.All properties ]

Properties:
 * List.Item.All item

Player.GetProperties
Retrieves the values of the given properties

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: Player.Property.Value
 * ReadData
 * 1) Player.Id playerid
 * 2) Player.Property.Name[] properties

Player.GoTo
Go to previous/next/specific item in the playlist

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) mixed to

Player.Move
If picture is zoomed move viewport left/right/up/down otherwise skip previous/next

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) string direction

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: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * ControlPlayback
 * 1) [ mixed item ]
 * 2) [ object options ]

Properties:
 * [ Optional.Boolean shuffled = null ]
 * [ mixed repeat = null ]
 * [ mixed resume = False ]

Returns: string

Player.PlayPause
Pauses or unpause playback and returns the new state

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: Player.Speed
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) [ Global.Toggle play = "toggle" ]

Player.Rotate
Rotates current picture

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) [ string value = "clockwise" ]

Player.Seek
Seek through the playing item

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) mixed value

Properties:
 * [ Player.Position.Percentage percentage = 0 ]
 * [ Global.Time time ]
 * [ Global.Time totaltime ]

Player.SetAudioStream
Set the audio stream played by the player

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) mixed stream

Player.SetPartymode
Turn partymode on or off

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) Global.Toggle partymode

Player.SetRepeat
Set the repeat mode of the player

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) mixed repeat

Player.SetShuffle
Shuffle/Unshuffle items in the player

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) Global.Toggle shuffle

Player.SetSpeed
Set the speed of the current playback

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: Player.Speed
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) mixed speed

Player.SetSubtitle
Set the subtitle displayed by the player

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) mixed subtitle
 * 3) [ boolean enable = False ]

Player.Stop
Stops playback

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid

Player.Zoom
Zoom current picture

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Player.Id playerid
 * 2) mixed zoom

Playlist.Add
Add item(s) to playlist

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Playlist.Id playlistid
 * 2) Playlist.Item item

Playlist.Clear
Clear playlist

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Playlist.Id playlistid

Playlist.GetItems
Get all items from playlist

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Playlist.Id playlistid
 * 2) [ List.Fields.All properties ]
 * 3) [ List.Limits limits ]
 * 4) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * List.Item.All[] items

Playlist.GetPlaylists
Returns all existing playlists

Permissions: Parameters: None
 * ReadData

Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: array

Playlist.GetProperties
Retrieves the values of the given properties

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: Playlist.Property.Value
 * ReadData
 * 1) Playlist.Id playlistid
 * 2) Playlist.Property.Name[] properties

Playlist.Insert
Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Playlist.Id playlistid
 * 2) Playlist.Position position
 * 3) Playlist.Item item

Playlist.Remove
Remove item from playlist. Does not work for picture playlists (aka slideshows).

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Playlist.Id playlistid
 * 2) Playlist.Position position

Playlist.Swap
Swap items in the playlist. Does not work for picture playlists (aka slideshows).

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * ControlPlayback
 * 1) Playlist.Id playlistid
 * 2) Playlist.Position position1
 * 3) Playlist.Position position2

System.EjectOpticalDrive
Ejects or closes the optical disc drive (if available)

Permissions: Parameters: None
 * ControlSystem

Returns: string

System.GetProperties
Retrieves the values of the given properties

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: System.Property.Value
 * ReadData
 * 1) System.Property.Name[] properties

System.Hibernate
Puts the system running Kodi into hibernate mode

Permissions: Parameters: None
 * ControlPower

Returns: string

System.Reboot
Reboots the system running Kodi

Permissions: Parameters: None
 * ControlPower

Returns: string

System.Shutdown
Shuts the system running Kodi down

Permissions: Parameters: None
 * ControlPower

Returns: string

System.Suspend
Suspends the system running Kodi

Permissions: Parameters: None
 * ControlPower

Returns: string

VideoLibrary.Clean
Cleans the video library from non-existent items

Permissions: Parameters: None
 * RemoveData

Returns: string

VideoLibrary.Export
Exports all items from the video library

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * WriteFile
 * 1) [ mixed options ]

VideoLibrary.GetEpisodeDetails
Retrieve details about a specific tv show episode

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Library.Id episodeid
 * 2) [ Video.Fields.Episode properties ]

Properties:
 * [ Video.Details.Episode episodedetails ]

VideoLibrary.GetEpisodes
Retrieve all tv show episodes

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Library.Id tvshowid = -1 ]
 * 2) [ integer season = -1 ]
 * 3) [ Video.Fields.Episode properties ]
 * 4) [ List.Limits limits ]
 * 5) [ List.Sort sort ]
 * 6) [ mixed filter ]

Properties:
 * [ Video.Details.Episode[] episodes ]
 * List.LimitsReturned limits

VideoLibrary.GetGenres
Retrieve all genres

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) string type
 * 2) [ Library.Fields.Genre properties ]
 * 3) [ List.Limits limits ]
 * 4) [ List.Sort sort ]

Properties:
 * Library.Details.Genre[] genres
 * List.LimitsReturned limits

VideoLibrary.GetMovieDetails
Retrieve details about a specific movie

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Library.Id movieid
 * 2) [ Video.Fields.Movie properties ]

Properties:
 * [ Video.Details.Movie moviedetails ]

VideoLibrary.GetMovieSetDetails
Retrieve details about a specific movie set

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * ReadData
 * 1) Library.Id setid
 * 2) [ Video.Fields.MovieSet properties ]
 * 3) [ object movies ]

Properties:
 * [ List.Limits limits ]
 * [ Video.Fields.Movie properties ]
 * [ List.Sort sort ]

Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object

Properties:
 * [ Video.Details.MovieSet.Extended setdetails ]

VideoLibrary.GetMovieSets
Retrieve all movie sets

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Video.Fields.MovieSet properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.MovieSet[] sets ]

VideoLibrary.GetMovies
Retrieve all movies

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Video.Fields.Movie properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]
 * 4) [ mixed filter ]

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.Movie[] movies ]

VideoLibrary.GetMusicVideoDetails
Retrieve details about a specific music video

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Library.Id musicvideoid
 * 2) [ Video.Fields.MusicVideo properties ]

Properties:
 * [ Video.Details.MusicVideo musicvideodetails ]

VideoLibrary.GetMusicVideos
Retrieve all music videos

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Video.Fields.MusicVideo properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]
 * 4) [ mixed filter ]

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.MusicVideo[] musicvideos ]

VideoLibrary.GetRecentlyAddedEpisodes
Retrieve all recently added tv episodes

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Video.Fields.Episode properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * [ Video.Details.Episode[] episodes ]
 * List.LimitsReturned limits

VideoLibrary.GetRecentlyAddedMovies
Retrieve all recently added movies

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Video.Fields.Movie properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.Movie[] movies ]

VideoLibrary.GetRecentlyAddedMusicVideos
Retrieve all recently added music videos

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Video.Fields.MusicVideo properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.MusicVideo[] musicvideos ]

VideoLibrary.GetSeasons
Retrieve all tv seasons

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Library.Id tvshowid
 * 2) [ Video.Fields.Season properties ]
 * 3) [ List.Limits limits ]
 * 4) [ List.Sort sort ]

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.Season[] seasons ]

VideoLibrary.GetTVShowDetails
Retrieve details about a specific tv show

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) Library.Id tvshowid
 * 2) [ Video.Fields.TVShow properties ]

Properties:
 * [ Video.Details.TVShow tvshowdetails ]

VideoLibrary.GetTVShows
Retrieve all tv shows

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) [ Video.Fields.TVShow properties ]
 * 2) [ List.Limits limits ]
 * 3) [ List.Sort sort ]
 * 4) [ mixed filter ]

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.TVShow[] tvshows ]

VideoLibrary.RemoveEpisode
Removes the given episode from the library

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * RemoveData
 * 1) Library.Id episodeid

VideoLibrary.RemoveMovie
Removes the given movie from the library

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * RemoveData
 * 1) Library.Id movieid

VideoLibrary.RemoveMusicVideo
Removes the given music video from the library

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * RemoveData
 * 1) Library.Id musicvideoid

VideoLibrary.RemoveTVShow
Removes the given tv show from the library

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * RemoveData
 * 1) Library.Id tvshowid

VideoLibrary.Scan
Scans the video sources for new library items

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) [ string directory = "" ]

VideoLibrary.SetEpisodeDetails
Update the given episode with the given details

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) Library.Id episodeid
 * 2) [ Optional.String title = null ]
 * 3) [ Optional.Integer playcount = null ]
 * 4) [ Optional.Integer runtime = null ]
 * 5) [ mixed director = null ]
 * 6) [ Optional.String plot = null ]
 * 7) [ Optional.Number rating = null ]
 * 8) [ Optional.String votes = null ]
 * 9) [ Optional.String lastplayed = null ]
 * 10) [ mixed writer = null ]
 * 11) [ Optional.String firstaired = null ]
 * 12) [ Optional.String productioncode = null ]
 * 13) [ Optional.Integer season = null ]
 * 14) [ Optional.Integer episode = null ]
 * 15) [ Optional.String originaltitle = null ]
 * 16) [ Optional.String thumbnail = null ]
 * 17) [ Optional.String fanart = null ]
 * 18) [ mixed art = null ]

VideoLibrary.SetMovieDetails
Update the given movie with the given details

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) Library.Id movieid
 * 2) [ Optional.String title = null ]
 * 3) [ Optional.Integer playcount = null ]
 * 4) [ Optional.Integer runtime = null ]
 * 5) [ mixed director = null ]
 * 6) [ mixed studio = null ]
 * 7) [ Optional.Integer year = null ]
 * 8) [ Optional.String plot = null ]
 * 9) [ mixed genre = null ]
 * 10) [ Optional.Number rating = null ]
 * 11) [ Optional.String mpaa = null ]
 * 12) [ Optional.String imdbnumber = null ]
 * 13) [ Optional.String votes = null ]
 * 14) [ Optional.String lastplayed = null ]
 * 15) [ Optional.String originaltitle = null ]
 * 16) [ Optional.String trailer = null ]
 * 17) [ Optional.String tagline = null ]
 * 18) [ Optional.String plotoutline = null ]
 * 19) [ mixed writer = null ]
 * 20) [ mixed country = null ]
 * 21) [ Optional.Integer top250 = null ]
 * 22) [ Optional.String sorttitle = null ]
 * 23) [ Optional.String set = null ]
 * 24) [ mixed showlink = null ]
 * 25) [ Optional.String thumbnail = null ]
 * 26) [ Optional.String fanart = null ]
 * 27) [ mixed tag = null ]
 * 28) [ mixed art = null ]

VideoLibrary.SetMusicVideoDetails
Update the given music video with the given details

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) Library.Id musicvideoid
 * 2) [ Optional.String title = null ]
 * 3) [ Optional.Integer playcount = null ]
 * 4) [ Optional.Integer runtime = null ]
 * 5) [ mixed director = null ]
 * 6) [ mixed studio = null ]
 * 7) [ Optional.Integer year = null ]
 * 8) [ Optional.String plot = null ]
 * 9) [ Optional.String album = null ]
 * 10) [ mixed artist = null ]
 * 11) [ mixed genre = null ]
 * 12) [ Optional.Integer track = null ]
 * 13) [ Optional.String lastplayed = null ]
 * 14) [ Optional.String thumbnail = null ]
 * 15) [ Optional.String fanart = null ]
 * 16) [ mixed tag = null ]
 * 17) [ mixed art = null ]

VideoLibrary.SetTVShowDetails
Update the given tvshow with the given details

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: string
 * UpdateData
 * 1) Library.Id tvshowid
 * 2) [ Optional.String title = null ]
 * 3) [ Optional.Integer playcount = null ]
 * 4) [ mixed studio = null ]
 * 5) [ Optional.String plot = null ]
 * 6) [ mixed genre = null ]
 * 7) [ Optional.Number rating = null ]
 * 8) [ Optional.String mpaa = null ]
 * 9) [ Optional.String imdbnumber = null ]
 * 10) [ Optional.String premiered = null ]
 * 11) [ Optional.String votes = null ]
 * 12) [ Optional.String lastplayed = null ]
 * 13) [ Optional.String originaltitle = null ]
 * 14) [ Optional.String sorttitle = null ]
 * 15) [ Optional.String episodeguide = null ]
 * 16) [ Optional.String thumbnail = null ]
 * 17) [ Optional.String fanart = null ]
 * 18) [ mixed tag = null ]
 * 19) [ mixed art = null ]

XBMC.GetInfoBooleans
Retrieve info booleans about Kodi and the system

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) array[1..X] booleans

XBMC.GetInfoLabels
Retrieve info labels about Kodi and the system

Permissions: Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Returns: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA"> Type: object
 * ReadData
 * 1) array[1..X] labels

Addon.Content
Type: string

Addon.Details
Extends:
 * Item.Details.Base

Properties:
 * string addonid
 * [ string disclaimer = "" ]
 * [ string fanart = "" ]
 * [ mixed broken = null ]
 * [ string author = "" ]
 * [ boolean enabled = False ]
 * [ array extrainfo ]
 * [ string thumbnail = "" ]
 * [ string path = "" ]
 * [ array dependencies ]
 * Addon.Types type
 * [ string description = "" ]
 * [ string name = "" ]
 * [ string version = "" ]
 * [ string summary = "" ]
 * [ integer rating = 0 ]

Addon.Fields
Extends:
 * Item.Fields.Base

Addon.Types
Type: string

Application.Property.Name
Type: string

Application.Property.Value
Type: object

Properties:
 * [ object version ]

Properties:
 * integer minor
 * string tag
 * integer major
 * [ mixed revision = null ]


 * [ string name = "" ]
 * [ integer volume = 0 ]
 * [ boolean muted = False ]

Array.Integer
Type: array

Array.String
Type: array

Audio.Details.Album
Extends:
 * Audio.Details.Media

Properties:
 * [ Array.String theme ]
 * [ string description = "" ]
 * [ string type = "" ]
 * [ Array.String style ]
 * Library.Id albumid
 * [ integer playcount = 0 ]
 * [ string albumlabel = "" ]
 * [ Array.String mood ]

Audio.Details.Artist
Extends:
 * Audio.Details.Base

Properties:
 * [ string born = "" ]
 * [ string formed = "" ]
 * [ string died = "" ]
 * [ Array.String style ]
 * [ Array.String yearsactive ]
 * [ Array.String mood ]
 * [ string musicbrainzartistid = "" ]
 * [ string disbanded = "" ]
 * [ string description = "" ]
 * string artist
 * [ Array.String instrument ]
 * Library.Id artistid

Audio.Details.Base
Extends:
 * Media.Details.Base

Properties:
 * [ Array.String genre ]

Audio.Details.Media
Extends:
 * Audio.Details.Base

Properties:
 * [ string displayartist = "" ]
 * [ Array.String artist ]
 * [ Array.Integer genreid ]
 * [ string musicbrainzalbumartistid = "" ]
 * [ integer year = 0 ]
 * [ integer rating = 0 ]
 * [ Array.Integer artistid ]
 * [ string title = "" ]
 * [ string musicbrainzalbumid = "" ]

Audio.Details.Song
Extends:
 * Audio.Details.Media

Properties:
 * [ string lyrics = "" ]
 * Library.Id songid
 * [ Array.Integer albumartistid ]
 * [ integer disc = 0 ]
 * [ string comment = "" ]
 * [ integer playcount = 0 ]
 * [ string album = "" ]
 * [ string file = "" ]
 * [ string lastplayed = "" ]
 * [ Library.Id albumid = -1 ]
 * [ string musicbrainzartistid = "" ]
 * [ Array.String albumartist ]
 * [ integer duration = 0 ]
 * [ string musicbrainztrackid = "" ]
 * [ integer track = 0 ]

Audio.Fields.Album
Extends:
 * Item.Fields.Base

Audio.Fields.Artist
Extends:
 * Item.Fields.Base

Audio.Fields.Song
Extends:
 * Item.Fields.Base

Configuration
Type: object

Properties:
 * Configuration.Notifications notifications

Configuration.Notifications
Type: object

Properties:
 * boolean gui
 * boolean other
 * boolean input
 * boolean videolibrary
 * boolean audiolibrary
 * boolean pvr
 * boolean playlist
 * boolean system
 * boolean player
 * boolean application

Files.Media
Type: string

GUI.Property.Name
Type: string

GUI.Property.Value
Type: object

Properties:
 * [ object currentwindow ]

Properties:
 * string label
 * integer id


 * [ boolean fullscreen = False ]
 * [ object skin ]

Properties:
 * string id
 * [ string name = "" ]


 * [ object currentcontrol ]

Properties:
 * string label

GUI.Window
Type: string

Global.IncrementDecrement
Type: string

Global.String.NotEmpty
Type: string

Global.Time
Type: object

Properties:
 * integer hours
 * integer milliseconds
 * integer seconds
 * integer minutes

Global.Toggle
Type: mixed

Input.Action
Type: string

Item.Details.Base
Type: object

Properties:
 * string label

Item.Fields.Base
Type: array

Library.Details.Genre
Extends:
 * Item.Details.Base

Properties:
 * [ string thumbnail = "" ]
 * [ string title = "" ]
 * Library.Id genreid

Library.Fields.Genre
Extends:
 * Item.Fields.Base

Library.Id
Type: integer

List.Amount
Type: integer

List.Fields.All
Extends:
 * Item.Fields.Base

List.Fields.Files
Extends:
 * Item.Fields.Base

List.Filter.Albums
Type: mixed

List.Filter.Artists
Type: mixed

List.Filter.Episodes
Type: mixed

List.Filter.Fields.Albums
Type: string

List.Filter.Fields.Artists
Type: string

List.Filter.Fields.Episodes
Type: string

List.Filter.Fields.Movies
Type: string

List.Filter.Fields.MusicVideos
Type: string

List.Filter.Fields.Songs
Type: string

List.Filter.Fields.TVShows
Type: string

List.Filter.Movies
Type: mixed

List.Filter.MusicVideos
Type: mixed

List.Filter.Operators
Type: string

List.Filter.Rule
Type: object

Properties:
 * mixed value
 * List.Filter.Operators operator

List.Filter.Rule.Albums
Extends:
 * List.Filter.Rule

Properties:
 * List.Filter.Fields.Albums field

List.Filter.Rule.Artists
Extends:
 * List.Filter.Rule

Properties:
 * List.Filter.Fields.Artists field

List.Filter.Rule.Episodes
Extends:
 * List.Filter.Rule

Properties:
 * List.Filter.Fields.Episodes field

List.Filter.Rule.Movies
Extends:
 * List.Filter.Rule

Properties:
 * List.Filter.Fields.Movies field

List.Filter.Rule.MusicVideos
Extends:
 * List.Filter.Rule

Properties:
 * List.Filter.Fields.MusicVideos field

List.Filter.Rule.Songs
Extends:
 * List.Filter.Rule

Properties:
 * List.Filter.Fields.Songs field

List.Filter.Rule.TVShows
Extends:
 * List.Filter.Rule

Properties:
 * List.Filter.Fields.TVShows field

List.Filter.Songs
Type: mixed

List.Filter.TVShows
Type: mixed

List.Item.All
Extends:
 * List.Item.Base

Properties:
 * [ PVR.Channel.Type channeltype = "tv" ]
 * [ string channel = "" ]
 * [ string starttime = "" ]
 * [ string endtime = "" ]
 * [ integer channelnumber = 0 ]
 * [ boolean hidden = False ]
 * [ boolean locked = False ]

List.Item.Base
Extends:
 * Video.Details.File
 * Audio.Details.Media

Properties:
 * [ string sorttitle = "" ]
 * [ string productioncode = "" ]
 * [ Video.Cast cast ]
 * [ string votes = "" ]
 * [ integer duration = 0 ]
 * [ string trailer = "" ]
 * [ Library.Id albumid = -1 ]
 * [ string musicbrainzartistid = "" ]
 * [ string mpaa = "" ]
 * [ string albumlabel = "" ]
 * [ string originaltitle = "" ]
 * [ Array.String writer ]
 * [ Array.Integer albumartistid ]
 * [ string type = "unknown" ]
 * [ integer episode = 0 ]
 * [ string firstaired = "" ]
 * [ string showtitle = "" ]
 * [ Array.String country ]
 * [ Array.String mood ]
 * [ string set = "" ]
 * [ string musicbrainztrackid = "" ]
 * [ Array.String tag ]
 * [ string lyrics = "" ]
 * [ integer top250 = 0 ]
 * [ string comment = "" ]
 * [ string premiered = "" ]
 * [ Array.String showlink ]
 * [ Array.String style ]
 * [ string album = "" ]
 * [ Library.Id tvshowid = -1 ]
 * [ integer season = 0 ]
 * [ Array.String theme ]
 * [ string description = "" ]
 * [ Library.Id setid = -1 ]
 * [ integer track = 0 ]
 * [ string tagline = "" ]
 * [ string plotoutline = "" ]
 * [ integer watchedepisodes = 0 ]
 * [ Library.Id id = -1 ]
 * [ integer disc = 0 ]
 * [ Array.String albumartist ]
 * [ Array.String studio ]
 * [ object uniqueid ]
 * [ string episodeguide = "" ]
 * [ string imdbnumber = "" ]

List.Item.File
Extends:
 * List.Item.Base

Properties:
 * string filetype
 * [ integer size = 0 ]
 * [ string mimetype = "" ]
 * string file
 * [ string lastmodified = "" ]

List.Items.Sources
Type: array

List.Limits
Type: object

Properties:
 * [ List.Amount end = -1 ]
 * [ integer start = 0 ]

List.LimitsReturned
Type: object

Properties:
 * [ List.Amount end = -1 ]
 * integer total
 * [ integer start = 0 ]

List.Sort
Type: object

Properties:
 * [ string order = "ascending" ]
 * [ boolean ignorearticle = False ]
 * [ string method = "none" ]

Media.Artwork
Type: object

Properties:
 * [ Global.String.NotEmpty banner = "" ]
 * [ Global.String.NotEmpty poster = "" ]
 * [ Global.String.NotEmpty fanart = "" ]
 * [ Global.String.NotEmpty thumb = "" ]

Media.Details.Base
Extends:
 * Item.Details.Base

Properties:
 * [ string fanart = "" ]
 * [ string thumbnail = "" ]

Notifications.Item
Type: mixed

Notifications.Item.Type
Type: string

Optional.Boolean
Type: mixed

Optional.Integer
Type: mixed

Optional.Number
Type: mixed

Optional.String
Type: mixed

PVR.Channel.Type
Type: string

PVR.ChannelGroup.Id
Type: mixed

PVR.Details.Channel
Extends:
 * Item.Details.Base

Properties:
 * [ PVR.Channel.Type channeltype = "tv" ]
 * [ string thumbnail = "" ]
 * [ string channel = "" ]
 * [ boolean hidden = False ]
 * Library.Id channelid
 * [ boolean locked = False ]
 * [ string lastplayed = "" ]

PVR.Details.ChannelGroup
Extends:
 * Item.Details.Base

Properties:
 * PVR.Channel.Type channeltype
 * Library.Id channelgroupid

PVR.Details.ChannelGroup.Extended
Extends:
 * PVR.Details.ChannelGroup

Properties:
 * List.LimitsReturned limits
 * [ PVR.Details.Channel[] channels ]

PVR.Fields.Channel
Extends:
 * Item.Fields.Base

PVR.Property.Name
Type: string

PVR.Property.Value
Type: object

Properties:
 * [ boolean scanning = False ]
 * [ boolean recording = False ]
 * [ boolean available = False ]

Player.Audio.Stream
Type: object

Properties:
 * integer index
 * string language
 * string name

Player.Audio.Stream.Extended
Extends:
 * Player.Audio.Stream

Properties:
 * integer channels
 * string codec
 * integer bitrate

Player.Id
Type: integer

Player.Notifications.Data
Type: object

Properties:
 * Player.Notifications.Player player
 * Notifications.Item item

Player.Notifications.Player
Type: object

Properties:
 * [ integer speed = 0 ]
 * Player.Id playerid

Player.Notifications.Player.Seek
Extends:
 * Player.Notifications.Player

Properties:
 * [ Global.Time seekoffset ]
 * [ Global.Time time ]

Player.Position.Percentage
Type: number

Player.Position.Time
Type: object

Properties:
 * [ integer hours = 0 ]
 * [ integer milliseconds = 0 ]
 * [ integer seconds = 0 ]
 * [ integer minutes = 0 ]

Player.Property.Name
Type: string

Player.Property.Value
Type: object

Properties:
 * [ boolean canrepeat = False ]
 * [ boolean canmove = False ]
 * [ boolean canshuffle = False ]
 * [ integer speed = 0 ]
 * [ Player.Position.Percentage percentage = 0 ]
 * [ Playlist.Id playlistid = -1 ]
 * [ Player.Audio.Stream[] audiostreams ]
 * [ Playlist.Position position = -1 ]
 * [ Player.Repeat repeat = "off" ]
 * [ Player.Subtitle currentsubtitle ]
 * [ boolean canrotate = False ]
 * [ boolean canzoom = False ]
 * [ boolean canchangespeed = False ]
 * [ Player.Type type = "video" ]
 * [ boolean partymode = False ]
 * [ Player.Subtitle[] subtitles ]
 * [ boolean canseek = False ]
 * [ Global.Time time ]
 * [ Global.Time totaltime ]
 * [ boolean shuffled = False ]
 * [ Player.Audio.Stream.Extended currentaudiostream ]
 * [ boolean live = False ]
 * [ boolean subtitleenabled = False ]

Player.Repeat
Type: string

Player.Speed
Type: object

Properties:
 * [ integer speed = 0 ]

Player.Subtitle
Type: object

Properties:
 * integer index
 * string language
 * string name

Player.Type
Type: string

Playlist.Id
Type: integer

Playlist.Item
Type: mixed

Playlist.Position
Type: integer

Playlist.Property.Name
Type: string

Playlist.Property.Value
Type: object

Properties:
 * [ integer size = 0 ]
 * [ Playlist.Type type = "unknown" ]

Playlist.Type
Type: string

System.Property.Name
Type: string

System.Property.Value
Type: object

Properties:
 * [ boolean canshutdown = False ]
 * [ boolean canhibernate = False ]
 * [ boolean cansuspend = False ]
 * [ boolean canreboot = False ]

Video.Cast
Type: array

Video.Details.Base
Extends:
 * Media.Details.Base

Properties:
 * [ Media.Artwork art ]
 * [ integer playcount = 0 ]

Video.Details.Episode
Extends:
 * Video.Details.File

Properties:
 * [ Video.Cast cast ]
 * [ string productioncode = "" ]
 * [ number rating = 0 ]
 * [ string votes = "" ]
 * [ integer episode = 0 ]
 * [ string showtitle = "" ]
 * Library.Id episodeid
 * [ Library.Id tvshowid = -1 ]
 * [ integer season = 0 ]
 * [ string firstaired = "" ]
 * [ object uniqueid ]
 * [ Array.String writer ]
 * [ string originaltitle = "" ]

Video.Details.File
Extends:
 * Video.Details.Item

Properties:
 * [ Video.Streams streamdetails ]
 * [ Array.String director ]
 * [ Video.Resume resume ]
 * [ integer runtime = 0 ]

Video.Details.Item
Extends:
 * Video.Details.Media

Properties:
 * [ string dateadded = "" ]
 * [ string file = "" ]
 * [ string lastplayed = "" ]
 * [ string plot = "" ]

Video.Details.Media
Extends:
 * Video.Details.Base

Properties:
 * [ string title = "" ]

Video.Details.Movie
Extends:
 * Video.Details.File

Properties:
 * [ string plotoutline = "" ]
 * [ string sorttitle = "" ]
 * Library.Id movieid
 * [ Video.Cast cast ]
 * [ string votes = "" ]
 * [ Array.String showlink ]
 * [ integer top250 = 0 ]
 * [ string trailer = "" ]
 * [ integer year = 0 ]
 * [ Array.String country ]
 * [ Array.String studio ]
 * [ string set = "" ]
 * [ Array.String genre ]
 * [ string mpaa = "" ]
 * [ Library.Id setid = -1 ]
 * [ number rating = 0 ]
 * [ Array.String tag ]
 * [ string tagline = "" ]
 * [ Array.String writer ]
 * [ string originaltitle = "" ]
 * [ string imdbnumber = "" ]

Video.Details.MovieSet
Extends:
 * Video.Details.Media

Properties:
 * Library.Id setid

Video.Details.MovieSet.Extended
Extends:
 * Video.Details.MovieSet

Properties:
 * List.LimitsReturned limits
 * [ Video.Details.Movie[] movies ]

Video.Details.MusicVideo
Extends:
 * Video.Details.File

Properties:
 * [ Array.String genre ]
 * [ Array.String artist ]
 * Library.Id musicvideoid
 * [ Array.String tag ]
 * [ string album = "" ]
 * [ integer track = 0 ]
 * [ Array.String studio ]
 * [ integer year = 0 ]

Video.Details.Season
Extends:
 * Video.Details.Base

Properties:
 * [ string showtitle = "" ]
 * [ integer watchedepisodes = 0 ]
 * [ Library.Id tvshowid = -1 ]
 * [ integer episode = 0 ]
 * integer season

Video.Details.TVShow
Extends:
 * Video.Details.Item

Properties:
 * [ string sorttitle = "" ]
 * [ string mpaa = "" ]
 * [ string premiered = "" ]
 * [ integer year = 0 ]
 * [ integer episode = 0 ]
 * [ integer watchedepisodes = 0 ]
 * [ string votes = "" ]
 * [ number rating = 0 ]
 * Library.Id tvshowid
 * [ Array.String studio ]
 * [ integer season = 0 ]
 * [ Array.String genre ]
 * [ Video.Cast cast ]
 * [ string episodeguide = "" ]
 * [ Array.String tag ]
 * [ string originaltitle = "" ]
 * [ string imdbnumber = "" ]

Video.Fields.Episode
Extends:
 * Item.Fields.Base

Video.Fields.Movie
Extends:
 * Item.Fields.Base

Video.Fields.MovieSet
Extends:
 * Item.Fields.Base

Video.Fields.MusicVideo
Extends:
 * Item.Fields.Base

Video.Fields.Season
Extends:
 * Item.Fields.Base

Video.Fields.TVShow
Extends:
 * Item.Fields.Base

Video.Resume
Type: object

Properties:
 * [ number position = 0 ]
 * [ number total = 0 ]

Video.Streams
Type: object

Properties:
 * [ array[1..X] video ]
 * [ array[1..X] audio ]
 * [ array[1..X] subtitle ]

Application.OnVolumeChanged
The volume of the application has changed.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * integer volume
 * boolean muted

AudioLibrary.OnCleanFinished
The audio library has been cleaned.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

AudioLibrary.OnCleanStarted
An audio library clean operation has started.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

AudioLibrary.OnRemove
An audio item has been removed.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * Library.Id id
 * Notifications.Library.Audio.Type type

AudioLibrary.OnScanFinished
Scanning the audio library has been finished.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

AudioLibrary.OnScanStarted
An audio library scan has started.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

AudioLibrary.OnUpdate
An audio item has been updated.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * Library.Id id
 * string type

Input.OnInputFinished
The user has provided the requested input.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

Input.OnInputRequested
The user is requested to provide some information.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * string value
 * [ string title ]
 * string type

Player.OnPause
Playback of a media item has been paused. If there is no ID available extra information will be provided.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) Player.Notifications.Data data

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: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) Player.Notifications.Data data

Player.OnPropertyChanged
A property of the playing items has changed.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * [ Player.Property.Value property ]
 * Player.Notifications.Player player

Player.OnSeek
The playback position has been changed. If there is no ID available extra information will be provided.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * Player.Notifications.Player.Seek player
 * [ Notifications.Item item ]

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: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) Player.Notifications.Data data

Player.OnStop
Playback of a media item has been stopped. If there is no ID available extra information will be provided.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * boolean end
 * [ Notifications.Item item ]

Playlist.OnAdd
A playlist item has been added.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * [ Playlist.Position position ]
 * [ Notifications.Item item ]
 * Playlist.Id playlistid

Playlist.OnClear
A playlist item has been cleared.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * Playlist.Id playlistid

Playlist.OnRemove
A playlist item has been removed.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * [ Playlist.Position position ]
 * Playlist.Id playlistid

System.OnLowBattery
The system is on low battery.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

System.OnQuit
Kodi will be closed.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

System.OnRestart
The system will be restarted.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

System.OnSleep
The system will be suspended.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

System.OnWake
The system woke up from suspension.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

VideoLibrary.OnCleanFinished
The video library has been cleaned.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

VideoLibrary.OnCleanStarted
A video library clean operation has started.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

VideoLibrary.OnRemove
A video item has been removed.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * Library.Id id
 * Notifications.Library.Video.Type type

VideoLibrary.OnScanFinished
Scanning the video library has been finished.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

VideoLibrary.OnScanStarted
A video library scan has started.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) null data

VideoLibrary.OnUpdate
A video item has been updated.

Parameters: <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
 * 1) string sender
 * 2) object data

Properties:
 * Library.Id id
 * [ integer playcount = -1 ]
 * string type