User:Ronie

From Official Kodi Wiki
Revision as of 21:56, 23 May 2020 by Ronie (talk | contribs)
Jump to navigation Jump to search
Home icon grey.png   ▶ Development ▶ JSON-RPC API ▶ Ronie

Version 12 is the current development version of Kodi's JSON-RPC API and will be published with the release of v19.
This document has been updated to version 11.8.1. Recent changes are announced on the forum

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.


JSON-RPC 2.0 compatibility

Version Method calls Notifications
(server-side)
Notifications
(client-side)
Parameters
by-name
Parameters
by-position
Batch requests
Version 6 Yes Yes Yes Yes Yes Yes

Documentation (JSON Schema)

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 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

{
  "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 Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:

Addons           List, enable and execute addons
Application      Application information and control
AudioLibrary     Audio Library information
Favourites       Favourites GetFavourites and AddFavourite
Files            Shares information & filesystem listings
GUI              Window properties and activation
Input            Allows limited navigation within Kodi
JSONRPC          A variety of standard JSONRPC calls
Player           Manages all available players
Playlist         Playlist modification
Profiles         Support for Profiles operations to xbmc. 
PVR              Live TV control
Settings         Allows manipulation of Kodi settings.
System           System controls and information
Textures         Supplies GetTextures and RemoveTexture. Textures are images.
VideoLibrary     Video Library information
XBMC             Dumping ground for very Kodi specific operations

== Methods ===== Addons ======= Addons.ExecuteAddon ====Executes the given addon with the given parameters (if possible)
Permissions:* ExecuteAddonParameters:

# string addonid
# [mixed: object|array|string params = ""]
# [boolean wait = False]

Returns:

Type: string

==== Addons.GetAddonDetails ====Gets the details of a specific addon
Permissions:* ReadDataParameters:

# string addonid
# [Addon.Fields properties]

Returns:

Type: object
Properties:# Addon.Details addon
# List.LimitsReturned limits

==== Addons.GetAddons ====Gets all available addons
Permissions:* ReadDataParameters:

# [Addon.Types type = unknown]
# [Addon.Content content = unknown] (Content provided by the addon. Only considered for plugins and scripts.)
# [mixed: boolean|string enabled = all]
# [Addon.Fields properties]
# [List.Limits limits]
# [mixed: boolean|string installed = True]

Returns:

Type: object
Properties:# [arrayAddon.Details addons]
# List.LimitsReturned limits

==== Addons.SetAddonEnabled ====Enables/Disables a specific addon
Permissions:* ManageAddonParameters:

# string addonid
# Global.Toggle enabled

Returns:

Type: string

=== Application ======= Application.GetProperties ====Retrieves the values of the given properties
Permissions:* ReadDataParameters:

# array properties

Returns:

Type: Application.Property.Value

==== Application.Quit ====Quit application
Permissions:* ControlPowerReturns:

Type: string

==== Application.SetMute ====Toggle mute/unmute
Permissions:* ControlPlaybackParameters:

# Global.Toggle mute

Returns:

Type: boolean (Mute state)

==== Application.SetVolume ====Set the current volume
Permissions:* ControlPlaybackParameters:

# mixed: integer|Global.IncrementDecrement volume

Returns:

Type: integer

=== AudioLibrary ======= AudioLibrary.Clean ====Cleans the audio library from non-existent items
Permissions:* RemoveDataParameters:

# [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)

Returns:

Type: string

==== AudioLibrary.Export ====Exports all items from the audio library
Permissions:* WriteFileParameters:

# [mixed: object|object options]

Returns:

Type: string

==== AudioLibrary.GetAlbumDetails ====Retrieve details about a specific album
Permissions:* ReadDataParameters:

# Library.Id albumid
# [Audio.Fields.Album properties]

Returns:

Type: object
Properties:# [Audio.Details.Album albumdetails]

==== AudioLibrary.GetAlbums ====Retrieve all albums from specified artist (and role) or that has songs of the specified genre
Permissions:* ReadDataParameters:

# [Audio.Fields.Album properties]
# [List.Limits limits]
# [List.Sort sort]
# [mixed: object|object|object|object|object|object|object|object|List.Filter.Albums filter]
# [boolean includesingles = False]
# [boolean allroles = False] (Whether or not to include all roles when filtering by artist, rather than the default of excluding other contributions. When true it overrides any role filter value.)

Returns:

Type: object
Properties:# [arrayAudio.Details.Album albums]
# List.LimitsReturned limits

==== AudioLibrary.GetArtistDetails ====Retrieve details about a specific artist
Permissions:* ReadDataParameters:

# Library.Id artistid
# [Audio.Fields.Artist properties]

Returns:

Type: object
Properties:# [Audio.Details.Artist artistdetails]

==== AudioLibrary.GetArtists ====Retrieve all artists. For backward compatibility by default this implicity does not include those that only contribute other roles, however absolutely all artists can be returned using allroles=true
Permissions:* ReadDataParameters:

# [Optional.Boolean albumartistsonly = None] (Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used)
# [Audio.Fields.Artist properties]
# [List.Limits limits]
# [List.Sort sort]
# [mixed: object|object|object|object|object|object|object|object|object|object|object|object|object|object|object|List.Filter.Artists filter]
# [boolean allroles = False] (Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.)

Returns:

Type: object
Properties:# [arrayAudio.Details.Artist artists]
# List.LimitsReturned limits

==== AudioLibrary.GetGenres ====Retrieve all genres
Permissions:* ReadDataParameters:

# [Library.Fields.Genre properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# arrayLibrary.Details.Genre genres
# List.LimitsReturned limits

==== AudioLibrary.GetProperties ====Retrieves the values of the music library properties
Permissions:* ReadDataParameters:

# array properties

Returns:

Type: Audio.Property.Value

==== AudioLibrary.GetRecentlyAddedAlbums ====Retrieve recently added albums
Permissions:* ReadDataParameters:

# [Audio.Fields.Album properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# [arrayAudio.Details.Album albums]
# List.LimitsReturned limits

==== AudioLibrary.GetRecentlyAddedSongs ====Retrieve recently added songs
Permissions:* ReadDataParameters:

# [List.Amount albumlimit = -1] (The amount of recently added albums from which to return the songs)
# [Audio.Fields.Song properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayAudio.Details.Song songs]

==== AudioLibrary.GetRecentlyPlayedAlbums ====Retrieve recently played albums
Permissions:* ReadDataParameters:

# [Audio.Fields.Album properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# [arrayAudio.Details.Album albums]
# List.LimitsReturned limits

==== AudioLibrary.GetRecentlyPlayedSongs ====Retrieve recently played songs
Permissions:* ReadDataParameters:

# [Audio.Fields.Song properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayAudio.Details.Song songs]

==== AudioLibrary.GetRoles ====Retrieve all contributor roles
Permissions:* ReadDataParameters:

# [Audio.Fields.Role properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# arrayAudio.Details.Role roles

==== AudioLibrary.GetSongDetails ====Retrieve details about a specific song
Permissions:* ReadDataParameters:

# Library.Id songid
# [Audio.Fields.Song properties]

Returns:

Type: object
Properties:# [Audio.Details.Song songdetails]

==== AudioLibrary.GetSongs ====Retrieve all songs from specified album, artist or genre
Permissions:* ReadDataParameters:

# [Audio.Fields.Song properties]
# [List.Limits limits]
# [List.Sort sort]
# [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Songs filter]
# [boolean includesingles = True] (Only songs from albums are returned when false, but overidden when singlesonly parameter is true)
# [boolean allroles = False] (Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value.)
# [boolean singlesonly = False] (Only singles are returned when true, and overides includesingles parameter)

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayAudio.Details.Song songs]

==== AudioLibrary.GetSources ====Get all music sources, including unique ID
Permissions:* ReadDataParameters:

# [Library.Fields.Source properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# arrayLibrary.Details.Source sources

==== AudioLibrary.Scan ====Scans the audio sources for new library items
Permissions:* UpdateDataParameters:

# [string directory = ""]
# [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)

Returns:

Type: string

==== AudioLibrary.SetAlbumDetails ====Update the given album with the given details
Permissions:* UpdateDataParameters:

# Library.Id albumid
# [Optional.String title = None]
# [mixed: null|Array.String artist = None]
# [Optional.String description = None]
# [mixed: null|Array.String genre = None]
# [mixed: null|Array.String theme = None]
# [mixed: null|Array.String mood = None]
# [mixed: null|Array.String style = None]
# [Optional.String type = None]
# [Optional.String albumlabel = None]
# [Optional.Number rating = None]
# [Optional.Integer year = None]
# [Optional.Integer userrating = None]
# [Optional.Integer votes = None]
# [Optional.String musicbrainzalbumid = None]
# [Optional.String musicbrainzreleasegroupid = None]
# [Optional.String sortartist = None]
# [Optional.String displayartist = None]
# [mixed: null|Array.String musicbrainzalbumartistid = None]
# [mixed: null|Media.Artwork.Set art = None]
# [Optional.Boolean isboxset = None]
# [Optional.String releasedate = None]
# [Optional.String originaldate = None]

Returns:

Type: string

==== AudioLibrary.SetArtistDetails ====Update the given artist with the given details
Permissions:* UpdateDataParameters:

# Library.Id artistid
# [Optional.String artist = None]
# [mixed: null|Array.String instrument = None]
# [mixed: null|Array.String style = None]
# [mixed: null|Array.String mood = None]
# [Optional.String born = None]
# [Optional.String formed = None]
# [Optional.String description = None]
# [mixed: null|Array.String genre = None]
# [Optional.String died = None]
# [Optional.String disbanded = None]
# [mixed: null|Array.String yearsactive = None]
# [Optional.String musicbrainzartistid = None]
# [Optional.String sortname = None]
# [Optional.String type = None]
# [Optional.String gender = None]
# [Optional.String disambiguation = None]
# [mixed: null|Media.Artwork.Set art = None]

Returns:

Type: string

==== AudioLibrary.SetSongDetails ====Update the given song with the given details
Permissions:* UpdateDataParameters:

# Library.Id songid
# [Optional.String title = None]
# [mixed: null|Array.String artist = None]
# [mixed: null|Array.String genre = None]
# [Optional.Integer year = None]
# [Optional.Number rating = None]
# [Optional.Integer track = None]
# [Optional.Integer disc = None]
# [Optional.Integer duration = None]
# [Optional.String comment = None]
# [Optional.String musicbrainztrackid = None]
# [Optional.String musicbrainzartistid = None]
# [Optional.Integer playcount = None]
# [Optional.String lastplayed = None]
# [Optional.Integer userrating = None]
# [Optional.Integer votes = None]
# [Optional.String displayartist = None]
# [Optional.String sortartist = None]
# [Optional.String mood = None]
# [mixed: null|Media.Artwork.Set art = None]
# [Optional.String disctitle = None]
# [Optional.String releasedate = None]
# [Optional.String originaldate = None]
# [Optional.Integer bpm = None]

Returns:

Type: string

=== Favourites ======= Favourites.AddFavourite ====Add a favourite with the given details
Permissions:* UpdateDataParameters:

# string title
# Favourite.Type type
# [Optional.String path = None] (Required for media, script and androidapp favourites types)
# [Optional.String window = None] (Required for window favourite type)
# [Optional.String windowparameter = None]
# [Optional.String thumbnail = None]

Returns:

Type: string

==== Favourites.GetFavourites ====Retrieve all favourites
Permissions:* ReadDataParameters:

# [mixed: null|Favourite.Type type = None]
# [Favourite.Fields.Favourite properties]

Returns:

Type: object
Properties:# [arrayFavourite.Details.Favourite favourites]
# List.LimitsReturned limits

=== Files ======= Files.GetDirectory ====Get the directories and files in the given directory
Permissions:* ReadDataParameters:

# string directory
# [Files.Media media = files]
# [List.Fields.Files properties]
# [List.Sort sort]
# [List.Limits limits] (Limits are applied after getting the directory content thus retrieval is not faster when they are applied.)

Returns:

Type: object
Properties:# arrayList.Item.File files
# List.LimitsReturned limits

==== Files.GetFileDetails ====Get details for a specific file
Permissions:* ReadDataParameters:

# string file (Full path to the file)
# [Files.Media media = files]
# [List.Fields.Files properties]

Returns:

Type: object
Properties:# List.Item.File filedetails

==== Files.GetSources ====Get the sources of the media windows
Permissions:* ReadDataParameters:

# Files.Media media
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# List.Items.Sources sources

==== Files.SetFileDetails ====Update the given specific file with the given details
Permissions:* UpdateDataParameters:

# string file (Full path to the file)
# Files.Media media (File type to update correct database. Currently only "video" is supported.)
# [Optional.Integer playcount = None]
# [Optional.String lastplayed = None] (Setting a valid lastplayed without a playcount will force playcount to 1.)
# [mixed: null|Video.Resume resume = None]

Returns:

Type: string

=== GUI ======= GUI.ActivateWindow ====Activates the given window
Permissions:* ControlGUIParameters:

# GUI.Window window
# [array parameters]

Returns:

Type: string

==== GUI.GetProperties ====Retrieves the values of the given properties
Permissions:* ReadDataParameters:

# array properties

Returns:

Type: GUI.Property.Value

==== GUI.GetStereoscopicModes ====Returns the supported stereoscopic modes of the GUI
Permissions:* ReadDataReturns:

Type: object
Properties:# [arrayGUI.Stereoscopy.Mode stereoscopicmodes]

==== GUI.SetFullscreen ====Toggle fullscreen/GUI
Permissions:* ControlGUIParameters:

# Global.Toggle fullscreen

Returns:

Type: boolean (Fullscreen state)

==== GUI.SetStereoscopicMode ====Sets the stereoscopic mode of the GUI to the given mode
Permissions:* ControlGUIParameters:

# string mode

Returns:

Type: string

==== GUI.ShowNotification ====Shows a GUI notification
Permissions:* ControlGUIParameters:

# string title
# string message
# [mixed: string|string image = ""]
# [integer displaytime = 5000] (The time in milliseconds the notification will be visible)

Returns:

Type: string

=== Input ======= Input.Back ====Goes back in GUI
Permissions:* NavigateReturns:

Type: string

==== Input.ButtonEvent ====Send a button press event
Permissions:* NavigateParameters:

# string button (Button name)
# string keymap (Keymap name (KB, XG, R1, or R2))
# [integer holdtime = 0] (Number of milliseconds to simulate button hold.)

Returns:

Type: string

==== Input.ContextMenu ====Shows the context menu
Permissions:* NavigateReturns:

Type: string

==== Input.Down ====Navigate down in GUI
Permissions:* NavigateReturns:

Type: string

==== Input.ExecuteAction ====Execute a specific action
Permissions:* NavigateParameters:

# Input.Action action

Returns:

Type: string

==== Input.Home ====Goes to home window in GUI
Permissions:* NavigateReturns:

Type: string

==== Input.Info ====Shows the information dialog
Permissions:* NavigateReturns:

Type: string

==== Input.Left ====Navigate left in GUI
Permissions:* NavigateReturns:

Type: string

==== Input.Right ====Navigate right in GUI
Permissions:* NavigateReturns:

Type: string

==== Input.Select ====Select current item in GUI
Permissions:* NavigateReturns:

Type: string

==== Input.SendText ====Send a generic (unicode) text
Permissions:* NavigateParameters:

# string text (Unicode text)
# [boolean done = True] (Whether this is the whole input or not (closes an open input dialog if true).)

Returns:

Type: string

==== Input.ShowCodec ====Show codec information of the playing item
Permissions:* NavigateReturns:

Type: string

==== Input.ShowOSD ====Show the on-screen display for the current player
Permissions:* NavigateReturns:

Type: string

==== Input.ShowPlayerProcessInfo ====Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...
Permissions:* NavigateReturns:

Type: string

==== Input.Up ====Navigate up in GUI
Permissions:* NavigateReturns:

Type: string

=== JSONRPC ======= JSONRPC.Introspect ====Enumerates all actions and descriptions
Permissions:* ReadDataParameters:

# [boolean getdescriptions = True]
# [boolean getmetadata = False]
# [boolean filterbytransport = True]
# [object filter]

Returns:

Type: object

==== JSONRPC.NotifyAll ====Notify all other connected clients
Permissions:* ReadDataParameters:

# string sender
# string message
# [any data = None]

Returns:

Type: any

==== JSONRPC.Permission ====Retrieve the clients permissions
Permissions:* ReadDataReturns:

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

==== JSONRPC.Ping ====Ping responder
Permissions:* ReadDataReturns:

Type: string

==== JSONRPC.Version ====Retrieve the JSON-RPC protocol version.
Permissions:* ReadDataReturns:

Type: object
Properties:# object version

=== PVR ======= PVR.AddTimer ====Adds a timer to record the given show one times or a timer rule to record all showings of the given show
Permissions:* ControlPVRParameters:

# Library.Id broadcastid (the broadcast id of the item to record)
# [boolean timerrule = False] (controls whether to create a timer rule or a onetime timer)

Returns:

Type: string

==== PVR.DeleteTimer ====Deletes a onetime timer or a timer rule
Permissions:* ControlPVRParameters:

# Library.Id timerid (the id of the onetime timer or timer rule to delete)

Returns:

Type: string

==== PVR.GetBroadcastDetails ====Retrieves the details of a specific broadcast
Permissions:* ReadDataParameters:

# Library.Id broadcastid
# [PVR.Fields.Broadcast properties]

Returns:

Type: object
Properties:# [PVR.Details.Broadcast broadcastdetails]

==== PVR.GetBroadcasts ====Retrieves the program of a specific channel
Permissions:* ReadDataParameters:

# Library.Id channelid
# [PVR.Fields.Broadcast properties]
# [List.Limits limits]

Returns:

Type: object
Properties:# arrayPVR.Details.Broadcast broadcasts
# List.LimitsReturned limits

==== PVR.GetChannelDetails ====Retrieves the details of a specific channel
Permissions:* ReadDataParameters:

# Library.Id channelid
# [PVR.Fields.Channel properties]

Returns:

Type: object
Properties:# [PVR.Details.Channel channeldetails]

==== PVR.GetChannelGroupDetails ====Retrieves the details of a specific channel group
Permissions:* ReadDataParameters:

# PVR.ChannelGroup.Id channelgroupid
# [object channels]

Returns:

Type: object
Properties:# [PVR.Details.ChannelGroup.Extended channelgroupdetails]

==== PVR.GetChannelGroups ====Retrieves the channel groups for the specified type
Permissions:* ReadDataParameters:

# PVR.Channel.Type channeltype
# [List.Limits limits]

Returns:

Type: object
Properties:# arrayPVR.Details.ChannelGroup channelgroups
# List.LimitsReturned limits

==== PVR.GetChannels ====Retrieves the channel list
Permissions:* ReadDataParameters:

# PVR.ChannelGroup.Id channelgroupid
# [PVR.Fields.Channel properties]
# [List.Limits limits]

Returns:

Type: object
Properties:# arrayPVR.Details.Channel channels
# List.LimitsReturned limits

==== PVR.GetProperties ====Retrieves the values of the given properties
Permissions:* ReadDataParameters:

# array properties

Returns:

Type: PVR.Property.Value

==== PVR.GetRecordingDetails ====Retrieves the details of a specific recording
Permissions:* ReadDataParameters:

# Library.Id recordingid
# [PVR.Fields.Recording properties]

Returns:

Type: object
Properties:# [PVR.Details.Recording recordingdetails]

==== PVR.GetRecordings ====Retrieves the recordings
Permissions:* ReadDataParameters:

# [PVR.Fields.Recording properties]
# [List.Limits limits]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# arrayPVR.Details.Recording recordings

==== PVR.GetTimerDetails ====Retrieves the details of a specific timer
Permissions:* ReadDataParameters:

# Library.Id timerid
# [PVR.Fields.Timer properties]

Returns:

Type: object
Properties:# [PVR.Details.Timer timerdetails]

==== PVR.GetTimers ====Retrieves the timers
Permissions:* ReadDataParameters:

# [PVR.Fields.Timer properties]
# [List.Limits limits]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# arrayPVR.Details.Timer timers

==== PVR.Record ====Toggle recording of a channel
Permissions:* ControlPVRParameters:

# [Global.Toggle record = toggle]
# [mixed: string|Library.Id channel = current]

Returns:

Type: string

==== PVR.Scan ====Starts a channel scan
Permissions:* ControlPVRReturns:

Type: string

==== PVR.ToggleTimer ====Creates or deletes a onetime timer or timer rule for a given show. If it exists, it will be deleted. If it does not exist, it will be created
Permissions:* ControlPVRParameters:

# Library.Id broadcastid (the broadcast id of the item to toggle a onetime timer or time rule for)
# [boolean timerrule = False] (controls whether to create / delete a timer rule or a onetime timer)

Returns:

Type: string

=== Player ======= Player.GetActivePlayers ====Returns all active players
Permissions:* ReadDataReturns:

Type: array

==== Player.GetItem ====Retrieves the currently played item
Permissions:* ReadDataParameters:

# Player.Id playerid
# [List.Fields.All properties]

Returns:

Type: object
Properties:# List.Item.All item

==== Player.GetPlayers ====Get a list of available players
Permissions:* ReadDataParameters:

# [string media = all]

Returns:

Type: array

==== Player.GetProperties ====Retrieves the values of the given properties
Permissions:* ReadDataParameters:

# Player.Id playerid
# array properties

Returns:

Type: Player.Property.Value

==== Player.GetViewMode ====Get view mode of video player
Permissions:* ReadDataReturns:

Type: object
Properties:# boolean nonlinearstretch
# number pixelratio
# number verticalshift
# Player.ViewMode viewmode
# number zoom

==== Player.GoTo ====Go to previous/next/specific item in the playlist
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: string|Playlist.Position to

Returns:

Type: string

==== Player.Move ====If picture is zoomed move viewport left/right/up/down otherwise skip previous/next
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# string direction

Returns:

Type: string

==== Player.Open ====Start playback of either the playlist with the given ID, a slideshow with the pictures from the given directory or a single file or an item from the database.
Permissions:* ControlPlaybackParameters:

# [mixed: object|Playlist.Item|object|object|object|object item]
# [object options]

Returns:

Type: string

==== Player.PlayPause ====Pauses or unpause playback and returns the new state
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# [Global.Toggle play = toggle]

Returns:

Type: Player.Speed

==== Player.Rotate ====Rotates current picture
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# [string value = clockwise]

Returns:

Type: string

==== Player.Seek ====Seek through the playing item
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: object|object|object|object value

Returns:

Type: object
Properties:# [Player.Position.Percentage percentage]
# [Global.Time time]
# [Global.Time totaltime]

==== Player.SetAudioStream ====Set the audio stream played by the player
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: string|integer stream

Returns:

Type: string

==== Player.SetPartymode ====Turn partymode on or off
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# Global.Toggle partymode

Returns:

Type: string

==== Player.SetRepeat ====Set the repeat mode of the player
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: Player.Repeat|string repeat

Returns:

Type: string

==== Player.SetShuffle ====Shuffle/Unshuffle items in the player
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# Global.Toggle shuffle

Returns:

Type: string

==== Player.SetSpeed ====Set the speed of the current playback
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: integer|Global.IncrementDecrement speed

Returns:

Type: Player.Speed

==== Player.SetSubtitle ====Set the subtitle displayed by the player
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: string|integer subtitle
# [boolean enable = False] (Whether to enable subtitles to be displayed after setting the new subtitle)

Returns:

Type: string

==== Player.SetVideoStream ====Set the video stream played by the player
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: string|integer stream

Returns:

Type: string

==== Player.SetViewMode ====Set view mode of video player
Permissions:* ControlPlaybackParameters:

# mixed: Player.CustomViewMode|Player.ViewMode viewmode

Returns:

Type: string

==== Player.Stop ====Stops playback
Permissions:* ControlPlaybackParameters:

# Player.Id playerid

Returns:

Type: string

==== Player.Zoom ====Zoom current picture
Permissions:* ControlPlaybackParameters:

# Player.Id playerid
# mixed: string|integer zoom

Returns:

Type: string

=== Playlist ======= Playlist.Add ====Add item(s) to playlist
Permissions:* ControlPlaybackParameters:

# Playlist.Id playlistid
# mixed: Playlist.Item|array item

Returns:

Type: string

==== Playlist.Clear ====Clear playlist
Permissions:* ControlPlaybackParameters:

# Playlist.Id playlistid

Returns:

Type: string

==== Playlist.GetItems ====Get all items from playlist
Permissions:* ReadDataParameters:

# Playlist.Id playlistid
# [List.Fields.All properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# arrayList.Item.All items
# List.LimitsReturned limits

==== Playlist.GetPlaylists ====Returns all existing playlists
Permissions:* ReadDataReturns:

Type: array

==== Playlist.GetProperties ====Retrieves the values of the given properties
Permissions:* ReadDataParameters:

# Playlist.Id playlistid
# array properties

Returns:

Type: Playlist.Property.Value

==== Playlist.Insert ====Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).
Permissions:* ControlPlaybackParameters:

# Playlist.Id playlistid
# Playlist.Position position
# mixed: Playlist.Item|array item

Returns:

Type: string

==== Playlist.Remove ====Remove item from playlist. Does not work for picture playlists (aka slideshows).
Permissions:* ControlPlaybackParameters:

# Playlist.Id playlistid
# Playlist.Position position

Returns:

Type: string

==== Playlist.Swap ====Swap items in the playlist. Does not work for picture playlists (aka slideshows).
Permissions:* ControlPlaybackParameters:

# Playlist.Id playlistid
# Playlist.Position position1
# Playlist.Position position2

Returns:

Type: string

=== Profiles ======= Profiles.GetCurrentProfile ====Retrieve the current profile
Permissions:* ReadDataParameters:

# [Profiles.Fields.Profile properties]

Returns:

Type: Profiles.Details.Profile

==== Profiles.GetProfiles ====Retrieve all profiles
Permissions:* ReadDataParameters:

# [Profiles.Fields.Profile properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# arrayProfiles.Details.Profile profiles

==== Profiles.LoadProfile ====Load the specified profile
Permissions:* NavigateParameters:

# string profile (Profile name)
# [boolean prompt = False] (Prompt for password)
# [Profiles.Password password]

Returns:

Type: string

=== Settings ======= Settings.GetCategories ====Retrieves all setting categories
Permissions:* ReadDataParameters:

# [Setting.Level level = standard]
# [string section = ""]
# [string properties]

Returns:

Type: object
Properties:# [arraySetting.Details.Category categories]

==== Settings.GetSections ====Retrieves all setting sections
Permissions:* ReadDataParameters:

# [Setting.Level level = standard]
# [Setting.Level properties]

Returns:

Type: object
Properties:# [arraySetting.Details.Section sections]

==== Settings.GetSettingValue ====Retrieves the value of a setting
Permissions:* ReadDataParameters:

# string setting

Returns:

Type: object
Properties:# Setting.Value.Extended value

==== Settings.GetSettings ====Retrieves all settings
Permissions:* ReadDataParameters:

# [Setting.Level level = standard]
# [mixed: object filter]

Returns:

Type: object
Properties:# [arraySetting.Details.Setting settings]

==== Settings.ResetSettingValue ====Resets the value of a setting
Permissions:* ReadDataParameters:

# string setting

Returns:

Type: string

==== Settings.SetSettingValue ====Changes the value of a setting
Permissions:* ReadDataParameters:

# string setting
# Setting.Value.Extended value

Returns:

Type: boolean

=== System ======= System.EjectOpticalDrive ====Ejects or closes the optical disc drive (if available)
Permissions:* ControlSystemReturns:

Type: string

==== System.GetProperties ====Retrieves the values of the given properties
Permissions:* ReadDataParameters:

# array properties

Returns:

Type: System.Property.Value

==== System.Hibernate ====Puts the system running Kodi into hibernate mode
Permissions:* ControlPowerReturns:

Type: string

==== System.Reboot ====Reboots the system running Kodi
Permissions:* ControlPowerReturns:

Type: string

==== System.Shutdown ====Shuts the system running Kodi down
Permissions:* ControlPowerReturns:

Type: string

==== System.Suspend ====Suspends the system running Kodi
Permissions:* ControlPowerReturns:

Type: string

=== Textures ======= Textures.GetTextures ====Retrieve all textures
Permissions:* ReadDataParameters:

# [Textures.Fields.Texture properties]
# [List.Filter.Textures filter]

Returns:

Type: object
Properties:# arrayTextures.Details.Texture textures

==== Textures.RemoveTexture ====Remove the specified texture
Permissions:* RemoveDataParameters:

# Library.Id textureid (Texture database identifier)

Returns:

Type: string

=== VideoLibrary ======= VideoLibrary.Clean ====Cleans the video library for non-existent items
Permissions:* RemoveDataParameters:

# [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)
# [string content = video] (Content type to clean for)

Returns:

Type: string

==== VideoLibrary.Export ====Exports all items from the video library
Permissions:* WriteFileParameters:

# [mixed: object|object options]

Returns:

Type: string

==== VideoLibrary.GetEpisodeDetails ====Retrieve details about a specific tv show episode
Permissions:* ReadDataParameters:

# Library.Id episodeid
# [Video.Fields.Episode properties]

Returns:

Type: object
Properties:# [Video.Details.Episode episodedetails]

==== VideoLibrary.GetEpisodes ====Retrieve all tv show episodes
Permissions:* ReadDataParameters:

# [Library.Id tvshowid = -1]
# [integer season = -1]
# [Video.Fields.Episode properties]
# [List.Limits limits]
# [List.Sort sort]
# [mixed: object|object|object|object|object|List.Filter.Episodes filter]

Returns:

Type: object
Properties:# [arrayVideo.Details.Episode episodes]
# List.LimitsReturned limits

==== VideoLibrary.GetGenres ====Retrieve all genres
Permissions:* ReadDataParameters:

# string type
# [Library.Fields.Genre properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# arrayLibrary.Details.Genre genres
# List.LimitsReturned limits

==== VideoLibrary.GetInProgressTVShows ====Retrieve all in progress tvshows
Permissions:* ReadDataParameters:

# [Video.Fields.TVShow properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.TVShow tvshows]

==== VideoLibrary.GetMovieDetails ====Retrieve details about a specific movie
Permissions:* ReadDataParameters:

# Library.Id movieid
# [Video.Fields.Movie properties]

Returns:

Type: object
Properties:# [Video.Details.Movie moviedetails]

==== VideoLibrary.GetMovieSetDetails ====Retrieve details about a specific movie set
Permissions:* ReadDataParameters:

# Library.Id setid
# [Video.Fields.MovieSet properties]
# [object movies]

Returns:

Type: object
Properties:# [Video.Details.MovieSet.Extended setdetails]

==== VideoLibrary.GetMovieSets ====Retrieve all movie sets
Permissions:* ReadDataParameters:

# [Video.Fields.MovieSet properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.MovieSet sets]

==== VideoLibrary.GetMovies ====Retrieve all movies
Permissions:* ReadDataParameters:

# [Video.Fields.Movie properties]
# [List.Limits limits]
# [List.Sort sort]
# [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Movies filter]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.Movie movies]

==== VideoLibrary.GetMusicVideoDetails ====Retrieve details about a specific music video
Permissions:* ReadDataParameters:

# Library.Id musicvideoid
# [Video.Fields.MusicVideo properties]

Returns:

Type: object
Properties:# [Video.Details.MusicVideo musicvideodetails]

==== VideoLibrary.GetMusicVideos ====Retrieve all music videos
Permissions:* ReadDataParameters:

# [Video.Fields.MusicVideo properties]
# [List.Limits limits]
# [List.Sort sort]
# [mixed: object|object|object|object|object|object|object|List.Filter.MusicVideos filter]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.MusicVideo musicvideos]

==== VideoLibrary.GetRecentlyAddedEpisodes ====Retrieve all recently added tv episodes
Permissions:* ReadDataParameters:

# [Video.Fields.Episode properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# [arrayVideo.Details.Episode episodes]
# List.LimitsReturned limits

==== VideoLibrary.GetRecentlyAddedMovies ====Retrieve all recently added movies
Permissions:* ReadDataParameters:

# [Video.Fields.Movie properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.Movie movies]

==== VideoLibrary.GetRecentlyAddedMusicVideos ====Retrieve all recently added music videos
Permissions:* ReadDataParameters:

# [Video.Fields.MusicVideo properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.MusicVideo musicvideos]

==== VideoLibrary.GetSeasonDetails ====Retrieve details about a specific tv show season
Permissions:* ReadDataParameters:

# Library.Id seasonid
# [Video.Fields.Season properties]

Returns:

Type: object
Properties:# [Video.Details.Season seasondetails]

==== VideoLibrary.GetSeasons ====Retrieve all tv seasons
Permissions:* ReadDataParameters:

# [Library.Id tvshowid = -1]
# [Video.Fields.Season properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.Season seasons]

==== VideoLibrary.GetTVShowDetails ====Retrieve details about a specific tv show
Permissions:* ReadDataParameters:

# Library.Id tvshowid
# [Video.Fields.TVShow properties]

Returns:

Type: object
Properties:# [Video.Details.TVShow tvshowdetails]

==== VideoLibrary.GetTVShows ====Retrieve all tv shows
Permissions:* ReadDataParameters:

# [Video.Fields.TVShow properties]
# [List.Limits limits]
# [List.Sort sort]
# [mixed: object|object|object|object|object|object|List.Filter.TVShows filter]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# [arrayVideo.Details.TVShow tvshows]

==== VideoLibrary.GetTags ====Retrieve all tags
Permissions:* ReadDataParameters:

# string type
# [Library.Fields.Tag properties]
# [List.Limits limits]
# [List.Sort sort]

Returns:

Type: object
Properties:# List.LimitsReturned limits
# arrayLibrary.Details.Tag tags

==== VideoLibrary.RefreshEpisode ====Refresh the given episode in the library
Permissions:* UpdateDataParameters:

# Library.Id episodeid
# [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
# [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

==== VideoLibrary.RefreshMovie ====Refresh the given movie in the library
Permissions:* UpdateDataParameters:

# Library.Id movieid
# [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
# [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

==== VideoLibrary.RefreshMusicVideo ====Refresh the given music video in the library
Permissions:* UpdateDataParameters:

# Library.Id musicvideoid
# [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
# [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

==== VideoLibrary.RefreshTVShow ====Refresh the given tv show in the library
Permissions:* UpdateDataParameters:

# Library.Id tvshowid
# [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
# [boolean refreshepisodes = False] (Whether or not to refresh all episodes belonging to the TV show.)
# [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

==== VideoLibrary.RemoveEpisode ====Removes the given episode from the library
Permissions:* RemoveDataParameters:

# Library.Id episodeid

Returns:

Type: string

==== VideoLibrary.RemoveMovie ====Removes the given movie from the library
Permissions:* RemoveDataParameters:

# Library.Id movieid

Returns:

Type: string

==== VideoLibrary.RemoveMusicVideo ====Removes the given music video from the library
Permissions:* RemoveDataParameters:

# Library.Id musicvideoid

Returns:

Type: string

==== VideoLibrary.RemoveTVShow ====Removes the given tv show from the library
Permissions:* RemoveDataParameters:

# Library.Id tvshowid

Returns:

Type: string

==== VideoLibrary.Scan ====Scans the video sources for new library items
Permissions:* UpdateDataParameters:

# [string directory = ""]
# [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)

Returns:

Type: string

==== VideoLibrary.SetEpisodeDetails ====Update the given episode with the given details
Permissions:* UpdateDataParameters:

# Library.Id episodeid
# [Optional.String title = None]
# [Optional.Integer playcount = None]
# [Optional.Integer runtime = None] (Runtime in seconds)
# [mixed: null|Array.String director = None]
# [Optional.String plot = None]
# [Optional.Number rating = None]
# [Optional.String votes = None]
# [Optional.String lastplayed = None]
# [mixed: null|Array.String writer = None]
# [Optional.String firstaired = None]
# [Optional.String productioncode = None]
# [Optional.Integer season = None]
# [Optional.Integer episode = None]
# [Optional.String originaltitle = None]
# [Optional.String thumbnail = None]
# [Optional.String fanart = None]
# [mixed: null|Media.Artwork.Set art = None]
# [mixed: null|Video.Resume resume = None]
# [Optional.Integer userrating = None]
# [Video.Ratings.Set ratings]
# [Optional.String dateadded = None]
# [mixed: null|Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

==== VideoLibrary.SetMovieDetails ====Update the given movie with the given details
Permissions:* UpdateDataParameters:

# Library.Id movieid
# [Optional.String title = None]
# [Optional.Integer playcount = None]
# [Optional.Integer runtime = None] (Runtime in seconds)
# [mixed: null|Array.String director = None]
# [mixed: null|Array.String studio = None]
# [Optional.Integer year = None] (linked with premiered. Overridden by premiered parameter)
# [Optional.String plot = None]
# [mixed: null|Array.String genre = None]
# [Optional.Number rating = None]
# [Optional.String mpaa = None]
# [Optional.String imdbnumber = None]
# [Optional.String votes = None]
# [Optional.String lastplayed = None]
# [Optional.String originaltitle = None]
# [Optional.String trailer = None]
# [Optional.String tagline = None]
# [Optional.String plotoutline = None]
# [mixed: null|Array.String writer = None]
# [mixed: null|Array.String country = None]
# [Optional.Integer top250 = None]
# [Optional.String sorttitle = None]
# [Optional.String set = None]
# [mixed: null|Array.String showlink = None]
# [Optional.String thumbnail = None]
# [Optional.String fanart = None]
# [mixed: null|Array.String tag = None]
# [mixed: null|Media.Artwork.Set art = None]
# [mixed: null|Video.Resume resume = None]
# [Optional.Integer userrating = None]
# [Video.Ratings.Set ratings]
# [Optional.String dateadded = None]
# [Optional.String premiered = None] (linked with year. Overrides year)
# [mixed: null|Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

==== VideoLibrary.SetMovieSetDetails ====Update the given movie set with the given details
Permissions:* UpdateDataParameters:

# Library.Id setid
# [Optional.String title = None]
# [mixed: null|Media.Artwork.Set art = None]
# [Optional.String plot = None]

Returns:

Type: string

==== VideoLibrary.SetMusicVideoDetails ====Update the given music video with the given details
Permissions:* UpdateDataParameters:

# Library.Id musicvideoid
# [Optional.String title = None]
# [Optional.Integer playcount = None]
# [Optional.Integer runtime = None] (Runtime in seconds)
# [mixed: null|Array.String director = None]
# [mixed: null|Array.String studio = None]
# [Optional.Integer year = None] (linked with premiered. Overridden by premiered parameter)
# [Optional.String plot = None]
# [Optional.String album = None]
# [mixed: null|Array.String artist = None]
# [mixed: null|Array.String genre = None]
# [Optional.Integer track = None]
# [Optional.String lastplayed = None]
# [Optional.String thumbnail = None]
# [Optional.String fanart = None]
# [mixed: null|Array.String tag = None]
# [mixed: null|Media.Artwork.Set art = None]
# [mixed: null|Video.Resume resume = None]
# [Optional.Number rating = None]
# [Optional.Integer userrating = None]
# [Optional.String dateadded = None]
# [Optional.String premiered = None] (linked with year. Overrides year)

Returns:

Type: string

==== VideoLibrary.SetSeasonDetails ====Update the given season with the given details
Permissions:* UpdateDataParameters:

# Library.Id seasonid
# [mixed: null|Media.Artwork.Set art = None]
# [Optional.Integer userrating = None]
# [Optional.String title = None]

Returns:

Type: string

==== VideoLibrary.SetTVShowDetails ====Update the given tvshow with the given details
Permissions:* UpdateDataParameters:

# Library.Id tvshowid
# [Optional.String title = None]
# [Optional.Integer playcount = None]
# [mixed: null|Array.String studio = None]
# [Optional.String plot = None]
# [mixed: null|Array.String genre = None]
# [Optional.Number rating = None]
# [Optional.String mpaa = None]
# [Optional.String imdbnumber = None]
# [Optional.String premiered = None]
# [Optional.String votes = None]
# [Optional.String lastplayed = None]
# [Optional.String originaltitle = None]
# [Optional.String sorttitle = None]
# [Optional.String episodeguide = None]
# [Optional.String thumbnail = None]
# [Optional.String fanart = None]
# [mixed: null|Array.String tag = None]
# [mixed: null|Media.Artwork.Set art = None]
# [Optional.Integer userrating = None]
# [Video.Ratings.Set ratings]
# [Optional.String dateadded = None]
# [Optional.Integer runtime = None] (Runtime in seconds)
# [Optional.String status = None] (Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended')
# [mixed: null|Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

=== XBMC ======= XBMC.GetInfoBooleans ====Retrieve info booleans about Kodi and the system
Permissions:* ReadDataParameters:

# array booleans

Returns:

Type: object (Object containing key-value pairs of the retrieved info booleans)

==== XBMC.GetInfoLabels ====Retrieve info labels about Kodi and the system
Permissions:* ReadDataParameters:

# array labels (See http://kodi.wiki/view/InfoLabels for a list of possible info labels)

Returns:

Type: object (Object containing key-value pairs of the retrieved info labels)

== Global Types ===== Addon ======= Addon.Content ====Type: string

==== Addon.Details ====Extends:* Item.Details.BaseProperties:

* string addonid* [string author]* [mixed: boolean|string broken]* [array dependencies]* [string description]* [string disclaimer]* [boolean enabled]* [array extrainfo]* [string fanart]* [boolean installed]* [string name]* [string path]* [integer rating]* [string summary]* [string thumbnail]* Addon.Types type* [string version]

==== Addon.Fields ====Extends:* Item.Fields.Base

==== Addon.Types ====Type: string

=== Application ======= Application.Property.Name ====Type: string

==== Application.Property.Value ====Type: object
Properties:

* [string language]* [boolean muted]* [string name]* [Array.String sorttokens]* [object version]* [integer volume]

=== Array ======= Array.Integer ====Type: array

==== Array.String ====Type: array

=== Audio ======= Audio.Album.ReleaseType ====Type: string

==== Audio.Artist.Roles ====Type: array

==== Audio.Contributors ====Type: array

==== Audio.Details.Album ====Extends:* Audio.Details.MediaProperties:

* Library.Id albumid* [string albumlabel]* [boolean compilation]* [string description]* [boolean isboxset]* [string lastplayed]* [Array.String mood]* [string musicbrainzalbumid]* [string musicbrainzreleasegroupid]* [integer playcount]* [Audio.Album.ReleaseType releasetype = album]* [Audio.Details.Genres songgenres]* [Array.Integer sourceid]* [Array.String style]* [Array.String theme]* [integer totaldiscs]* [string type]

==== Audio.Details.Artist ====Extends:* Audio.Details.BaseProperties:

* string artist* Library.Id artistid* [string born]* [boolean compilationartist]* [string description]* [string died]* [string disambiguation]* [string disbanded]* [string formed]* [string gender]* [Array.String instrument]* [boolean isalbumartist]* [Array.String mood]* [Array.String musicbrainzartistid]* [Audio.Artist.Roles roles]* [Audio.Details.Genres songgenres]* [string sortname]* [Array.Integer sourceid]* [Array.String style]* [string type]* [Array.String yearsactive]

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

* [Media.Artwork art]* [string dateadded]* [Array.String genre]

==== Audio.Details.Genres ====Type: array

==== Audio.Details.Media ====Extends:* Audio.Details.BaseProperties:

* [Array.String artist]* [Array.Integer artistid]* [string displayartist]* [Array.String musicbrainzalbumartistid]* [string originaldate]* [number rating]* [string releasedate]* [string sortartist]* [string title]* [integer userrating]* [integer votes]* [integer year]

==== Audio.Details.Role ====Extends:* Item.Details.BaseProperties:

* Library.Id roleid* [string title]

==== Audio.Details.Song ====Extends:* Audio.Details.MediaProperties:

* [string album]* [Array.String albumartist]* [Array.Integer albumartistid]* [Library.Id albumid = -1]* [Audio.Album.ReleaseType albumreleasetype = album]* [any bitrate]* [any bpm]* [any channels]* [string comment]* [Audio.Contributors contributors]* [integer disc]* [string disctitle]* [string displaycomposer]* [string displayconductor]* [string displaylyricist]* [string displayorchestra]* [integer duration]* [string file]* [Array.Integer genreid]* [string lastplayed]* [string lyrics]* [string mood]* [Array.String musicbrainzartistid]* [string musicbrainztrackid]* [integer playcount]* [any samplerate]* Library.Id songid* [Array.Integer sourceid]* [integer track]

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

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

==== Audio.Fields.Role ====Extends:* Item.Fields.Base

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

==== Audio.Property.Name ====Type: string

==== Audio.Property.Value ====Type: object
Properties:

* [string librarylastupdated]* [Library.Id missingartistid = -1]

=== Configuration ======= Configuration ====Type: object
Properties:

* Configuration.Notifications notifications

==== Configuration.Notifications ====Type: object
Properties:

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

=== Favourite ======= Favourite.Details.Favourite ====Type: object
Properties:

* [string path]* [string thumbnail]* string title* Favourite.Type type* [string window]* [string windowparameter]

==== Favourite.Fields.Favourite ====Extends:* Item.Fields.Base

==== Favourite.Type ====Type: string

=== Files ======= Files.Media ====Type: string

=== GUI ======= GUI.Property.Name ====Type: string

==== GUI.Property.Value ====Type: object
Properties:

* [object currentcontrol]* [object currentwindow]* [boolean fullscreen]* [object skin]* [GUI.Stereoscopy.Mode stereoscopicmode]

==== GUI.Stereoscopy.Mode ====Type: object
Properties:

* string label* string mode

==== GUI.Window ====Type: string

=== Global ======= Global.IncrementDecrement ====Type: string

==== Global.String.NotEmpty ====Type: string

==== Global.Time ====Type: object
Properties:

* integer hours* integer milliseconds* integer minutes* integer seconds

==== Global.Toggle ====Type: mixed

==== Global.Weekday ====Type: string

=== Input ======= Input.Action ====Type: string

=== Item ======= Item.Details.Base ====Type: object
Properties:

* string label

==== Item.Fields.Base ====Type: array

=== Library ======= Library.Details.Genre ====Extends:* Item.Details.BaseProperties:

* Library.Id genreid* [Array.Integer sourceid]* [string thumbnail]* [string title]

==== Library.Details.Source ====Extends:* Item.Details.BaseProperties:

* string file* [Array.String paths]* Library.Id sourceid

==== Library.Details.Tag ====Extends:* Item.Details.BaseProperties:

* Library.Id tagid* [string title]

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

==== Library.Fields.Source ====Extends:* Item.Fields.Base

==== Library.Fields.Tag ====Extends:* Item.Fields.Base

==== Library.Id ====Type: integer

=== List ======= 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.Fields.Textures ====Type: string

==== List.Filter.Movies ====Type: mixed

==== List.Filter.MusicVideos ====Type: mixed

==== List.Filter.Operators ====Type: string

==== List.Filter.Rule ====Type: object
Properties:

* List.Filter.Operators operator* mixed: string|array value

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

* List.Filter.Fields.Albums field

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

* List.Filter.Fields.Artists field

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

* List.Filter.Fields.Episodes field

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

* List.Filter.Fields.Movies field

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

* List.Filter.Fields.MusicVideos field

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

* List.Filter.Fields.Songs field

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

* List.Filter.Fields.TVShows field

==== List.Filter.Rule.Textures ====Extends:* List.Filter.RuleProperties:

* List.Filter.Fields.Textures field

==== List.Filter.Songs ====Type: mixed

==== List.Filter.TVShows ====Type: mixed

==== List.Filter.Textures ====Type: mixed

==== List.Item.All ====Extends:* List.Item.BaseProperties:

* [string channel]* [integer channelnumber]* [PVR.Channel.Type channeltype = tv]* [string endtime]* [boolean hidden]* [boolean locked]* [string starttime]

==== List.Item.Base ====Extends:* Video.Details.File* Audio.Details.MediaProperties:

* [string album]* [Array.String albumartist]* [Array.Integer albumartistid]* [Library.Id albumid = -1]* [string albumlabel]* [Audio.Album.ReleaseType albumreleasetype = album]* [integer bitrate]* [integer bpm]* [Video.Cast cast]* [integer channels]* [string comment]* [boolean compilation]* [Audio.Contributors contributors]* [Array.String country]* [string description]* [integer disc]* [string disctitle]* [string displaycomposer]* [string displayconductor]* [string displaylyricist]* [string displayorchestra]* [integer duration]* [string dynpath]* [integer episode]* [string episodeguide]* [string firstaired]* [Library.Id id = -1]* [string imdbnumber]* [boolean isboxset]* [string lyrics]* [string mediapath]* [Array.String mood]* [string mpaa]* [Array.String musicbrainzartistid]* [string musicbrainztrackid]* [string originaldate]* [string originaltitle]* [string plotoutline]* [string premiered]* [string productioncode]* [string releasedate]* [Audio.Album.ReleaseType releasetype = album]* [integer samplerate]* [integer season]* [string set]* [Library.Id setid = -1]* [Array.String showlink]* [string showtitle]* [string sorttitle]* [integer specialsortepisode]* [integer specialsortseason]* [Array.String studio]* [Array.String style]* [Array.String tag]* [string tagline]* [Array.String theme]* [integer top250]* [integer totaldiscs]* [integer track]* [string trailer]* [Library.Id tvshowid = -1]* [string type = unknown]* [Media.UniqueID uniqueid]* [string votes]* [integer watchedepisodes]* [Array.String writer]

==== List.Item.File ====Extends:* List.Item.BaseProperties:

* string file* string filetype* [string lastmodified]* [string mimetype]* [integer size]

==== List.Items.Sources ====Type: array

==== List.Limits ====Type: object
Properties:

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

==== List.LimitsReturned ====Type: object
Properties:

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

==== List.Sort ====Type: object
Properties:

* [boolean ignorearticle]* [string method = none]* [string order = ascending]* [boolean useartistsortname]

=== Media ======= Media.Artwork ====Type: object
Properties:

* [Global.String.NotEmpty banner]* [Global.String.NotEmpty fanart]* [Global.String.NotEmpty poster]* [Global.String.NotEmpty thumb]

==== Media.Artwork.Set ====Type: object
Properties:

* [mixed: null|Global.String.NotEmpty banner]* [mixed: null|Global.String.NotEmpty fanart]* [mixed: null|Global.String.NotEmpty poster]* [mixed: null|Global.String.NotEmpty thumb]

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

* [string fanart]* [string thumbnail]

==== Media.UniqueID ====Type: object

==== Media.UniqueID.Set ====Type: object

=== Notifications ======= Notifications.Item ====Type: mixed

==== Notifications.Item.Type ====Type: string

=== Optional ======= Optional.Boolean ====Type: mixed

==== Optional.Integer ====Type: mixed

==== Optional.Number ====Type: mixed

==== Optional.String ====Type: mixed

=== PVR ======= PVR.Channel.Type ====Type: string

==== PVR.ChannelGroup.Id ====Type: mixed

==== PVR.Details.Broadcast ====Extends:* Item.Details.BaseProperties:

* Library.Id broadcastid* [string cast]* [string director]* [string endtime]* [string episodename]* [integer episodenum]* [integer episodepart]* [string firstaired]* [string genre]* [boolean hasrecording]* [boolean hastimer]* [boolean hastimerrule]* [integer imdbnumber]* [boolean isactive]* [boolean isplayable]* [boolean isseries]* [string originaltitle]* [integer parentalrating]* [string plot]* [string plotoutline]* [integer progress]* [number progresspercentage]* [integer rating]* [string recording]* [integer runtime]* [string starttime]* [string thumbnail]* [string title]* [boolean wasactive]* [string writer]* [integer year]

==== PVR.Details.Channel ====Extends:* Item.Details.BaseProperties:

* [PVR.Details.Broadcast broadcastnext]* [PVR.Details.Broadcast broadcastnow]* [string channel]* Library.Id channelid* [integer channelnumber]* [PVR.Channel.Type channeltype = tv]* [boolean hasarchive]* [boolean hidden]* [string icon]* [boolean isrecording]* [string lastplayed]* [boolean locked]* [integer subchannelnumber]* [string thumbnail]* integer uniqueid

==== PVR.Details.ChannelGroup ====Extends:* Item.Details.BaseProperties:

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

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

* [array channels]* List.LimitsReturned limits

==== PVR.Details.Recording ====Extends:* Item.Details.BaseProperties:

* [Media.Artwork art]* [string channel]* [integer channeluid]* [string directory]* [string endtime]* [integer epgeventid]* [integer episode]* [string file]* [string genre]* [string icon]* [boolean isdeleted]* [integer lifetime]* [integer playcount]* [string plot]* [string plotoutline]* [boolean radio]* Library.Id recordingid* [Video.Resume resume]* [integer runtime]* [integer season]* [string showtitle]* [string starttime]* [string streamurl]* [string title]

==== PVR.Details.Timer ====Extends:* Item.Details.BaseProperties:

* [Library.Id channelid = -1]* [string directory]* [boolean endanytime]* [integer endmargin]* [string endtime]* [string epgsearchstring]* [integer epguid]* [string file]* [string firstday]* [boolean fulltextepgsearch]* [boolean ismanual]* [boolean isradio]* [boolean isreadonly]* [boolean istimerrule]* [integer lifetime]* [integer maxrecordings]* [integer preventduplicateepisodes]* [integer priority]* [integer recordinggroup]* [integer runtime]* [boolean startanytime]* [integer startmargin]* [string starttime]* [PVR.TimerState state = unknown]* [string summary]* Library.Id timerid* [string title]* [array weekdays]

==== PVR.Fields.Broadcast ====Extends:* Item.Fields.Base

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

==== PVR.Fields.Recording ====Extends:* Item.Fields.Base

==== PVR.Fields.Timer ====Extends:* Item.Fields.Base

==== PVR.Property.Name ====Type: string

==== PVR.Property.Value ====Type: object
Properties:

* [boolean available]* [boolean recording]* [boolean scanning]

==== PVR.TimerState ====Type: string

=== Player ======= Player.Audio.Stream ====Type: object
Properties:

* integer bitrate* integer channels* string codec* integer index* boolean isdefault* boolean isimpaired* boolean isoriginal* string language* string name* integer samplerate

==== Player.CustomViewMode ====Type: object
Properties:

* [mixed: string|Optional.Boolean nonlinearstretch]* [mixed: string|Optional.Number pixelratio]* [mixed: string|Optional.Number verticalshift]* [mixed: string|Optional.Number zoom]

==== Player.Id ====Type: integer

==== Player.Notifications.Data ====Type: object
Properties:

* Notifications.Item item* Player.Notifications.Player player

==== Player.Notifications.Player ====Type: object
Properties:

* Player.Id playerid* [integer speed]

==== Player.Notifications.Player.Seek ====Extends:* Player.Notifications.PlayerProperties:

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

==== Player.Position.Percentage ====Type: number

==== Player.Position.Time ====Type: object
Properties:

* [integer hours]* [integer milliseconds]* [integer minutes]* [integer seconds]

==== Player.Property.Name ====Type: string

==== Player.Property.Value ====Type: object
Properties:

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

==== Player.Repeat ====Type: string

==== Player.Speed ====Type: object
Properties:

* [integer speed]

==== Player.Subtitle ====Type: object
Properties:

* integer index* boolean isdefault* boolean isforced* boolean isimpaired* string language* string name

==== Player.Type ====Type: string

==== Player.Video.Stream ====Type: object
Properties:

* string codec* integer height* integer index* string language* string name* integer width

==== Player.ViewMode ====Type: string

=== Playlist ======= 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]* [Playlist.Type type = unknown]

==== Playlist.Type ====Type: string

=== Profiles ======= Profiles.Details.Profile ====Extends:* Item.Details.BaseProperties:

* [integer lockmode]* [string thumbnail]

==== Profiles.Fields.Profile ====Extends:* Item.Fields.Base

==== Profiles.Password ====Type: object
Properties:

* [string encryption = md5]* string value

=== Setting ======= Setting.Details.Base ====Type: object
Properties:

* [string help]* string id* string label

==== Setting.Details.Category ====Extends:* Setting.Details.BaseProperties:

* [array groups]

==== Setting.Details.Control ====Type: mixed

==== Setting.Details.ControlBase ====Type: object
Properties:

* boolean delayed* string format* string type

==== Setting.Details.ControlButton ====Extends:* Setting.Details.ControlHeadingProperties:

* string type

==== Setting.Details.ControlCheckmark ====Extends:* Setting.Details.ControlBaseProperties:

* string format* string type

==== Setting.Details.ControlEdit ====Extends:* Setting.Details.ControlHeadingProperties:

* boolean hidden* string type* boolean verifynewvalue

==== Setting.Details.ControlHeading ====Extends:* Setting.Details.ControlBaseProperties:

* [string heading]

==== Setting.Details.ControlLabel ====Extends:* Setting.Details.ControlBaseProperties:

* string format* string type

==== Setting.Details.ControlList ====Extends:* Setting.Details.ControlHeadingProperties:

* boolean multiselect* string type

==== Setting.Details.ControlRange ====Extends:* Setting.Details.ControlBaseProperties:

* string formatlabel* string formatvalue* string type

==== Setting.Details.ControlSlider ====Extends:* Setting.Details.ControlHeadingProperties:

* string formatlabel* boolean popup* string type

==== Setting.Details.ControlSpinner ====Extends:* Setting.Details.ControlBaseProperties:

* [string formatlabel]* [string minimumlabel]* string type

==== Setting.Details.Group ====Type: object
Properties:

* string id* [array settings]

==== Setting.Details.Section ====Extends:* Setting.Details.BaseProperties:

* [array categories]

==== Setting.Details.Setting ====Type: mixed

==== Setting.Details.SettingAction ====Extends:* Setting.Details.SettingBaseProperties:

* string data

==== Setting.Details.SettingAddon ====Extends:* Setting.Details.SettingStringProperties:

* Addon.Types addontype

==== Setting.Details.SettingBase ====Extends:* Setting.Details.BaseProperties:

* [Setting.Details.Control control]* boolean enabled* Setting.Level level* [string parent]* Setting.Type type

==== Setting.Details.SettingBool ====Extends:* Setting.Details.SettingBaseProperties:

* boolean default* boolean value

==== Setting.Details.SettingDate ====Extends:* Setting.Details.SettingString

==== Setting.Details.SettingInt ====Extends:* Setting.Details.SettingBaseProperties:

* integer default* [integer maximum]* [integer minimum]* [array options]* [integer step]* integer value

==== Setting.Details.SettingList ====Extends:* Setting.Details.SettingBaseProperties:

* Setting.Value.List default* Setting.Details.Setting definition* string delimiter* Setting.Type elementtype* [integer maximumitems]* [integer minimumitems]* Setting.Value.List value

==== Setting.Details.SettingNumber ====Extends:* Setting.Details.SettingBaseProperties:

* number default* number maximum* number minimum* number step* number value

==== Setting.Details.SettingPath ====Extends:* Setting.Details.SettingStringProperties:

* [array sources]* boolean writable

==== Setting.Details.SettingString ====Extends:* Setting.Details.SettingBaseProperties:

* boolean allowempty* string default* [array options]* string value

==== Setting.Details.SettingTime ====Extends:* Setting.Details.SettingString

==== Setting.Level ====Type: string

==== Setting.Type ====Type: string

==== Setting.Value ====Type: mixed

==== Setting.Value.Extended ====Type: mixed

==== Setting.Value.List ====Type: array

=== System ======= System.Property.Name ====Type: string

==== System.Property.Value ====Type: object
Properties:

* [boolean canhibernate]* [boolean canreboot]* [boolean canshutdown]* [boolean cansuspend]

=== Textures ======= Textures.Details.Size ====Type: object
Properties:

* [integer height]* [string lastused]* [integer size]* [integer usecount]* [integer width]

==== Textures.Details.Texture ====Type: object
Properties:

* [string cachedurl]* [string imagehash]* [string lasthashcheck]* [array sizes]* [Library.Id textureid = -1]* [string url]

==== Textures.Fields.Texture ====Extends:* Item.Fields.Base

=== Video ======= Video.Cast ====Type: array

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

* [Media.Artwork art]* [integer playcount]

==== Video.Details.Episode ====Extends:* Video.Details.FileProperties:

* [Video.Cast cast]* [integer episode]* Library.Id episodeid* [string firstaired]* [string originaltitle]* [string productioncode]* [number rating]* [any ratings]* [integer season]* [Library.Id seasonid = -1]* [string showtitle]* [integer specialsortepisode]* [integer specialsortseason]* [Library.Id tvshowid = -1]* [Media.UniqueID uniqueid]* [integer userrating]* [string votes]* [Array.String writer]

==== Video.Details.File ====Extends:* Video.Details.ItemProperties:

* [Array.String director]* [Video.Resume resume]* [integer runtime]* [Video.Streams streamdetails]

==== Video.Details.Item ====Extends:* Video.Details.MediaProperties:

* [string dateadded]* [string file]* [string lastplayed]* [string plot]

==== Video.Details.Media ====Extends:* Video.Details.BaseProperties:

* [string title]

==== Video.Details.Movie ====Extends:* Video.Details.FileProperties:

* [Video.Cast cast]* [Array.String country]* [Array.String genre]* [string imdbnumber]* Library.Id movieid* [string mpaa]* [string originaltitle]* [string plotoutline]* [string premiered]* [number rating]* [any ratings]* [string set]* [Library.Id setid = -1]* [Array.String showlink]* [string sorttitle]* [Array.String studio]* [Array.String tag]* [string tagline]* [integer top250]* [string trailer]* [Media.UniqueID uniqueid]* [integer userrating]* [string votes]* [Array.String writer]* [integer year]

==== Video.Details.MovieSet ====Extends:* Video.Details.MediaProperties:

* [string plot]* Library.Id setid

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

* List.LimitsReturned limits* [array movies]

==== Video.Details.MusicVideo ====Extends:* Video.Details.FileProperties:

* [string album]* [Array.String artist]* [Array.String genre]* Library.Id musicvideoid* [string premiered]* [number rating]* [Array.String studio]* [Array.String tag]* [integer track]* [integer userrating]* [integer year]

==== Video.Details.Season ====Extends:* Video.Details.BaseProperties:

* [integer episode]* integer season* Library.Id seasonid* [string showtitle]* [string title]* [Library.Id tvshowid = -1]* [integer userrating]* [integer watchedepisodes]

==== Video.Details.TVShow ====Extends:* Video.Details.ItemProperties:

* [Video.Cast cast]* [integer episode]* [string episodeguide]* [Array.String genre]* [string imdbnumber]* [string mpaa]* [string originaltitle]* [string premiered]* [number rating]* [any ratings]* [integer runtime]* [integer season]* [string sorttitle]* [string status]* [Array.String studio]* [Array.String tag]* Library.Id tvshowid* [Media.UniqueID uniqueid]* [integer userrating]* [string votes]* [integer watchedepisodes]* [integer year]

==== 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.Rating ====Type: object
Properties:

* [boolean default]* number rating* [integer votes]

==== Video.Ratings ====Type: object

==== Video.Ratings.Set ====Type: object

==== Video.Resume ====Type: object
Properties:

* [number position]* [number total]

==== Video.Streams ====Type: object
Properties:

* [array audio]* [array subtitle]* [array video]

== Notifications ===== Application ======= Application.OnVolumeChanged ====The volume of the application has changed.
Parameters:

# string sender# object data:#* boolean muted#* integer volume

=== AudioLibrary ======= AudioLibrary.OnCleanFinished ====The audio library has been cleaned.
Parameters:

# string sender# string data

==== AudioLibrary.OnCleanStarted ====An audio library clean operation has started.
Parameters:

# string sender# string data

==== AudioLibrary.OnExport ====An audio library export has finished.
Parameters:

# string sender# [object data]:#* [integer failcount = 0]#* [string file = ""]

==== AudioLibrary.OnRemove ====An audio item has been removed.
Parameters:

# string sender# object data:#* Library.Id id#* Optional.Boolean transaction#* Notifications.Library.Audio.Type type

==== AudioLibrary.OnScanFinished ====Scanning the audio library has been finished.
Parameters:

# string sender# string data

==== AudioLibrary.OnScanStarted ====An audio library scan has started.
Parameters:

# string sender# string data

==== AudioLibrary.OnUpdate ====An audio item has been updated.
Parameters:

# string sender# object data:#* Optional.Boolean added#* Library.Id id#* Optional.Boolean transaction#* string type

=== GUI ======= GUI.OnDPMSActivated ====Energy saving/DPMS has been activated.
Parameters:

# string sender# string data

==== GUI.OnDPMSDeactivated ====Energy saving/DPMS has been deactivated.
Parameters:

# string sender# string data

==== GUI.OnScreensaverActivated ====The screensaver has been activated.
Parameters:

# string sender# string data

==== GUI.OnScreensaverDeactivated ====The screensaver has been deactivated.
Parameters:

# string sender# object data:#* boolean shuttingdown

=== Input ======= Input.OnInputFinished ====The user has provided the requested input.
Parameters:

# string sender# string data

==== Input.OnInputRequested ====The user is requested to provide some information.
Parameters:

# string sender# object data:#* string title#* string type#* string value

=== Player ======= Player.OnAVChange ====Audio- or videostream has changed. If there is no ID available extra information will be provided.
Parameters:

# string sender# Player.Notifications.Data data

==== Player.OnAVStart ====Playback of a media item has been started and first frame is available. If there is no ID available extra information will be provided.
Parameters:

# string sender# Player.Notifications.Data data

==== 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

==== 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

==== Player.OnPropertyChanged ====A property of the playing items has changed.
Parameters:

# string sender# object data:#* Player.Notifications.Player player#* Player.Property.Value property

==== Player.OnResume ====Playback of a media item has been resumed. If there is no ID available extra information will be provided.
Parameters:

# string sender# Player.Notifications.Data data

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

# string sender# object data:#* Notifications.Item item#* Player.Notifications.Player.Seek player

==== 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

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

# string sender# object data:#* boolean end#* Notifications.Item item

=== Playlist ======= Playlist.OnAdd ====A playlist item has been added.
Parameters:

# string sender# object data:#* Notifications.Item item#* Playlist.Id playlistid#* Playlist.Position position

==== Playlist.OnClear ====A playlist item has been cleared.
Parameters:

# string sender# object data:#* Playlist.Id playlistid

==== Playlist.OnRemove ====A playlist item has been removed.
Parameters:

# string sender# object data:#* Playlist.Id playlistid#* Playlist.Position position

=== System ======= System.OnLowBattery ====The system is on low battery.
Parameters:

# string sender# string data

==== System.OnQuit ====Kodi will be closed.
Parameters:

# string sender# object data:#* integer exitcode

==== System.OnRestart ====The system will be restarted.
Parameters:

# string sender# string data

==== System.OnSleep ====The system will be suspended.
Parameters:

# string sender# string data

==== System.OnWake ====The system woke up from suspension.
Parameters:

# string sender# string data

=== VideoLibrary ======= VideoLibrary.OnCleanFinished ====The video library has been cleaned.
Parameters:

# string sender# string data

==== VideoLibrary.OnCleanStarted ====A video library clean operation has started.
Parameters:

# string sender# string data

==== VideoLibrary.OnExport ====A video library export has finished.
Parameters:

# string sender# [object data]:#* [integer failcount = 0]#* [string file = ""]#* [string root = ""]

==== VideoLibrary.OnRefresh ====The video library has been refreshed and a home screen reload might be necessary.
Parameters:

# string sender# string data

==== VideoLibrary.OnRemove ====A video item has been removed.
Parameters:

# string sender# object data:#* Library.Id id#* Optional.Boolean transaction#* Notifications.Library.Video.Type type

==== VideoLibrary.OnScanFinished ====Scanning the video library has been finished.
Parameters:

# string sender# string data

==== VideoLibrary.OnScanStarted ====A video library scan has started.
Parameters:

# string sender# string data

==== VideoLibrary.OnUpdate ====A video item has been updated.
Parameters:

# string sender# object data:#* Optional.Boolean added#* Library.Id id#* integer playcount = -1#* Optional.Boolean transaction#* string type

See also

External links