JSON-RPC API/v4

Version 4 is a stable version of XBMC's JSON-RPC API and is published with the release of Eden. It is a complete re-write and re-structuring of version 2 and therefore isn't backwards compatible to it. The main reason for this was the need to make this version fully compatible with all the functionality, features and requirements of the JSON-RPC 2.0 specification. This was a main concern during early development to make it easier for third party developers and applications to interact with XBMC's JSON-RPC API by using existing JSON-RPC libraries.

An rough and incomplete list of changes compared to version 2 can be found here. A more complete and detailed list can be found in the forum.

Documentation (JSON Schema)
Starting with JSON-RPC API version 3 a new way of API documentation has been introduced. All methods and data types are described using JSON Schema. This provides third party developers with an always complete and up-to-date documentation by calling JSONRPC.Introspect even during periods of heavy development. Furthermore the same method and data type specification that can be used by third party developers as a documentation is used by XBMC to check and verify method parameters and their values on every JSON-RPC request and allows to provide detailed error messages in case of a bad or missing parameter.

Error message
If XBMC detects a bad or missing parameter in a JSON-RPC request it returns an error object. The JSON schema description of that error object is

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

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) mixed mute

Application.SetVolume
Set the current volume

Permissions: Parameters:  Returns: integer
 * ControlPlayback
 * 1) integer 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) [ Library.Id artistid = -1 ]
 * 2) [ Library.Id genreid = -1 ]
 * 3) [ Audio.Fields.Album properties ]
 * 4) [ List.Limits limits ]
 * 5) [ List.Sort sort ]

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:  Returns:  Type: object
 * ReadData
 * 1) [ Optional.Boolean albumartistsonly = null ]
 * 2) [ Library.Id genreid = -1 ]
 * 3) [ Audio.Fields.Artist properties ]
 * 4) [ List.Limits limits ]
 * 5) [ List.Sort sort ]

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

AudioLibrary.GetGenres
Retrieve all genres

Permissions: Parameters:  Returns:  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:  Returns:  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.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) [ Library.Id artistid = -1 ]
 * 2) [ Library.Id albumid = -1 ]
 * 3) [ Library.Id genreid = -1 ]
 * 4) [ Audio.Fields.Song properties ]
 * 5) [ List.Limits limits ]
 * 6) [ List.Sort sort ]

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

AudioLibrary.Scan
Scans the audio sources for new library items

Permissions: Parameters: None
 * UpdateData

Returns: string

Files.Download
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 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.All properties ]
 * 4) [ List.Sort sort ]

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

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.Items.Sources sources
 * List.LimitsReturned limits

Input.Back
Goes back in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Down
Navigate down in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

Input.Home
Goes to home window in GUI

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.Up
Navigate up in GUI

Permissions: Parameters: None
 * Navigate

Returns: string

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:
 * string type
 * string id
 * [ boolean getreferences = True ]

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 navigate
 * boolean removedata
 * boolean controlplayback
 * boolean readdata
 * boolean updatedata
 * boolean writefile
 * boolean controlnotify
 * boolean controlpower

JSONRPC.Ping
Ping responder

Permissions: Parameters: None
 * ReadData

Returns: string

JSONRPC.Version
Retrieve the jsonrpc protocol version

Permissions: Parameters: None
 * ReadData

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.GoNext
Go to next item on 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

Player.GoPrevious
Go to previous item on 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

Player.GoTo
Go to item at the given position 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) Playlist.Position position

Player.MoveDown
If picture is zoomed move viewport down

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.MoveLeft
If picture is zoomed move viewport left otherwise skip previous

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.MoveRight
If picture is zoomed move viewport right otherwise skip 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

Player.MoveUp
If picture is zoomed move viewport up

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.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"> Returns: string
 * ControlPlayback
 * 1) [ mixed item ]

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

Player.Repeat
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) Player.Repeat state

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

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:
 * [ Global.Time totaltime ]
 * [ Player.Position.Percentage percentage = 0 ]
 * [ Global.Time time ]

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

Player.Shuffle
Shuffle 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

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

Player.Zoom
Zooms 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) integer value

Player.ZoomIn
Zoom in once

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.ZoomOut
Zoom out once

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

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.Item.All[] items
 * List.LimitsReturned limits

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.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 XBMC into hibernate mode

Permissions: Parameters: None
 * ControlPower

Returns: string

System.Reboot
Reboots the system running XBMC

Permissions: Parameters: None
 * ControlPower

Returns: string

System.Shutdown
Shuts the system running XBMC down

Permissions: Parameters: None
 * ControlPower

Returns: string

System.Suspend
Suspends the system running XBMC

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 ]

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.Sort sort ]
 * [ Video.Fields.Movie properties ]
 * [ List.Limits limits ]

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 ]

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

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) [ Library.Id artistid = -1 ]
 * 2) [ Library.Id albumid = -1 ]
 * 3) [ Video.Fields.MusicVideo properties ]
 * 4) [ List.Limits limits ]
 * 5) [ List.Sort sort ]

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

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:
 * [ Video.Details.Movie[] movies ]
 * List.LimitsReturned limits

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:
 * [ Video.Details.MusicVideo[] musicvideos ]
 * List.LimitsReturned limits

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:
 * [ Video.Details.Season[] seasons ]
 * List.LimitsReturned limits

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 ]

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

VideoLibrary.Scan
Scans the video sources for new library items

Permissions: Parameters: None
 * UpdateData

Returns: string

XBMC.GetInfoBooleans
Retrieve info booleans about XBMC 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 XBMC 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

Application.Property.Name
Type: string

Application.Property.Value
Type: object

Properties:
 * [ boolean muted = False ]
 * [ integer volume = 0 ]
 * [ object version ]

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


 * [ string name = "" ]

Array.Integer
Type: array

Array.String
Type: array

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

Properties:
 * [ string style = "" ]
 * [ string mood = "" ]
 * [ string albumlabel = "" ]
 * [ string theme = "" ]
 * Library.Id albumid
 * [ Library.Id artistid = -1 ]
 * [ string type = "" ]
 * [ string description = "" ]

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

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

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

Properties:
 * [ string genre = "" ]

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

Properties:
 * [ integer rating = 0 ]
 * [ string title = "" ]
 * [ string artist = "" ]
 * [ string musicbrainzalbumartistid = "" ]
 * [ integer year = 0 ]
 * [ string musicbrainzalbumid = "" ]

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

Properties:
 * [ string album = "" ]
 * [ string comment = "" ]
 * Library.Id songid
 * [ string musicbrainzartistid = "" ]
 * [ string lyrics = "" ]
 * [ integer track = 0 ]
 * [ string musicbrainztrackid = "" ]
 * [ Library.Id albumid = -1 ]
 * [ Library.Id artistid = -1 ]
 * [ string albumartist = "" ]
 * [ string file = "" ]
 * [ integer duration = 0 ]
 * [ integer playcount = 0 ]

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 system
 * boolean player
 * boolean audiolibrary
 * boolean other
 * boolean videolibrary

Files.Media
Type: string

Global.Time
Type: object

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

Item.Details.Base
Type: object

Properties:
 * string label

Item.Fields.Base
Type: array

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

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

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

Library.Id
Type: integer

List.Amount
Type: integer

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

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

Properties:
 * [ string comment = "" ]
 * [ Library.Id tvshowid = -1 ]
 * [ Array.String set ]
 * [ string lyrics = "" ]
 * [ string albumartist = "" ]
 * [ integer duration = 0 ]
 * [ Array.Integer setid ]
 * [ Library.Id id = -1 ]
 * [ string album = "" ]
 * [ string votes = "" ]
 * [ string mpaa = "" ]
 * [ string writer = "" ]
 * [ Library.Id albumid = -1 ]
 * [ string type = "unknown" ]
 * [ string plotoutline = "" ]
 * [ integer track = 0 ]
 * [ integer season = 0 ]
 * [ string musicbrainztrackid = "" ]
 * [ string imdbnumber = "" ]
 * [ string studio = "" ]
 * [ string showlink = "" ]
 * [ string showtitle = "" ]
 * [ integer episode = 0 ]
 * [ string musicbrainzartistid = "" ]
 * [ string productioncode = "" ]
 * [ string country = "" ]
 * [ string premiered = "" ]
 * [ string originaltitle = "" ]
 * [ Video.Cast cast ]
 * [ Library.Id artistid = -1 ]
 * [ string firstaired = "" ]
 * [ string tagline = "" ]
 * [ integer top250 = 0 ]
 * [ string trailer = "" ]

List.Item.File
Extends:
 * List.Item.All

Properties:
 * string filetype
 * string file

List.Items.Sources
Type: array

List.Limits
Type: object

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

List.LimitsReturned
Type: object

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

List.Sort
Type: object

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

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

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

Optional.Boolean
Type: mixed

Player.Audio.Stream
Type: object

Properties:
 * integer index
 * string name
 * string language

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.Item item
 * Player.Notifications.Player player

Player.Notifications.Item
Type: mixed

Player.Notifications.Item.Type
Type: string

Player.Notifications.Player
Type: object

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

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

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

Player.Position.Percentage
Type: number

Player.Property.Name
Type: string

Player.Property.Value
Type: object

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

Player.Repeat
Type: string

Player.Speed
Type: object

Properties:
 * [ integer speed = 0 ]

Player.Subtitle
Type: object

Properties:
 * integer index
 * string name
 * string language

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:
 * [ Playlist.Type type = "unknown" ]
 * [ integer size = 0 ]

Playlist.Type
Type: string

System.Property.Name
Type: string

System.Property.Value
Type: object

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

Video.Cast
Type: array

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

Properties:
 * [ integer playcount = 0 ]

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

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

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

Properties:
 * [ string director = "" ]
 * [ Video.Streams streamdetails ]
 * [ string runtime = "" ]
 * [ Video.Resume resume ]

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

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

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

Properties:
 * [ string title = "" ]

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

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

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

Properties:
 * Library.Id setid

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

Properties:
 * [ Video.Details.Movie[] movies ]

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

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

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

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

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

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

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 ]

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:
 * Notifications.Library.Audio.Type type
 * Library.Id id

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:
 * string type
 * Library.Id id

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.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.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: <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:
 * [ Player.Notifications.Item item ]

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
XBMC 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.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:
 * Notifications.Library.Video.Type type
 * Library.Id id

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:
 * [ integer playcount = -1 ]
 * string type
 * Library.Id id