User:Ronie

From Official Kodi Wiki
Revision as of 13:16, 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 (Matrix).
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:

  • ExecuteAddon

Parameters:

  1. string addonid
  2. [mixed: object|array|string params = ""]
  3. [boolean wait = False]

Returns:

Type: string

{

 "type": "method",
 "description": "Executes the given addon with the given parameters (if possible)",
 "transport": "Response",
 "permission": "ExecuteAddon",
 "params": [
   {
     "name": "addonid",
     "type": "string",
     "required": true
   },
   {
     "name": "params",
     "type": [
       {
         "type": "object",
         "additionalProperties": {
           "type": "string"
         }
       },
       {
         "type": "array",
         "items": {
           "type": "string"
         }
       },
       {
         "type": "string",
         "description": "URL path (must start with / or ?"
       }
     ],
     "default": ""
   },
   {
     "name": "wait",
     "type": "boolean",
     "default": false
   }
 ],
 "returns": "string"

}

Addons.GetAddonDetails

Gets the details of a specific addon
Permissions:

  • ReadData

Parameters:

  1. string addonid
  2. [Addon.Fields properties]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. Addon.Details addon

{

 "type": "method",
 "description": "Gets the details of a specific addon",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "addonid",
     "type": "string",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Addon.Fields"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "addon": {
       "$ref": "Addon.Details",
       "required": true
     }
   }
 }

}

Addons.GetAddons

Gets all available addons
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayAddon.Details addons]

{

 "type": "method",
 "description": "Gets all available addons",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "type",
     "$ref": "Addon.Types"
   },
   {
     "name": "content",
     "$ref": "Addon.Content",
     "description": "Content provided by the addon. Only considered for plugins and scripts."
   },
   {
     "name": "enabled",
     "type": [
       {
         "type": "boolean"
       },
       {
         "type": "string",
         "enum": [
           "all"
         ]
       }
     ],
     "default": "all"
   },
   {
     "name": "properties",
     "$ref": "Addon.Fields"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "installed",
     "type": [
       {
         "type": "boolean"
       },
       {
         "type": "string",
         "enum": [
           "all"
         ]
       }
     ],
     "default": true
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "addons": {
       "type": "array",
       "items": {
         "$ref": "Addon.Details"
       }
     }
   }
 }

}

Addons.SetAddonEnabled

Enables/Disables a specific addon
Permissions:

  • ManageAddon

Parameters:

  1. string addonid
  2. Global.Toggle enabled

Returns:

Type: string

{

 "type": "method",
 "description": "Enables/Disables a specific addon",
 "transport": "Response",
 "permission": "ManageAddon",
 "params": [
   {
     "name": "addonid",
     "type": "string",
     "required": true
   },
   {
     "name": "enabled",
     "$ref": "Global.Toggle",
     "required": true
   }
 ],
 "returns": "string"

}

Application

Application.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array properties

Returns:

Type: Application.Property.Value

{

 "type": "method",
 "description": "Retrieves the values of the given properties",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "type": "array",
     "uniqueItems": true,
     "required": true,
     "items": {
       "$ref": "Application.Property.Name"
     }
   }
 ],
 "returns": {
   "$ref": "Application.Property.Value",
   "required": true
 }

}

Application.Quit

Quit application
Permissions:

  • ControlPower

Returns:

Type: string

{

 "type": "method",
 "description": "Quit application",
 "transport": "Response",
 "permission": "ControlPower",
 "params": [],
 "returns": "string"

}

Application.SetMute

Toggle mute/unmute
Permissions:

  • ControlPlayback

Parameters:

  1. Global.Toggle mute

Returns:

Type: boolean (Mute state)

{

 "type": "method",
 "description": "Toggle mute/unmute",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "mute",
     "required": true,
     "$ref": "Global.Toggle"
   }
 ],
 "returns": {
   "type": "boolean",
   "description": "Mute state"
 }

}

Application.SetVolume

Set the current volume
Permissions:

  • ControlPlayback

Parameters:

  1. mixed: integer|Global.IncrementDecrement volume

Returns:

Type: integer

{

 "type": "method",
 "description": "Set the current volume",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "volume",
     "type": [
       {
         "type": "integer",
         "minimum": 0,
         "maximum": 100,
         "required": true
       },
       {
         "$ref": "Global.IncrementDecrement",
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": "integer"

}

AudioLibrary

AudioLibrary.Clean

Cleans the audio library from non-existent items
Permissions:

  • RemoveData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Cleans the audio library from non-existent items",
 "transport": "Response",
 "permission": "RemoveData",
 "params": [
   {
     "name": "showdialogs",
     "type": "boolean",
     "default": true,
     "description": "Whether or not to show the progress bar or any other GUI dialog"
   }
 ],
 "returns": "string"

}

AudioLibrary.Export

Exports all items from the audio library
Permissions:

  • WriteFile

Parameters:

  1. [mixed: object|object options]

Returns:

Type: string

{

 "type": "method",
 "description": "Exports all items from the audio library",
 "transport": "Response",
 "permission": "WriteFile",
 "params": [
   {
     "name": "options",
     "type": [
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "path": {
             "type": "string",
             "required": true,
             "minLength": 1,
             "description": "Path to the directory to where the data should be exported"
           }
         }
       },
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "overwrite": {
             "type": "boolean",
             "default": false,
             "description": "Whether to overwrite existing exported files"
           },
           "images": {
             "type": "boolean",
             "default": false,
             "description": "Whether to export thumbnails and fanart images"
           }
         }
       }
     ]
   }
 ],
 "returns": "string"

}

AudioLibrary.GetAlbumDetails

Retrieve details about a specific album
Permissions:

  • ReadData

Parameters:

  1. Library.Id albumid
  2. [Audio.Fields.Album properties]

Returns:

Type: object
Properties:

  1. [Audio.Details.Album albumdetails]

{

 "type": "method",
 "description": "Retrieve details about a specific album",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "albumid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Audio.Fields.Album"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "albumdetails": {
       "$ref": "Audio.Details.Album"
     }
   }
 }

}

AudioLibrary.GetAlbums

Retrieve all albums from specified artist (and role) or that has songs of the specified genre
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Album properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|object|List.Filter.Albums filter]
  5. [boolean includesingles = False]
  6. [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:

  1. List.LimitsReturned limits
  2. [arrayAudio.Details.Album albums]

{

 "type": "method",
 "description": "Retrieve all albums from specified artist (and role) or that has songs of the specified genre",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Audio.Fields.Album"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "genreid": {
             "$ref": "Library.Id",
             "required": true,
             "description": "Song genre. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genre": {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "Song genre. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artistid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artistid": {
             "$ref": "Library.Id",
             "required": true
           },
           "roleid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artistid": {
             "$ref": "Library.Id",
             "required": true
           },
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artist": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artist": {
             "type": "string",
             "minLength": 1,
             "required": true
           },
           "roleid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artist": {
             "type": "string",
             "minLength": 1,
             "required": true
           },
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "List.Filter.Albums"
       }
     ]
   },
   {
     "name": "includesingles",
     "type": "boolean",
     "default": false
   },
   {
     "name": "allroles",
     "type": "boolean",
     "default": false,
     "description": "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": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "albums": {
       "type": "array",
       "items": {
         "$ref": "Audio.Details.Album"
       }
     }
   }
 }

}

AudioLibrary.GetArtistDetails

Retrieve details about a specific artist
Permissions:

  • ReadData

Parameters:

  1. Library.Id artistid
  2. [Audio.Fields.Artist properties]

Returns:

Type: object
Properties:

  1. [Audio.Details.Artist artistdetails]

{

 "type": "method",
 "description": "Retrieve details about a specific artist",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "artistid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Audio.Fields.Artist"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "artistdetails": {
       "$ref": "Audio.Details.Artist"
     }
   }
 }

}

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:

  • ReadData

Parameters:

  1. [Optional.Boolean albumartistsonly] (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)
  2. [Audio.Fields.Artist properties]
  3. [List.Limits limits]
  4. [List.Sort sort]
  5. [mixed: object|object|object|object|object|object|object|object|object|object|object|object|object|object|object|List.Filter.Artists filter]
  6. [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:

  1. List.LimitsReturned limits
  2. [arrayAudio.Details.Artist artists]

{

 "type": "method",
 "description": "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",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "albumartistsonly",
     "$ref": "Optional.Boolean",
     "description": "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"
   },
   {
     "name": "properties",
     "$ref": "Audio.Fields.Artist"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "genreid": {
             "$ref": "Library.Id",
             "required": true,
             "description": "Deprecated, use songgenreid. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songgenreid": {
             "$ref": "Library.Id",
             "required": true,
             "description": "Song genreid. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songgenreid": {
             "$ref": "Library.Id",
             "required": true
           },
           "roleid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songgenreid": {
             "$ref": "Library.Id",
             "required": true
           },
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genre": {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "Deprecated, use songgenre. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songgenre": {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "Song genre. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songgenre": {
             "type": "string",
             "minLength": 1,
             "required": true
           },
           "roleid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songgenre": {
             "type": "string",
             "minLength": 1,
             "required": true
           },
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "albumid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "album": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songid": {
             "$ref": "Library.Id",
             "required": true
           },
           "roleid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "songid": {
             "$ref": "Library.Id",
             "required": true
           },
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "roleid": {
             "$ref": "Library.Id",
             "required": true,
             "description": "Role contributed by artist. Overridden by allroles parameter"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "Role contributed by artist. Overridden by allroles parameter"
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "List.Filter.Artists"
       }
     ]
   },
   {
     "name": "allroles",
     "type": "boolean",
     "default": false,
     "description": "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": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "artists": {
       "type": "array",
       "items": {
         "$ref": "Audio.Details.Artist"
       }
     }
   }
 }

}

AudioLibrary.GetGenres

Retrieve all genres
Permissions:

  • ReadData

Parameters:

  1. [Library.Fields.Genre properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayLibrary.Details.Genre genres

{

 "type": "method",
 "description": "Retrieve all genres",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Library.Fields.Genre"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "genres": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "Library.Details.Genre"
       }
     }
   }
 }

}

AudioLibrary.GetProperties

Retrieves the values of the music library properties
Permissions:

  • ReadData

Parameters:

  1. array properties

Returns:

Type: Audio.Property.Value

{

 "type": "method",
 "description": "Retrieves the values of the music library properties",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "type": "array",
     "uniqueItems": true,
     "required": true,
     "items": {
       "$ref": "Audio.Property.Name"
     }
   }
 ],
 "returns": {
   "$ref": "Audio.Property.Value",
   "required": true
 }

}

AudioLibrary.GetRecentlyAddedAlbums

Retrieve recently added albums
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Album properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayAudio.Details.Album albums]

{

 "type": "method",
 "description": "Retrieve recently added albums",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Audio.Fields.Album"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "albums": {
       "type": "array",
       "items": {
         "$ref": "Audio.Details.Album"
       }
     }
   }
 }

}

AudioLibrary.GetRecentlyAddedSongs

Retrieve recently added songs
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayAudio.Details.Song songs]

{

 "type": "method",
 "description": "Retrieve recently added songs",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "albumlimit",
     "$ref": "List.Amount",
     "description": "The amount of recently added albums from which to return the songs"
   },
   {
     "name": "properties",
     "$ref": "Audio.Fields.Song"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "songs": {
       "type": "array",
       "items": {
         "$ref": "Audio.Details.Song"
       }
     }
   }
 }

}

AudioLibrary.GetRecentlyPlayedAlbums

Retrieve recently played albums
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Album properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayAudio.Details.Album albums]

{

 "type": "method",
 "description": "Retrieve recently played albums",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Audio.Fields.Album"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "albums": {
       "type": "array",
       "items": {
         "$ref": "Audio.Details.Album"
       }
     }
   }
 }

}

AudioLibrary.GetRecentlyPlayedSongs

Retrieve recently played songs
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Song properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayAudio.Details.Song songs]

{

 "type": "method",
 "description": "Retrieve recently played songs",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Audio.Fields.Song"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "songs": {
       "type": "array",
       "items": {
         "$ref": "Audio.Details.Song"
       }
     }
   }
 }

}

AudioLibrary.GetRoles

Retrieve all contributor roles
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Role properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayAudio.Details.Role roles

{

 "type": "method",
 "description": "Retrieve all contributor roles",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Audio.Fields.Role"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "roles": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "Audio.Details.Role"
       }
     }
   }
 }

}

AudioLibrary.GetSongDetails

Retrieve details about a specific song
Permissions:

  • ReadData

Parameters:

  1. Library.Id songid
  2. [Audio.Fields.Song properties]

Returns:

Type: object
Properties:

  1. [Audio.Details.Song songdetails]

{

 "type": "method",
 "description": "Retrieve details about a specific song",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "songid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Audio.Fields.Song"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "songdetails": {
       "$ref": "Audio.Details.Song"
     }
   }
 }

}

AudioLibrary.GetSongs

Retrieve all songs from specified album, artist or genre
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Song properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Songs filter]
  5. [boolean includesingles = True] (Only songs from albums are returned when false, but overidden when singlesonly parameter is true)
  6. [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.)
  7. [boolean singlesonly = False] (Only singles are returned when true, and overides includesingles parameter)

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayAudio.Details.Song songs]

{

 "type": "method",
 "description": "Retrieve all songs from specified album, artist or genre",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Audio.Fields.Song"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "genreid": {
             "$ref": "Library.Id",
             "required": true,
             "description": "Song genre. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genre": {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "Song genre. Filter for existence of songs with this genre"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artistid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artistid": {
             "$ref": "Library.Id",
             "required": true
           },
           "roleid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artistid": {
             "$ref": "Library.Id",
             "required": true
           },
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artist": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artist": {
             "type": "string",
             "minLength": 1,
             "required": true
           },
           "roleid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "artist": {
             "type": "string",
             "minLength": 1,
             "required": true
           },
           "role": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "albumid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "album": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "List.Filter.Songs"
       }
     ]
   },
   {
     "name": "includesingles",
     "type": "boolean",
     "default": true,
     "description": "Only songs from albums are returned when false, but overidden when singlesonly parameter is true"
   },
   {
     "name": "allroles",
     "type": "boolean",
     "default": false,
     "description": "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."
   },
   {
     "name": "singlesonly",
     "type": "boolean",
     "default": false,
     "description": "Only singles are returned when true, and overides includesingles parameter"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "songs": {
       "type": "array",
       "items": {
         "$ref": "Audio.Details.Song"
       }
     }
   }
 }

}

AudioLibrary.GetSources

Get all music sources, including unique ID
Permissions:

  • ReadData

Parameters:

  1. [Library.Fields.Source properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayLibrary.Details.Source sources

{

 "type": "method",
 "description": "Get all music sources, including unique ID",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Library.Fields.Source"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "sources": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "Library.Details.Source"
       }
     }
   }
 }

}

AudioLibrary.Scan

Scans the audio sources for new library items
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Scans the audio sources for new library items",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "directory",
     "type": "string",
     "default": ""
   },
   {
     "name": "showdialogs",
     "type": "boolean",
     "default": true,
     "description": "Whether or not to show the progress bar or any other GUI dialog"
   }
 ],
 "returns": "string"

}

AudioLibrary.SetAlbumDetails

Update the given album with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id albumid
  2. [Optional.String title]
  3. [mixed: Array.String artist = None]
  4. [Optional.String description]
  5. [mixed: Array.String genre = None]
  6. [mixed: Array.String theme = None]
  7. [mixed: Array.String mood = None]
  8. [mixed: Array.String style = None]
  9. [Optional.String type]
  10. [Optional.String albumlabel]
  11. [Optional.Number rating]
  12. [Optional.Integer year]
  13. [Optional.Integer userrating]
  14. [Optional.Integer votes]
  15. [Optional.String musicbrainzalbumid]
  16. [Optional.String musicbrainzreleasegroupid]
  17. [Optional.String sortartist]
  18. [Optional.String displayartist]
  19. [mixed: Array.String musicbrainzalbumartistid = None]
  20. [mixed: Media.Artwork.Set art = None]
  21. [Optional.Boolean isboxset]
  22. [Optional.String releasedate]
  23. [Optional.String originaldate]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given album with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "albumid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   },
   {
     "name": "artist",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "description",
     "$ref": "Optional.String"
   },
   {
     "name": "genre",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "theme",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "mood",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "style",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "type",
     "$ref": "Optional.String"
   },
   {
     "name": "albumlabel",
     "$ref": "Optional.String"
   },
   {
     "name": "rating",
     "$ref": "Optional.Number"
   },
   {
     "name": "year",
     "$ref": "Optional.Integer"
   },
   {
     "name": "userrating",
     "$ref": "Optional.Integer"
   },
   {
     "name": "votes",
     "$ref": "Optional.Integer"
   },
   {
     "name": "musicbrainzalbumid",
     "$ref": "Optional.String"
   },
   {
     "name": "musicbrainzreleasegroupid",
     "$ref": "Optional.String"
   },
   {
     "name": "sortartist",
     "$ref": "Optional.String"
   },
   {
     "name": "displayartist",
     "$ref": "Optional.String"
   },
   {
     "name": "musicbrainzalbumartistid",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "isboxset",
     "$ref": "Optional.Boolean"
   },
   {
     "name": "releasedate",
     "$ref": "Optional.String"
   },
   {
     "name": "originaldate",
     "$ref": "Optional.String"
   }
 ],
 "returns": "string"

}

AudioLibrary.SetArtistDetails

Update the given artist with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id artistid
  2. [Optional.String artist]
  3. [mixed: Array.String instrument = None]
  4. [mixed: Array.String style = None]
  5. [mixed: Array.String mood = None]
  6. [Optional.String born]
  7. [Optional.String formed]
  8. [Optional.String description]
  9. [mixed: Array.String genre = None]
  10. [Optional.String died]
  11. [Optional.String disbanded]
  12. [mixed: Array.String yearsactive = None]
  13. [Optional.String musicbrainzartistid]
  14. [Optional.String sortname]
  15. [Optional.String type]
  16. [Optional.String gender]
  17. [Optional.String disambiguation]
  18. [mixed: Media.Artwork.Set art = None]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given artist with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "artistid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "artist",
     "$ref": "Optional.String"
   },
   {
     "name": "instrument",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "style",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "mood",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "born",
     "$ref": "Optional.String"
   },
   {
     "name": "formed",
     "$ref": "Optional.String"
   },
   {
     "name": "description",
     "$ref": "Optional.String"
   },
   {
     "name": "genre",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "died",
     "$ref": "Optional.String"
   },
   {
     "name": "disbanded",
     "$ref": "Optional.String"
   },
   {
     "name": "yearsactive",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "musicbrainzartistid",
     "$ref": "Optional.String"
   },
   {
     "name": "sortname",
     "$ref": "Optional.String"
   },
   {
     "name": "type",
     "$ref": "Optional.String"
   },
   {
     "name": "gender",
     "$ref": "Optional.String"
   },
   {
     "name": "disambiguation",
     "$ref": "Optional.String"
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   }
 ],
 "returns": "string"

}

AudioLibrary.SetSongDetails

Update the given song with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id songid
  2. [Optional.String title]
  3. [mixed: Array.String artist = None]
  4. [mixed: Array.String genre = None]
  5. [Optional.Integer year]
  6. [Optional.Number rating]
  7. [Optional.Integer track]
  8. [Optional.Integer disc]
  9. [Optional.Integer duration]
  10. [Optional.String comment]
  11. [Optional.String musicbrainztrackid]
  12. [Optional.String musicbrainzartistid]
  13. [Optional.Integer playcount]
  14. [Optional.String lastplayed]
  15. [Optional.Integer userrating]
  16. [Optional.Integer votes]
  17. [Optional.String displayartist]
  18. [Optional.String sortartist]
  19. [Optional.String mood]
  20. [mixed: Media.Artwork.Set art = None]
  21. [Optional.String disctitle]
  22. [Optional.String releasedate]
  23. [Optional.String originaldate]
  24. [Optional.Integer bpm]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given song with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "songid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   },
   {
     "name": "artist",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "genre",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "year",
     "$ref": "Optional.Integer"
   },
   {
     "name": "rating",
     "$ref": "Optional.Number"
   },
   {
     "name": "track",
     "$ref": "Optional.Integer"
   },
   {
     "name": "disc",
     "$ref": "Optional.Integer"
   },
   {
     "name": "duration",
     "$ref": "Optional.Integer"
   },
   {
     "name": "comment",
     "$ref": "Optional.String"
   },
   {
     "name": "musicbrainztrackid",
     "$ref": "Optional.String"
   },
   {
     "name": "musicbrainzartistid",
     "$ref": "Optional.String"
   },
   {
     "name": "playcount",
     "$ref": "Optional.Integer"
   },
   {
     "name": "lastplayed",
     "$ref": "Optional.String"
   },
   {
     "name": "userrating",
     "$ref": "Optional.Integer"
   },
   {
     "name": "votes",
     "$ref": "Optional.Integer"
   },
   {
     "name": "displayartist",
     "$ref": "Optional.String"
   },
   {
     "name": "sortartist",
     "$ref": "Optional.String"
   },
   {
     "name": "mood",
     "$ref": "Optional.String"
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "disctitle",
     "$ref": "Optional.String"
   },
   {
     "name": "releasedate",
     "$ref": "Optional.String"
   },
   {
     "name": "originaldate",
     "$ref": "Optional.String"
   },
   {
     "name": "bpm",
     "$ref": "Optional.Integer"
   }
 ],
 "returns": "string"

}

Favourites

Favourites.AddFavourite

Add a favourite with the given details
Permissions:

  • UpdateData

Parameters:

  1. string title
  2. Favourite.Type type
  3. [Optional.String path] (Required for media, script and androidapp favourites types)
  4. [Optional.String window] (Required for window favourite type)
  5. [Optional.String windowparameter]
  6. [Optional.String thumbnail]

Returns:

Type: string

{

 "type": "method",
 "description": "Add a favourite with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "title",
     "type": "string",
     "required": true
   },
   {
     "name": "type",
     "$ref": "Favourite.Type",
     "required": true
   },
   {
     "name": "path",
     "$ref": "Optional.String",
     "description": "Required for media, script and androidapp favourites types"
   },
   {
     "name": "window",
     "$ref": "Optional.String",
     "description": "Required for window favourite type"
   },
   {
     "name": "windowparameter",
     "$ref": "Optional.String"
   },
   {
     "name": "thumbnail",
     "$ref": "Optional.String"
   }
 ],
 "returns": "string"

}

Favourites.GetFavourites

Retrieve all favourites
Permissions:

  • ReadData

Parameters:

  1. [mixed: Favourite.Type type = None]
  2. [Favourite.Fields.Favourite properties]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayFavourite.Details.Favourite favourites]

{

 "type": "method",
 "description": "Retrieve all favourites",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "type",
     "type": [
       "null",
       {
         "$ref": "Favourite.Type"
       }
     ],
     "default": null
   },
   {
     "name": "properties",
     "$ref": "Favourite.Fields.Favourite"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "favourites": {
       "type": "array",
       "items": {
         "$ref": "Favourite.Details.Favourite"
       }
     }
   }
 }

}

Files

Files.Download

Downloads the given file
Permissions:

  • ReadData

Parameters:

  1. string path

Returns:

Type: any

{

 "type": "method",
 "description": "Downloads the given file",
 "transport": [
   "Response",
   "FileDownloadDirect"
 ],
 "permission": "ReadData",
 "params": [
   {
     "name": "path",
     "type": "string",
     "required": true
   }
 ],
 "returns": {
   "type": "any",
   "required": true
 }

}

Files.GetDirectory

Get the directories and files in the given directory
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayList.Item.File files

{

 "type": "method",
 "description": "Get the directories and files in the given directory",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "directory",
     "type": "string",
     "required": true
   },
   {
     "name": "media",
     "$ref": "Files.Media",
     "default": "files"
   },
   {
     "name": "properties",
     "$ref": "List.Fields.Files"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "limits",
     "$ref": "List.Limits",
     "description": "Limits are applied after getting the directory content thus retrieval is not faster when they are applied."
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "files": {
       "type": "array",
       "items": {
         "$ref": "List.Item.File"
       },
       "required": true
     }
   }
 }

}

Files.GetFileDetails

Get details for a specific file
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

  1. List.Item.File filedetails

{

 "type": "method",
 "description": "Get details for a specific file",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "file",
     "type": "string",
     "required": true,
     "description": "Full path to the file"
   },
   {
     "name": "media",
     "$ref": "Files.Media",
     "default": "files"
   },
   {
     "name": "properties",
     "$ref": "List.Fields.Files"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "filedetails": {
       "$ref": "List.Item.File",
       "required": true
     }
   }
 }

}

Files.GetSources

Get the sources of the media windows
Permissions:

  • ReadData

Parameters:

  1. Files.Media media
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. List.Items.Sources sources

{

 "type": "method",
 "description": "Get the sources of the media windows",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "media",
     "$ref": "Files.Media",
     "required": true
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "sources": {
       "$ref": "List.Items.Sources",
       "required": true
     }
   }
 }

}

Files.PrepareDownload

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

  • ReadData

Parameters:

  1. string path

Returns:

Type: object
Properties:

  1. string protocol
  2. any details (Transport specific details on how/from where to download the given file)
  3. string mode (Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol)

{

 "type": "method",
 "description": "Provides a way to download a given file (e.g. providing an URL to the real file location)",
 "transport": [
   "Response",
   "FileDownloadRedirect"
 ],
 "permission": "ReadData",
 "params": [
   {
     "name": "path",
     "type": "string",
     "required": true
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "protocol": {
       "type": "string",
       "enum": [
         "http"
       ],
       "required": true
     },
     "details": {
       "type": "any",
       "required": true,
       "description": "Transport specific details on how/from where to download the given file"
     },
     "mode": {
       "type": "string",
       "enum": [
         "redirect",
         "direct"
       ],
       "required": true,
       "description": "Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol"
     }
   }
 }

}

Files.SetFileDetails

Update the given specific file with the given details
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given specific file with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "file",
     "type": "string",
     "required": true,
     "description": "Full path to the file"
   },
   {
     "name": "media",
     "$ref": "Files.Media",
     "required": true,
     "description": "File type to update correct database. Currently only \"video\" is supported."
   },
   {
     "name": "playcount",
     "$ref": "Optional.Integer"
   },
   {
     "name": "lastplayed",
     "$ref": "Optional.String",
     "description": "Setting a valid lastplayed without a playcount will force playcount to 1."
   },
   {
     "name": "resume",
     "type": [
       "null",
       {
         "$ref": "Video.Resume",
         "required": true
       }
     ],
     "default": null
   }
 ],
 "returns": "string"

}

GUI

GUI.ActivateWindow

Activates the given window
Permissions:

  • ControlGUI

Parameters:

  1. GUI.Window window
  2. [array parameters]

Returns:

Type: string

{

 "type": "method",
 "description": "Activates the given window",
 "transport": "Response",
 "permission": "ControlGUI",
 "params": [
   {
     "name": "window",
     "$ref": "GUI.Window",
     "required": true
   },
   {
     "name": "parameters",
     "type": "array",
     "items": {
       "type": "string",
       "minLength": 1,
       "required": true
     },
     "minItems": 1
   }
 ],
 "returns": "string"

}

GUI.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array properties

Returns:

Type: GUI.Property.Value

{

 "type": "method",
 "description": "Retrieves the values of the given properties",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "type": "array",
     "uniqueItems": true,
     "required": true,
     "items": {
       "$ref": "GUI.Property.Name"
     }
   }
 ],
 "returns": {
   "$ref": "GUI.Property.Value",
   "required": true
 }

}

GUI.GetStereoscopicModes

Returns the supported stereoscopic modes of the GUI
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. [arrayGUI.Stereoscopy.Mode stereoscopicmodes]

{

 "type": "method",
 "description": "Returns the supported stereoscopic modes of the GUI",
 "transport": "Response",
 "permission": "ReadData",
 "params": [],
 "returns": {
   "type": "object",
   "properties": {
     "stereoscopicmodes": {
       "type": "array",
       "uniqueItems": true,
       "items": {
         "$ref": "GUI.Stereoscopy.Mode"
       }
     }
   }
 }

}

GUI.SetFullscreen

Toggle fullscreen/GUI
Permissions:

  • ControlGUI

Parameters:

  1. Global.Toggle fullscreen

Returns:

Type: boolean (Fullscreen state)

{

 "type": "method",
 "description": "Toggle fullscreen/GUI",
 "transport": "Response",
 "permission": "ControlGUI",
 "params": [
   {
     "name": "fullscreen",
     "required": true,
     "$ref": "Global.Toggle"
   }
 ],
 "returns": {
   "type": "boolean",
   "description": "Fullscreen state"
 }

}

GUI.SetStereoscopicMode

Sets the stereoscopic mode of the GUI to the given mode
Permissions:

  • ControlGUI

Parameters:

  1. string mode

Returns:

Type: string

{

 "type": "method",
 "description": "Sets the stereoscopic mode of the GUI to the given mode",
 "transport": "Response",
 "permission": "ControlGUI",
 "params": [
   {
     "name": "mode",
     "type": "string",
     "enum": [
       "toggle",
       "tomono",
       "next",
       "previous",
       "select",
       "off",
       "split_vertical",
       "split_horizontal",
       "row_interleaved",
       "hardware_based",
       "anaglyph_cyan_red",
       "anaglyph_green_magenta",
       "monoscopic"
     ],
     "required": true
   }
 ],
 "returns": "string"

}

GUI.ShowNotification

Shows a GUI notification
Permissions:

  • ControlGUI

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Shows a GUI notification",
 "transport": "Response",
 "permission": "ControlGUI",
 "params": [
   {
     "name": "title",
     "type": "string",
     "required": true
   },
   {
     "name": "message",
     "type": "string",
     "required": true
   },
   {
     "name": "image",
     "type": [
       {
         "type": "string",
         "required": true,
         "enum": [
           "info",
           "warning",
           "error"
         ]
       },
       {
         "type": "string",
         "required": true
       }
     ],
     "default": ""
   },
   {
     "name": "displaytime",
     "type": "integer",
     "minimum": 1500,
     "default": 5000,
     "description": "The time in milliseconds the notification will be visible"
   }
 ],
 "returns": "string"

}

Input

Input.Back

Goes back in GUI
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Goes back in GUI",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.ButtonEvent

Send a button press event
Permissions:

  • Navigate

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Send a button press event",
 "transport": "Response",
 "permission": "Navigate",
 "params": [
   {
     "name": "button",
     "type": "string",
     "required": true,
     "description": "Button name"
   },
   {
     "name": "keymap",
     "type": "string",
     "required": true,
     "description": "Keymap name (KB, XG, R1, or R2)",
     "enum": [
       "KB",
       "XG",
       "R1",
       "R2"
     ]
   },
   {
     "name": "holdtime",
     "type": "integer",
     "required": false,
     "minimum": 0,
     "default": 0,
     "description": "Number of milliseconds to simulate button hold."
   }
 ],
 "returns": "string"

}

Input.ContextMenu

Shows the context menu
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Shows the context menu",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.Down

Navigate down in GUI
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Navigate down in GUI",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.ExecuteAction

Execute a specific action
Permissions:

  • Navigate

Parameters:

  1. Input.Action action

Returns:

Type: string

{

 "type": "method",
 "description": "Execute a specific action",
 "transport": "Response",
 "permission": "Navigate",
 "params": [
   {
     "name": "action",
     "$ref": "Input.Action",
     "required": true
   }
 ],
 "returns": "string"

}

Input.Home

Goes to home window in GUI
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Goes to home window in GUI",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.Info

Shows the information dialog
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Shows the information dialog",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.Left

Navigate left in GUI
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Navigate left in GUI",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.Right

Navigate right in GUI
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Navigate right in GUI",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.Select

Select current item in GUI
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Select current item in GUI",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.SendText

Send a generic (unicode) text
Permissions:

  • Navigate

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Send a generic (unicode) text",
 "transport": "Response",
 "permission": "Navigate",
 "params": [
   {
     "name": "text",
     "type": "string",
     "required": true,
     "description": "Unicode text"
   },
   {
     "name": "done",
     "type": "boolean",
     "default": true,
     "description": "Whether this is the whole input or not (closes an open input dialog if true)."
   }
 ],
 "returns": "string"

}

Input.ShowCodec

Show codec information of the playing item
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Show codec information of the playing item",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.ShowOSD

Show the on-screen display for the current player
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Show the on-screen display for the current player",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.ShowPlayerProcessInfo

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

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

Input.Up

Navigate up in GUI
Permissions:

  • Navigate

Returns:

Type: string

{

 "type": "method",
 "description": "Navigate up in GUI",
 "transport": "Response",
 "permission": "Navigate",
 "params": [],
 "returns": "string"

}

JSONRPC

JSONRPC.GetConfiguration

Get client-specific configurations
Permissions:

  • ReadData

Returns:

Type: Configuration

{

 "type": "method",
 "description": "Get client-specific configurations",
 "transport": "Announcing",
 "permission": "ReadData",
 "params": [],
 "returns": {
   "$ref": "Configuration"
 }

}

JSONRPC.Introspect

Enumerates all actions and descriptions
Permissions:

  • ReadData

Parameters:

  1. [boolean getdescriptions = True]
  2. [boolean getmetadata = False]
  3. [boolean filterbytransport = True]
  4. [object filter]

Returns:

Type: object

{

 "type": "method",
 "description": "Enumerates all actions and descriptions",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "getdescriptions",
     "type": "boolean",
     "default": true
   },
   {
     "name": "getmetadata",
     "type": "boolean",
     "default": false
   },
   {
     "name": "filterbytransport",
     "type": "boolean",
     "default": true
   },
   {
     "name": "filter",
     "type": "object",
     "properties": {
       "id": {
         "type": "string",
         "required": true,
         "description": "Name of a namespace, method or type"
       },
       "type": {
         "type": "string",
         "required": true,
         "enum": [
           "method",
           "namespace",
           "type",
           "notification"
         ],
         "description": "Type of the given name"
       },
       "getreferences": {
         "type": "boolean",
         "default": true,
         "description": "Whether or not to print the schema for referenced types"
       }
     }
   }
 ],
 "returns": "object"

}

JSONRPC.NotifyAll

Notify all other connected clients
Permissions:

  • ReadData

Parameters:

  1. string sender
  2. string message
  3. [any data = None]

Returns:

Type: any

{

 "type": "method",
 "description": "Notify all other connected clients",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "message",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "any",
     "default": null
   }
 ],
 "returns": "any"

}

JSONRPC.Permission

Retrieve the clients permissions
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. boolean ReadData
  2. boolean ControlPlayback
  3. boolean ControlNotify
  4. boolean ControlPower
  5. boolean UpdateData
  6. boolean RemoveData
  7. boolean Navigate
  8. boolean WriteFile
  9. boolean ControlSystem
  10. boolean ControlGUI
  11. boolean ManageAddon
  12. boolean ExecuteAddon
  13. boolean ControlPVR

{

 "type": "method",
 "description": "Retrieve the clients permissions",
 "transport": "Response",
 "permission": "ReadData",
 "params": [],
 "returns": {
   "type": "object",
   "properties": {
     "ReadData": {
       "type": "boolean",
       "required": true
     },
     "ControlPlayback": {
       "type": "boolean",
       "required": true
     },
     "ControlNotify": {
       "type": "boolean",
       "required": true
     },
     "ControlPower": {
       "type": "boolean",
       "required": true
     },
     "UpdateData": {
       "type": "boolean",
       "required": true
     },
     "RemoveData": {
       "type": "boolean",
       "required": true
     },
     "Navigate": {
       "type": "boolean",
       "required": true
     },
     "WriteFile": {
       "type": "boolean",
       "required": true
     },
     "ControlSystem": {
       "type": "boolean",
       "required": true
     },
     "ControlGUI": {
       "type": "boolean",
       "required": true
     },
     "ManageAddon": {
       "type": "boolean",
       "required": true
     },
     "ExecuteAddon": {
       "type": "boolean",
       "required": true
     },
     "ControlPVR": {
       "type": "boolean",
       "required": true
     }
   }
 }

}

JSONRPC.Ping

Ping responder
Permissions:

  • ReadData

Returns:

Type: string

{

 "type": "method",
 "description": "Ping responder",
 "transport": "Response",
 "permission": "ReadData",
 "params": [],
 "returns": "string"

}

JSONRPC.SetConfiguration

Change the client-specific configuration
Permissions:

  • ControlNotify

Parameters:

  1. [object notifications]

Returns:

Type: Configuration

{

 "type": "method",
 "description": "Change the client-specific configuration",
 "transport": "Announcing",
 "permission": "ControlNotify",
 "params": [
   {
     "name": "notifications",
     "type": "object",
     "properties": {
       "Player": {
         "$ref": "Optional.Boolean"
       },
       "Playlist": {
         "$ref": "Optional.Boolean"
       },
       "GUI": {
         "$ref": "Optional.Boolean"
       },
       "System": {
         "$ref": "Optional.Boolean"
       },
       "AudioLibrary": {
         "$ref": "Optional.Boolean"
       },
       "VideoLibrary": {
         "$ref": "Optional.Boolean"
       },
       "Application": {
         "$ref": "Optional.Boolean"
       },
       "Input": {
         "$ref": "Optional.Boolean"
       },
       "Other": {
         "$ref": "Optional.Boolean"
       }
     }
   }
 ],
 "returns": {
   "$ref": "Configuration"
 }

}

JSONRPC.Version

Retrieve the JSON-RPC protocol version.
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. object version

{

 "type": "method",
 "description": "Retrieve the JSON-RPC protocol version.",
 "transport": "Response",
 "permission": "ReadData",
 "params": [],
 "returns": {
   "type": "object",
   "properties": {
     "version": {
       "type": "object",
       "required": true,
       "properties": {
         "major": {
           "type": "integer",
           "minimum": 0,
           "required": true,
           "description": "Bumped on backwards incompatible changes to the API definition"
         },
         "minor": {
           "type": "integer",
           "minimum": 0,
           "required": true,
           "description": "Bumped on backwards compatible additions/changes to the API definition"
         },
         "patch": {
           "type": "integer",
           "minimum": 0,
           "required": true,
           "description": "Bumped on any changes to the internal implementation but not to the API definition"
         }
       }
     }
   }
 }

}

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:

  • ControlPVR

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Adds a timer to record the given show one times or a timer rule to record all showings of the given show",
 "transport": "Response",
 "permission": "ControlPVR",
 "params": [
   {
     "name": "broadcastid",
     "$ref": "Library.Id",
     "required": true,
     "description": "the broadcast id of the item to record"
   },
   {
     "name": "timerrule",
     "type": "boolean",
     "default": false,
     "description": "controls whether to create a timer rule or a onetime timer"
   }
 ],
 "returns": "string"

}

PVR.DeleteTimer

Deletes a onetime timer or a timer rule
Permissions:

  • ControlPVR

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Deletes a onetime timer or a timer rule",
 "transport": "Response",
 "permission": "ControlPVR",
 "params": [
   {
     "name": "timerid",
     "$ref": "Library.Id",
     "required": true,
     "description": "the id of the onetime timer or timer rule to delete"
   }
 ],
 "returns": "string"

}

PVR.GetBroadcastDetails

Retrieves the details of a specific broadcast
Permissions:

  • ReadData

Parameters:

  1. Library.Id broadcastid
  2. [PVR.Fields.Broadcast properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Broadcast broadcastdetails]

{

 "type": "method",
 "description": "Retrieves the details of a specific broadcast",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "broadcastid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "PVR.Fields.Broadcast"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "broadcastdetails": {
       "$ref": "PVR.Details.Broadcast"
     }
   }
 }

}

PVR.GetBroadcasts

Retrieves the program of a specific channel
Permissions:

  • ReadData

Parameters:

  1. Library.Id channelid
  2. [PVR.Fields.Broadcast properties]
  3. [List.Limits limits]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayPVR.Details.Broadcast broadcasts

{

 "type": "method",
 "description": "Retrieves the program of a specific channel",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "channelid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "PVR.Fields.Broadcast"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "broadcasts": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "PVR.Details.Broadcast"
       }
     }
   }
 }

}

PVR.GetChannelDetails

Retrieves the details of a specific channel
Permissions:

  • ReadData

Parameters:

  1. Library.Id channelid
  2. [PVR.Fields.Channel properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Channel channeldetails]

{

 "type": "method",
 "description": "Retrieves the details of a specific channel",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "channelid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "PVR.Fields.Channel"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "channeldetails": {
       "$ref": "PVR.Details.Channel"
     }
   }
 }

}

PVR.GetChannelGroupDetails

Retrieves the details of a specific channel group
Permissions:

  • ReadData

Parameters:

  1. PVR.ChannelGroup.Id channelgroupid
  2. [object channels]

Returns:

Type: object
Properties:

  1. [PVR.Details.ChannelGroup.Extended channelgroupdetails]

{

 "type": "method",
 "description": "Retrieves the details of a specific channel group",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "channelgroupid",
     "$ref": "PVR.ChannelGroup.Id",
     "required": true
   },
   {
     "name": "channels",
     "type": "object",
     "properties": {
       "properties": {
         "$ref": "PVR.Fields.Channel"
       },
       "limits": {
         "$ref": "List.Limits"
       }
     }
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "channelgroupdetails": {
       "$ref": "PVR.Details.ChannelGroup.Extended"
     }
   }
 }

}

PVR.GetChannelGroups

Retrieves the channel groups for the specified type
Permissions:

  • ReadData

Parameters:

  1. PVR.Channel.Type channeltype
  2. [List.Limits limits]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayPVR.Details.ChannelGroup channelgroups

{

 "type": "method",
 "description": "Retrieves the channel groups for the specified type",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "channeltype",
     "$ref": "PVR.Channel.Type",
     "required": true
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "channelgroups": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "PVR.Details.ChannelGroup"
       }
     }
   }
 }

}

PVR.GetChannels

Retrieves the channel list
Permissions:

  • ReadData

Parameters:

  1. PVR.ChannelGroup.Id channelgroupid
  2. [PVR.Fields.Channel properties]
  3. [List.Limits limits]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayPVR.Details.Channel channels

{

 "type": "method",
 "description": "Retrieves the channel list",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "channelgroupid",
     "$ref": "PVR.ChannelGroup.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "PVR.Fields.Channel"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "channels": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "PVR.Details.Channel"
       }
     }
   }
 }

}

PVR.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array properties

Returns:

Type: PVR.Property.Value

{

 "type": "method",
 "description": "Retrieves the values of the given properties",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "type": "array",
     "uniqueItems": true,
     "required": true,
     "items": {
       "$ref": "PVR.Property.Name"
     }
   }
 ],
 "returns": {
   "$ref": "PVR.Property.Value",
   "required": true
 }

}

PVR.GetRecordingDetails

Retrieves the details of a specific recording
Permissions:

  • ReadData

Parameters:

  1. Library.Id recordingid
  2. [PVR.Fields.Recording properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Recording recordingdetails]

{

 "type": "method",
 "description": "Retrieves the details of a specific recording",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "recordingid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "PVR.Fields.Recording"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "recordingdetails": {
       "$ref": "PVR.Details.Recording"
     }
   }
 }

}

PVR.GetRecordings

Retrieves the recordings
Permissions:

  • ReadData

Parameters:

  1. [PVR.Fields.Recording properties]
  2. [List.Limits limits]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayPVR.Details.Recording recordings

{

 "type": "method",
 "description": "Retrieves the recordings",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "PVR.Fields.Recording"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "recordings": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "PVR.Details.Recording"
       }
     }
   }
 }

}

PVR.GetTimerDetails

Retrieves the details of a specific timer
Permissions:

  • ReadData

Parameters:

  1. Library.Id timerid
  2. [PVR.Fields.Timer properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Timer timerdetails]

{

 "type": "method",
 "description": "Retrieves the details of a specific timer",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "timerid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "PVR.Fields.Timer"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "timerdetails": {
       "$ref": "PVR.Details.Timer"
     }
   }
 }

}

PVR.GetTimers

Retrieves the timers
Permissions:

  • ReadData

Parameters:

  1. [PVR.Fields.Timer properties]
  2. [List.Limits limits]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayPVR.Details.Timer timers

{

 "type": "method",
 "description": "Retrieves the timers",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "PVR.Fields.Timer"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "timers": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "PVR.Details.Timer"
       }
     }
   }
 }

}

PVR.Record

Toggle recording of a channel
Permissions:

  • ControlPVR

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Toggle recording of a channel",
 "transport": "Response",
 "permission": "ControlPVR",
 "params": [
   {
     "name": "record",
     "$ref": "Global.Toggle",
     "default": "toggle"
   },
   {
     "name": "channel",
     "type": [
       {
         "type": "string",
         "enum": [
           "current"
         ],
         "required": true
       },
       {
         "$ref": "Library.Id",
         "required": true
       }
     ],
     "default": "current"
   }
 ],
 "returns": "string"

}

PVR.Scan

Starts a channel scan
Permissions:

  • ControlPVR

Returns:

Type: string

{

 "type": "method",
 "description": "Starts a channel scan",
 "transport": "Response",
 "permission": "ControlPVR",
 "params": [],
 "returns": "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:

  • ControlPVR

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "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",
 "transport": "Response",
 "permission": "ControlPVR",
 "params": [
   {
     "name": "broadcastid",
     "$ref": "Library.Id",
     "required": true,
     "description": "the broadcast id of the item to toggle a onetime timer or time rule for"
   },
   {
     "name": "timerrule",
     "type": "boolean",
     "default": false,
     "description": "controls whether to create / delete a timer rule or a onetime timer"
   }
 ],
 "returns": "string"

}

Player

Player.GetActivePlayers

Returns all active players
Permissions:

  • ReadData

Returns:

Type: array

{

 "type": "method",
 "description": "Returns all active players",
 "transport": "Response",
 "permission": "ReadData",
 "params": [],
 "returns": {
   "type": "array",
   "uniqueItems": true,
   "items": {
     "type": "object",
     "properties": {
       "playerid": {
         "$ref": "Player.Id",
         "required": true
       },
       "type": {
         "$ref": "Player.Type",
         "required": true
       },
       "playertype": {
         "type": "string",
         "enum": [
           "internal",
           "external",
           "remote"
         ],
         "required": true
       }
     }
   }
 }

}

Player.GetItem

Retrieves the currently played item
Permissions:

  • ReadData

Parameters:

  1. Player.Id playerid
  2. [List.Fields.All properties]

Returns:

Type: object
Properties:

  1. List.Item.All item

{

 "type": "method",
 "description": "Retrieves the currently played item",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "List.Fields.All"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "item": {
       "$ref": "List.Item.All",
       "required": true
     }
   }
 }

}

Player.GetPlayers

Get a list of available players
Permissions:

  • ReadData

Parameters:

  1. [string media = all]

Returns:

Type: array

{

 "type": "method",
 "description": "Get a list of available players",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "media",
     "type": "string",
     "enum": [
       "all",
       "video",
       "audio"
     ],
     "default": "all"
   }
 ],
 "returns": {
   "type": "array",
   "uniqueItems": true,
   "items": {
     "type": "object",
     "properties": {
       "name": {
         "$ref": "Global.String.NotEmpty",
         "required": true
       },
       "type": {
         "type": "string",
         "enum": [
           "internal",
           "external",
           "remote"
         ],
         "required": true
       },
       "playsvideo": {
         "type": "boolean",
         "required": true
       },
       "playsaudio": {
         "type": "boolean",
         "required": true
       }
     }
   }
 }

}

Player.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. Player.Id playerid
  2. array properties

Returns:

Type: Player.Property.Value

{

 "type": "method",
 "description": "Retrieves the values of the given properties",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "properties",
     "type": "array",
     "uniqueItems": true,
     "required": true,
     "items": {
       "$ref": "Player.Property.Name"
     }
   }
 ],
 "returns": {
   "$ref": "Player.Property.Value",
   "required": true
 }

}

Player.GetViewMode

Get view mode of video player
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. Player.ViewMode viewmode
  2. number zoom
  3. number pixelratio
  4. number verticalshift
  5. boolean nonlinearstretch

{

 "type": "method",
 "description": "Get view mode of video player",
 "transport": "Response",
 "permission": "ReadData",
 "params": [],
 "returns": {
   "type": "object",
   "properties": {
     "viewmode": {
       "$ref": "Player.ViewMode",
       "required": true
     },
     "zoom": {
       "type": "number",
       "required": true
     },
     "pixelratio": {
       "type": "number",
       "required": true
     },
     "verticalshift": {
       "type": "number",
       "required": true
     },
     "nonlinearstretch": {
       "type": "boolean",
       "required": true
     }
   }
 }

}

Player.GoTo

Go to previous/next/specific item in the playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|Playlist.Position to

Returns:

Type: string

{

 "type": "method",
 "description": "Go to previous/next/specific item in the playlist",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "to",
     "type": [
       {
         "type": "string",
         "enum": [
           "previous",
           "next"
         ],
         "required": true
       },
       {
         "$ref": "Playlist.Position",
         "description": "position in playlist",
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": "string"

}

Player.Move

If picture is zoomed move viewport left/right/up/down otherwise skip previous/next
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. string direction

Returns:

Type: string

{

 "type": "method",
 "description": "If picture is zoomed move viewport left/right/up/down otherwise skip previous/next",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "direction",
     "type": "string",
     "enum": [
       "left",
       "right",
       "up",
       "down"
     ],
     "required": true
   }
 ],
 "returns": "string"

}

Player.Open

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

  • ControlPlayback

Parameters:

  1. [mixed: object|Playlist.Item|object|object|object|object item]
  2. [object options]

Returns:

Type: string

{

 "type": "method",
 "description": "Start playback of either the playlist with the given ID, a slideshow with the pictures from the given directory or a single file or an item from the database.",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "item",
     "type": [
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "playlistid": {
             "$ref": "Playlist.Id",
             "required": true
           },
           "position": {
             "$ref": "Playlist.Position",
             "default": 0
           }
         }
       },
       {
         "$ref": "Playlist.Item",
         "required": true
       },
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "path": {
             "type": "string",
             "required": true
           },
           "random": {
             "type": "boolean",
             "default": true,
             "description": "Deprecated, use the shuffled property of the options parameter instead"
           },
           "recursive": {
             "type": "boolean",
             "default": true
           }
         }
       },
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "partymode": {
             "type": [
               {
                 "type": "string",
                 "required": true,
                 "enum": [
                   "music",
                   "video"
                 ]
               },
               {
                 "type": "string",
                 "required": true,
                 "minLength": 5,
                 "description": "Path to a smartplaylist (*.xsp) file"
               }
             ]
           }
         }
       },
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "channelid": {
             "$ref": "Library.Id",
             "required": true
           }
         }
       },
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "recordingid": {
             "$ref": "Library.Id",
             "required": true
           }
         }
       }
     ]
   },
   {
     "name": "options",
     "type": "object",
     "additionalProperties": false,
     "properties": {
       "playername": {
         "type": [
           "null",
           {
             "type": "string",
             "enum": [
               "default"
             ],
             "required": true
           },
           {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "name of player"
           }
         ],
         "default": null
       },
       "shuffled": {
         "$ref": "Optional.Boolean"
       },
       "repeat": {
         "type": [
           "null",
           {
             "$ref": "Player.Repeat",
             "required": true
           }
         ],
         "default": null
       },
       "resume": {
         "type": [
           {
             "type": "boolean",
             "required": true,
             "description": "Whether to resume from the resume point or not"
           },
           {
             "$ref": "Player.Position.Percentage",
             "required": true,
             "description": "Percentage value to start from"
           },
           {
             "$ref": "Player.Position.Time",
             "required": true,
             "description": "Time to start from"
           }
         ],
         "default": false
       }
     }
   }
 ],
 "returns": "string"

}

Player.PlayPause

Pauses or unpause playback and returns the new state
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. [Global.Toggle play = toggle]

Returns:

Type: Player.Speed

{

 "type": "method",
 "description": "Pauses or unpause playback and returns the new state",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "play",
     "$ref": "Global.Toggle",
     "default": "toggle"
   }
 ],
 "returns": {
   "$ref": "Player.Speed"
 }

}

Player.Rotate

Rotates current picture
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. [string value = clockwise]

Returns:

Type: string

{

 "type": "method",
 "description": "Rotates current picture",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "value",
     "type": "string",
     "enum": [
       "clockwise",
       "counterclockwise"
     ],
     "default": "clockwise"
   }
 ],
 "returns": "string"

}

Player.Seek

Seek through the playing item
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: object|object|object|object value

Returns:

Type: object
Properties:

  1. [Player.Position.Percentage percentage]
  2. [Global.Time time]
  3. [Global.Time totaltime]

{

 "type": "method",
 "description": "Seek through the playing item",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "value",
     "required": true,
     "type": [
       {
         "type": "object",
         "properties": {
           "percentage": {
             "$ref": "Player.Position.Percentage",
             "required": true,
             "description": "Percentage value to seek to"
           }
         },
         "additionalProperties": false,
         "required": true
       },
       {
         "type": "object",
         "properties": {
           "time": {
             "$ref": "Player.Position.Time",
             "required": true,
             "description": "Time to seek to"
           }
         },
         "additionalProperties": false,
         "required": true
       },
       {
         "type": "object",
         "properties": {
           "step": {
             "type": "string",
             "enum": [
               "smallforward",
               "smallbackward",
               "bigforward",
               "bigbackward"
             ],
             "required": true,
             "description": "Seek by predefined jumps"
           }
         },
         "additionalProperties": false,
         "required": true
       },
       {
         "type": "object",
         "properties": {
           "seconds": {
             "type": "integer",
             "required": true,
             "description": "Seek by the given number of seconds"
           }
         },
         "additionalProperties": false,
         "required": true
       }
     ]
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "percentage": {
       "$ref": "Player.Position.Percentage"
     },
     "time": {
       "$ref": "Global.Time"
     },
     "totaltime": {
       "$ref": "Global.Time"
     }
   }
 }

}

Player.SetAudioStream

Set the audio stream played by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|integer stream

Returns:

Type: string

{

 "type": "method",
 "description": "Set the audio stream played by the player",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "stream",
     "required": true,
     "type": [
       {
         "type": "string",
         "enum": [
           "previous",
           "next"
         ]
       },
       {
         "type": "integer",
         "minimum": 0,
         "description": "Index of the audio stream to play"
       }
     ]
   }
 ],
 "returns": "string"

}

Player.SetPartymode

Turn partymode on or off
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. Global.Toggle partymode

Returns:

Type: string

{

 "type": "method",
 "description": "Turn partymode on or off",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "partymode",
     "$ref": "Global.Toggle",
     "required": true
   }
 ],
 "returns": "string"

}

Player.SetRepeat

Set the repeat mode of the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: Player.Repeat|string repeat

Returns:

Type: string

{

 "type": "method",
 "description": "Set the repeat mode of the player",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "repeat",
     "type": [
       {
         "$ref": "Player.Repeat",
         "required": true
       },
       {
         "type": "string",
         "enum": [
           "cycle"
         ],
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": "string"

}

Player.SetShuffle

Shuffle/Unshuffle items in the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. Global.Toggle shuffle

Returns:

Type: string

{

 "type": "method",
 "description": "Shuffle/Unshuffle items in the player",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "shuffle",
     "$ref": "Global.Toggle",
     "required": true
   }
 ],
 "returns": "string"

}

Player.SetSpeed

Set the speed of the current playback
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: integer|Global.IncrementDecrement speed

Returns:

Type: Player.Speed

{

 "type": "method",
 "description": "Set the speed of the current playback",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "speed",
     "type": [
       {
         "type": "integer",
         "required": true,
         "enum": [
           -32,
           -16,
           -8,
           -4,
           -2,
           -1,
           0,
           1,
           2,
           4,
           8,
           16,
           32
         ]
       },
       {
         "$ref": "Global.IncrementDecrement",
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": {
   "$ref": "Player.Speed"
 }

}

Player.SetSubtitle

Set the subtitle displayed by the player
Permissions:

  • ControlPlayback

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Set the subtitle displayed by the player",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "subtitle",
     "required": true,
     "type": [
       {
         "type": "string",
         "enum": [
           "previous",
           "next",
           "off",
           "on"
         ]
       },
       {
         "type": "integer",
         "minimum": 0,
         "description": "Index of the subtitle to display"
       }
     ]
   },
   {
     "name": "enable",
     "type": "boolean",
     "default": false,
     "description": "Whether to enable subtitles to be displayed after setting the new subtitle"
   }
 ],
 "returns": "string"

}

Player.SetVideoStream

Set the video stream played by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|integer stream

Returns:

Type: string

{

 "type": "method",
 "description": "Set the video stream played by the player",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "stream",
     "required": true,
     "type": [
       {
         "type": "string",
         "enum": [
           "previous",
           "next"
         ]
       },
       {
         "type": "integer",
         "minimum": 0,
         "description": "Index of the video stream to play"
       }
     ]
   }
 ],
 "returns": "string"

}

Player.SetViewMode

Set view mode of video player
Permissions:

  • ControlPlayback

Parameters:

  1. mixed: Player.CustomViewMode|Player.ViewMode viewmode

Returns:

Type: string

{

 "type": "method",
 "description": "Set view mode of video player",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "viewmode",
     "type": [
       {
         "$ref": "Player.CustomViewMode",
         "description": "Custom view mode",
         "required": true
       },
       {
         "name": "value",
         "$ref": "Player.ViewMode",
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": "string"

}

Player.Stop

Stops playback
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid

Returns:

Type: string

{

 "type": "method",
 "description": "Stops playback",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   }
 ],
 "returns": "string"

}

Player.Zoom

Zoom current picture
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|integer zoom

Returns:

Type: string

{

 "type": "method",
 "description": "Zoom current picture",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playerid",
     "$ref": "Player.Id",
     "required": true
   },
   {
     "name": "zoom",
     "type": [
       {
         "type": "string",
         "enum": [
           "in",
           "out"
         ],
         "required": true
       },
       {
         "type": "integer",
         "minimum": 1,
         "maximum": 10,
         "description": "zoom level",
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": "string"

}

Playlist

Playlist.Add

Add item(s) to playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. mixed: Playlist.Item|array item

Returns:

Type: string

{

 "type": "method",
 "description": "Add item(s) to playlist",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playlistid",
     "$ref": "Playlist.Id",
     "required": true
   },
   {
     "name": "item",
     "type": [
       {
         "$ref": "Playlist.Item",
         "required": true
       },
       {
         "type": "array",
         "items": {
           "$ref": "Playlist.Item"
         },
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": "string"

}

Playlist.Clear

Clear playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid

Returns:

Type: string

{

 "type": "method",
 "description": "Clear playlist",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playlistid",
     "$ref": "Playlist.Id",
     "required": true
   }
 ],
 "returns": "string"

}

Playlist.GetItems

Get all items from playlist
Permissions:

  • ReadData

Parameters:

  1. Playlist.Id playlistid
  2. [List.Fields.All properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayList.Item.All items

{

 "type": "method",
 "description": "Get all items from playlist",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "playlistid",
     "$ref": "Playlist.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "List.Fields.All"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "items": {
       "type": "array",
       "items": {
         "$ref": "List.Item.All"
       },
       "required": true
     }
   }
 }

}

Playlist.GetPlaylists

Returns all existing playlists
Permissions:

  • ReadData

Returns:

Type: array

{

 "type": "method",
 "description": "Returns all existing playlists",
 "transport": "Response",
 "permission": "ReadData",
 "params": [],
 "returns": {
   "type": "array",
   "uniqueItems": true,
   "items": {
     "type": "object",
     "properties": {
       "playlistid": {
         "$ref": "Playlist.Id",
         "required": true
       },
       "type": {
         "$ref": "Playlist.Type",
         "required": true
       }
     }
   }
 }

}

Playlist.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. Playlist.Id playlistid
  2. array properties

Returns:

Type: Playlist.Property.Value

{

 "type": "method",
 "description": "Retrieves the values of the given properties",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "playlistid",
     "$ref": "Playlist.Id",
     "required": true
   },
   {
     "name": "properties",
     "type": "array",
     "uniqueItems": true,
     "required": true,
     "items": {
       "$ref": "Playlist.Property.Name"
     }
   }
 ],
 "returns": {
   "$ref": "Playlist.Property.Value",
   "required": true
 }

}

Playlist.Insert

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

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Position position
  3. mixed: Playlist.Item|array item

Returns:

Type: string

{

 "type": "method",
 "description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playlistid",
     "$ref": "Playlist.Id",
     "required": true
   },
   {
     "name": "position",
     "$ref": "Playlist.Position",
     "required": true
   },
   {
     "name": "item",
     "type": [
       {
         "$ref": "Playlist.Item",
         "required": true
       },
       {
         "type": "array",
         "items": {
           "$ref": "Playlist.Item"
         },
         "required": true
       }
     ],
     "required": true
   }
 ],
 "returns": "string"

}

Playlist.Remove

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

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Position position

Returns:

Type: string

{

 "type": "method",
 "description": "Remove item from playlist. Does not work for picture playlists (aka slideshows).",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playlistid",
     "$ref": "Playlist.Id",
     "required": true
   },
   {
     "name": "position",
     "$ref": "Playlist.Position",
     "required": true
   }
 ],
 "returns": "string"

}

Playlist.Swap

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

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Position position1
  3. Playlist.Position position2

Returns:

Type: string

{

 "type": "method",
 "description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows).",
 "transport": "Response",
 "permission": "ControlPlayback",
 "params": [
   {
     "name": "playlistid",
     "$ref": "Playlist.Id",
     "required": true
   },
   {
     "name": "position1",
     "$ref": "Playlist.Position",
     "required": true
   },
   {
     "name": "position2",
     "$ref": "Playlist.Position",
     "required": true
   }
 ],
 "returns": "string"

}

Profiles

Profiles.GetCurrentProfile

Retrieve the current profile
Permissions:

  • ReadData

Parameters:

  1. [Profiles.Fields.Profile properties]

Returns:

Type: Profiles.Details.Profile

{

 "type": "method",
 "description": "Retrieve the current profile",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Profiles.Fields.Profile"
   }
 ],
 "returns": {
   "$ref": "Profiles.Details.Profile",
   "required": true
 }

}

Profiles.GetProfiles

Retrieve all profiles
Permissions:

  • ReadData

Parameters:

  1. [Profiles.Fields.Profile properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayProfiles.Details.Profile profiles

{

 "type": "method",
 "description": "Retrieve all profiles",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Profiles.Fields.Profile"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "profiles": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "Profiles.Details.Profile"
       }
     }
   }
 }

}

Profiles.LoadProfile

Load the specified profile
Permissions:

  • Navigate

Parameters:

  1. string profile (Profile name)
  2. [boolean prompt] (Prompt for password)
  3. [Profiles.Password password]

Returns:

Type: string

{

 "type": "method",
 "description": "Load the specified profile",
 "transport": "Response",
 "permission": "Navigate",
 "params": [
   {
     "name": "profile",
     "type": "string",
     "required": true,
     "description": "Profile name"
   },
   {
     "name": "prompt",
     "type": "boolean",
     "description": "Prompt for password"
   },
   {
     "name": "password",
     "$ref": "Profiles.Password"
   }
 ],
 "returns": "string"

}

Settings

Settings.GetCategories

Retrieves all setting categories
Permissions:

  • ReadData

Parameters:

  1. [Setting.Level level = standard]
  2. [string section = ""]
  3. [string properties]

Returns:

Type: object
Properties:

  1. [arraySetting.Details.Category categories]

{

 "type": "method",
 "description": "Retrieves all setting categories",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "level",
     "$ref": "Setting.Level",
     "default": "standard"
   },
   {
     "name": "section",
     "type": "string",
     "default": ""
   },
   {
     "name": "properties",
     "extends": "Item.Fields.Base",
     "items": {
       "type": "string",
       "enum": [
         "settings"
       ]
     }
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "categories": {
       "type": "array",
       "items": {
         "$ref": "Setting.Details.Category"
       }
     }
   }
 }

}

Settings.GetSections

Retrieves all setting sections
Permissions:

  • ReadData

Parameters:

  1. [Setting.Level level = standard]
  2. [Setting.Level properties]

Returns:

Type: object
Properties:

  1. [arraySetting.Details.Section sections]

{

 "type": "method",
 "description": "Retrieves all setting sections",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "level",
     "$ref": "Setting.Level",
     "default": "standard"
   },
   {
     "name": "properties",
     "extends": "Item.Fields.Base",
     "items": {
       "type": "string",
       "enum": [
         "categories"
       ]
     }
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "sections": {
       "type": "array",
       "items": {
         "$ref": "Setting.Details.Section"
       }
     }
   }
 }

}

Settings.GetSettingValue

Retrieves the value of a setting
Permissions:

  • ReadData

Parameters:

  1. string setting

Returns:

Type: object
Properties:

  1. Setting.Value.Extended value

{

 "type": "method",
 "description": "Retrieves the value of a setting",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "setting",
     "type": "string",
     "required": true,
     "minLength": 1
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "value": {
       "$ref": "Setting.Value.Extended",
       "required": true
     }
   }
 }

}

Settings.GetSettings

Retrieves all settings
Permissions:

  • ReadData

Parameters:

  1. [Setting.Level level = standard]
  2. [mixed: object filter = None]

Returns:

Type: object
Properties:

  1. [arraySetting.Details.Setting settings]

{

 "type": "method",
 "description": "Retrieves all settings",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "level",
     "$ref": "Setting.Level",
     "default": "standard"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "section": {
             "type": "string",
             "required": true,
             "minLength": 1
           },
           "category": {
             "type": "string",
             "required": true,
             "minLength": 1
           }
         },
         "additionalProperties": false,
         "required": true
       }
     ],
     "default": null
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "settings": {
       "type": "array",
       "items": {
         "$ref": "Setting.Details.Setting"
       }
     }
   }
 }

}

Settings.ResetSettingValue

Resets the value of a setting
Permissions:

  • WriteSetting

Parameters:

  1. string setting

Returns:

Type: string

{

 "type": "method",
 "description": "Resets the value of a setting",
 "transport": "Response",
 "permission": "WriteSetting",
 "params": [
   {
     "name": "setting",
     "type": "string",
     "required": true,
     "minLength": 1
   }
 ],
 "returns": "string"

}

Settings.SetSettingValue

Changes the value of a setting
Permissions:

  • WriteSetting

Parameters:

  1. string setting
  2. Setting.Value.Extended value

Returns:

Type: boolean

{

 "type": "method",
 "description": "Changes the value of a setting",
 "transport": "Response",
 "permission": "WriteSetting",
 "params": [
   {
     "name": "setting",
     "type": "string",
     "required": true,
     "minLength": 1
   },
   {
     "name": "value",
     "$ref": "Setting.Value.Extended",
     "required": true
   }
 ],
 "returns": "boolean"

}

System

System.EjectOpticalDrive

Ejects or closes the optical disc drive (if available)
Permissions:

  • ControlSystem

Returns:

Type: string

{

 "type": "method",
 "description": "Ejects or closes the optical disc drive (if available)",
 "transport": "Response",
 "permission": "ControlSystem",
 "params": [],
 "returns": "string"

}

System.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array properties

Returns:

Type: System.Property.Value

{

 "type": "method",
 "description": "Retrieves the values of the given properties",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "type": "array",
     "uniqueItems": true,
     "required": true,
     "items": {
       "$ref": "System.Property.Name"
     }
   }
 ],
 "returns": {
   "$ref": "System.Property.Value",
   "required": true
 }

}

System.Hibernate

Puts the system running Kodi into hibernate mode
Permissions:

  • ControlPower

Returns:

Type: string

{

 "type": "method",
 "description": "Puts the system running Kodi into hibernate mode",
 "transport": "Response",
 "permission": "ControlPower",
 "params": [],
 "returns": "string"

}

System.Reboot

Reboots the system running Kodi
Permissions:

  • ControlPower

Returns:

Type: string

{

 "type": "method",
 "description": "Reboots the system running Kodi",
 "transport": "Response",
 "permission": "ControlPower",
 "params": [],
 "returns": "string"

}

System.Shutdown

Shuts the system running Kodi down
Permissions:

  • ControlPower

Returns:

Type: string

{

 "type": "method",
 "description": "Shuts the system running Kodi down",
 "transport": "Response",
 "permission": "ControlPower",
 "params": [],
 "returns": "string"

}

System.Suspend

Suspends the system running Kodi
Permissions:

  • ControlPower

Returns:

Type: string

{

 "type": "method",
 "description": "Suspends the system running Kodi",
 "transport": "Response",
 "permission": "ControlPower",
 "params": [],
 "returns": "string"

}

Textures

Textures.GetTextures

Retrieve all textures
Permissions:

  • ReadData

Parameters:

  1. [Textures.Fields.Texture properties]
  2. [List.Filter.Textures filter]

Returns:

Type: object
Properties:

  1. arrayTextures.Details.Texture textures

{

 "type": "method",
 "description": "Retrieve all textures",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Textures.Fields.Texture"
   },
   {
     "name": "filter",
     "$ref": "List.Filter.Textures"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "textures": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "Textures.Details.Texture"
       }
     }
   }
 }

}

Textures.RemoveTexture

Remove the specified texture
Permissions:

  • RemoveData

Parameters:

  1. Library.Id textureid (Texture database identifier)

Returns:

Type: string

{

 "type": "method",
 "description": "Remove the specified texture",
 "transport": "Response",
 "permission": "RemoveData",
 "params": [
   {
     "name": "textureid",
     "$ref": "Library.Id",
     "required": true,
     "description": "Texture database identifier"
   }
 ],
 "returns": "string"

}

VideoLibrary

VideoLibrary.Clean

Cleans the video library for non-existent items
Permissions:

  • RemoveData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Cleans the video library for non-existent items",
 "transport": "Response",
 "permission": "RemoveData",
 "params": [
   {
     "name": "showdialogs",
     "type": "boolean",
     "default": true,
     "description": "Whether or not to show the progress bar or any other GUI dialog"
   },
   {
     "name": "content",
     "type": "string",
     "default": "video",
     "enum": [
       "video",
       "movies",
       "tvshows",
       "musicvideos"
     ],
     "description": "Content type to clean for"
   }
 ],
 "returns": "string"

}

VideoLibrary.Export

Exports all items from the video library
Permissions:

  • WriteFile

Parameters:

  1. [mixed: object|object options]

Returns:

Type: string

{

 "type": "method",
 "description": "Exports all items from the video library",
 "transport": "Response",
 "permission": "WriteFile",
 "params": [
   {
     "name": "options",
     "type": [
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "path": {
             "type": "string",
             "required": true,
             "minLength": 1,
             "description": "Path to the directory to where the data should be exported"
           }
         }
       },
       {
         "type": "object",
         "required": true,
         "additionalProperties": false,
         "properties": {
           "overwrite": {
             "type": "boolean",
             "default": false,
             "description": "Whether to overwrite existing exported files"
           },
           "images": {
             "type": "boolean",
             "default": false,
             "description": "Whether to export thumbnails and fanart images"
           },
           "actorthumbs": {
             "type": "boolean",
             "default": false,
             "description": "Whether to export actor thumbnails"
           }
         }
       }
     ]
   }
 ],
 "returns": "string"

}

VideoLibrary.GetEpisodeDetails

Retrieve details about a specific tv show episode
Permissions:

  • ReadData

Parameters:

  1. Library.Id episodeid
  2. [Video.Fields.Episode properties]

Returns:

Type: object
Properties:

  1. [Video.Details.Episode episodedetails]

{

 "type": "method",
 "description": "Retrieve details about a specific tv show episode",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "episodeid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.Episode"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "episodedetails": {
       "$ref": "Video.Details.Episode"
     }
   }
 }

}

VideoLibrary.GetEpisodes

Retrieve all tv show episodes
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.Episode episodes]

{

 "type": "method",
 "description": "Retrieve all tv show episodes",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "tvshowid",
     "$ref": "Library.Id"
   },
   {
     "name": "season",
     "type": "integer",
     "minimum": 0,
     "default": -1
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.Episode"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "genreid": {
             "$ref": "Library.Id",
             "required": true,
             "description": "Requires tvshowid to be set"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genre": {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "Requires tvshowid to be set"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "year": {
             "type": "integer",
             "minimum": 0,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "actor": {
             "type": "string",
             "minLength": 1,
             "required": true,
             "description": "Requires tvshowid to be set"
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "director": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "List.Filter.Episodes"
       }
     ]
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "episodes": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.Episode"
       }
     }
   }
 }

}

VideoLibrary.GetGenres

Retrieve all genres
Permissions:

  • ReadData

Parameters:

  1. string type
  2. [Library.Fields.Genre properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayLibrary.Details.Genre genres

{

 "type": "method",
 "description": "Retrieve all genres",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "type",
     "type": "string",
     "required": true,
     "enum": [
       "movie",
       "tvshow",
       "musicvideo"
     ]
   },
   {
     "name": "properties",
     "$ref": "Library.Fields.Genre"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "genres": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "Library.Details.Genre"
       }
     }
   }
 }

}

VideoLibrary.GetInProgressTVShows

Retrieve all in progress tvshows
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.TVShow properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.TVShow tvshows]

{

 "type": "method",
 "description": "Retrieve all in progress tvshows",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.TVShow"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "tvshows": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.TVShow"
       }
     }
   }
 }

}

VideoLibrary.GetMovieDetails

Retrieve details about a specific movie
Permissions:

  • ReadData

Parameters:

  1. Library.Id movieid
  2. [Video.Fields.Movie properties]

Returns:

Type: object
Properties:

  1. [Video.Details.Movie moviedetails]

{

 "type": "method",
 "description": "Retrieve details about a specific movie",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "movieid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.Movie"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "moviedetails": {
       "$ref": "Video.Details.Movie"
     }
   }
 }

}

VideoLibrary.GetMovieSetDetails

Retrieve details about a specific movie set
Permissions:

  • ReadData

Parameters:

  1. Library.Id setid
  2. [Video.Fields.MovieSet properties]
  3. [object movies]

Returns:

Type: object
Properties:

  1. [Video.Details.MovieSet.Extended setdetails]

{

 "type": "method",
 "description": "Retrieve details about a specific movie set",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "setid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.MovieSet"
   },
   {
     "name": "movies",
     "type": "object",
     "properties": {
       "properties": {
         "$ref": "Video.Fields.Movie"
       },
       "limits": {
         "$ref": "List.Limits"
       },
       "sort": {
         "$ref": "List.Sort"
       }
     }
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "setdetails": {
       "$ref": "Video.Details.MovieSet.Extended"
     }
   }
 }

}

VideoLibrary.GetMovieSets

Retrieve all movie sets
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.MovieSet properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.MovieSet sets]

{

 "type": "method",
 "description": "Retrieve all movie sets",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.MovieSet"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "sets": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.MovieSet"
       }
     }
   }
 }

}

VideoLibrary.GetMovies

Retrieve all movies
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.Movie properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Movies filter]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.Movie movies]

{

 "type": "method",
 "description": "Retrieve all movies",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.Movie"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "genreid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genre": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "year": {
             "type": "integer",
             "minimum": 0,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "actor": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "director": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "studio": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "country": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "setid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "set": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "tag": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "List.Filter.Movies"
       }
     ]
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "movies": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.Movie"
       }
     }
   }
 }

}

VideoLibrary.GetMusicVideoDetails

Retrieve details about a specific music video
Permissions:

  • ReadData

Parameters:

  1. Library.Id musicvideoid
  2. [Video.Fields.MusicVideo properties]

Returns:

Type: object
Properties:

  1. [Video.Details.MusicVideo musicvideodetails]

{

 "type": "method",
 "description": "Retrieve details about a specific music video",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "musicvideoid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.MusicVideo"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "musicvideodetails": {
       "$ref": "Video.Details.MusicVideo"
     }
   }
 }

}

VideoLibrary.GetMusicVideos

Retrieve all music videos
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.MusicVideo properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|List.Filter.MusicVideos filter]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.MusicVideo musicvideos]

{

 "type": "method",
 "description": "Retrieve all music videos",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.MusicVideo"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "artist": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genreid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genre": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "year": {
             "type": "integer",
             "minimum": 0,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "director": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "studio": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "tag": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "List.Filter.MusicVideos"
       }
     ]
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "musicvideos": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.MusicVideo"
       }
     }
   }
 }

}

VideoLibrary.GetRecentlyAddedEpisodes

Retrieve all recently added tv episodes
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.Episode properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.Episode episodes]

{

 "type": "method",
 "description": "Retrieve all recently added tv episodes",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.Episode"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "episodes": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.Episode"
       }
     }
   }
 }

}

VideoLibrary.GetRecentlyAddedMovies

Retrieve all recently added movies
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.Movie properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.Movie movies]

{

 "type": "method",
 "description": "Retrieve all recently added movies",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.Movie"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "movies": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.Movie"
       }
     }
   }
 }

}

VideoLibrary.GetRecentlyAddedMusicVideos

Retrieve all recently added music videos
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.MusicVideo properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.MusicVideo musicvideos]

{

 "type": "method",
 "description": "Retrieve all recently added music videos",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.MusicVideo"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "musicvideos": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.MusicVideo"
       }
     }
   }
 }

}

VideoLibrary.GetSeasonDetails

Retrieve details about a specific tv show season
Permissions:

  • ReadData

Parameters:

  1. Library.Id seasonid
  2. [Video.Fields.Season properties]

Returns:

Type: object
Properties:

  1. [Video.Details.Season seasondetails]

{

 "type": "method",
 "description": "Retrieve details about a specific tv show season",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "seasonid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.Season"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "seasondetails": {
       "$ref": "Video.Details.Season"
     }
   }
 }

}

VideoLibrary.GetSeasons

Retrieve all tv seasons
Permissions:

  • ReadData

Parameters:

  1. [Library.Id tvshowid]
  2. [Video.Fields.Season properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.Season seasons]

{

 "type": "method",
 "description": "Retrieve all tv seasons",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "tvshowid",
     "$ref": "Library.Id"
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.Season"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "seasons": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.Season"
       }
     }
   }
 }

}

VideoLibrary.GetTVShowDetails

Retrieve details about a specific tv show
Permissions:

  • ReadData

Parameters:

  1. Library.Id tvshowid
  2. [Video.Fields.TVShow properties]

Returns:

Type: object
Properties:

  1. [Video.Details.TVShow tvshowdetails]

{

 "type": "method",
 "description": "Retrieve details about a specific tv show",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "tvshowid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "properties",
     "$ref": "Video.Fields.TVShow"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "tvshowdetails": {
       "$ref": "Video.Details.TVShow"
     }
   }
 }

}

VideoLibrary.GetTVShows

Retrieve all tv shows
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.TVShow properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|List.Filter.TVShows filter]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [arrayVideo.Details.TVShow tvshows]

{

 "type": "method",
 "description": "Retrieve all tv shows",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "properties",
     "$ref": "Video.Fields.TVShow"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   },
   {
     "name": "filter",
     "type": [
       {
         "type": "object",
         "properties": {
           "genreid": {
             "$ref": "Library.Id",
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "genre": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "year": {
             "type": "integer",
             "minimum": 0,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "actor": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "studio": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "type": "object",
         "properties": {
           "tag": {
             "type": "string",
             "minLength": 1,
             "required": true
           }
         },
         "additionalProperties": false
       },
       {
         "$ref": "List.Filter.TVShows"
       }
     ]
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "tvshows": {
       "type": "array",
       "items": {
         "$ref": "Video.Details.TVShow"
       }
     }
   }
 }

}

VideoLibrary.GetTags

Retrieve all tags
Permissions:

  • ReadData

Parameters:

  1. string type
  2. [Library.Fields.Tag properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. arrayLibrary.Details.Tag tags

{

 "type": "method",
 "description": "Retrieve all tags",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "type",
     "type": "string",
     "required": true,
     "enum": [
       "movie",
       "tvshow",
       "musicvideo"
     ]
   },
   {
     "name": "properties",
     "$ref": "Library.Fields.Tag"
   },
   {
     "name": "limits",
     "$ref": "List.Limits"
   },
   {
     "name": "sort",
     "$ref": "List.Sort"
   }
 ],
 "returns": {
   "type": "object",
   "properties": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "required": true
     },
     "tags": {
       "type": "array",
       "required": true,
       "items": {
         "$ref": "Library.Details.Tag"
       }
     }
   }
 }

}

VideoLibrary.RefreshEpisode

Refresh the given episode in the library
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Refresh the given episode in the library",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "episodeid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "ignorenfo",
     "type": "boolean",
     "required": false,
     "default": false,
     "description": "Whether or not to ignore a local NFO if present."
   },
   {
     "name": "title",
     "type": "string",
     "required": "false",
     "default": "",
     "description": "Title to use for searching (instead of determining it from the item's filename/path)."
   }
 ],
 "returns": "string"

}

VideoLibrary.RefreshMovie

Refresh the given movie in the library
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Refresh the given movie in the library",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "movieid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "ignorenfo",
     "type": "boolean",
     "required": false,
     "default": false,
     "description": "Whether or not to ignore a local NFO if present."
   },
   {
     "name": "title",
     "type": "string",
     "required": "false",
     "default": "",
     "description": "Title to use for searching (instead of determining it from the item's filename/path)."
   }
 ],
 "returns": "string"

}

VideoLibrary.RefreshMusicVideo

Refresh the given music video in the library
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Refresh the given music video in the library",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "musicvideoid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "ignorenfo",
     "type": "boolean",
     "required": false,
     "default": false,
     "description": "Whether or not to ignore a local NFO if present."
   },
   {
     "name": "title",
     "type": "string",
     "required": "false",
     "default": "",
     "description": "Title to use for searching (instead of determining it from the item's filename/path)."
   }
 ],
 "returns": "string"

}

VideoLibrary.RefreshTVShow

Refresh the given tv show in the library
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Refresh the given tv show in the library",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "tvshowid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "ignorenfo",
     "type": "boolean",
     "required": false,
     "default": false,
     "description": "Whether or not to ignore a local NFO if present."
   },
   {
     "name": "refreshepisodes",
     "type": "boolean",
     "required": false,
     "default": false,
     "description": "Whether or not to refresh all episodes belonging to the TV show."
   },
   {
     "name": "title",
     "type": "string",
     "required": "false",
     "default": "",
     "description": "Title to use for searching (instead of determining it from the item's filename/path)."
   }
 ],
 "returns": "string"

}

VideoLibrary.RemoveEpisode

Removes the given episode from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id episodeid

Returns:

Type: string

{

 "type": "method",
 "description": "Removes the given episode from the library",
 "transport": "Response",
 "permission": "RemoveData",
 "params": [
   {
     "name": "episodeid",
     "$ref": "Library.Id",
     "required": true
   }
 ],
 "returns": "string"

}

VideoLibrary.RemoveMovie

Removes the given movie from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id movieid

Returns:

Type: string

{

 "type": "method",
 "description": "Removes the given movie from the library",
 "transport": "Response",
 "permission": "RemoveData",
 "params": [
   {
     "name": "movieid",
     "$ref": "Library.Id",
     "required": true
   }
 ],
 "returns": "string"

}

VideoLibrary.RemoveMusicVideo

Removes the given music video from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id musicvideoid

Returns:

Type: string

{

 "type": "method",
 "description": "Removes the given music video from the library",
 "transport": "Response",
 "permission": "RemoveData",
 "params": [
   {
     "name": "musicvideoid",
     "$ref": "Library.Id",
     "required": true
   }
 ],
 "returns": "string"

}

VideoLibrary.RemoveTVShow

Removes the given tv show from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id tvshowid

Returns:

Type: string

{

 "type": "method",
 "description": "Removes the given tv show from the library",
 "transport": "Response",
 "permission": "RemoveData",
 "params": [
   {
     "name": "tvshowid",
     "$ref": "Library.Id",
     "required": true
   }
 ],
 "returns": "string"

}

VideoLibrary.Scan

Scans the video sources for new library items
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

{

 "type": "method",
 "description": "Scans the video sources for new library items",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "directory",
     "type": "string",
     "default": ""
   },
   {
     "name": "showdialogs",
     "type": "boolean",
     "default": true,
     "description": "Whether or not to show the progress bar or any other GUI dialog"
   }
 ],
 "returns": "string"

}

VideoLibrary.SetEpisodeDetails

Update the given episode with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id episodeid
  2. [Optional.String title]
  3. [Optional.Integer playcount]
  4. [Optional.Integer runtime] (Runtime in seconds)
  5. [mixed: Array.String director = None]
  6. [Optional.String plot]
  7. [Optional.Number rating]
  8. [Optional.String votes]
  9. [Optional.String lastplayed]
  10. [mixed: Array.String writer = None]
  11. [Optional.String firstaired]
  12. [Optional.String productioncode]
  13. [Optional.Integer season]
  14. [Optional.Integer episode]
  15. [Optional.String originaltitle]
  16. [Optional.String thumbnail]
  17. [Optional.String fanart]
  18. [mixed: Media.Artwork.Set art = None]
  19. [mixed: Video.Resume resume = None]
  20. [Optional.Integer userrating]
  21. [Video.Ratings.Set ratings]
  22. [Optional.String dateadded]
  23. [mixed: Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given episode with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "episodeid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   },
   {
     "name": "playcount",
     "$ref": "Optional.Integer"
   },
   {
     "name": "runtime",
     "$ref": "Optional.Integer",
     "description": "Runtime in seconds"
   },
   {
     "name": "director",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "plot",
     "$ref": "Optional.String"
   },
   {
     "name": "rating",
     "$ref": "Optional.Number"
   },
   {
     "name": "votes",
     "$ref": "Optional.String"
   },
   {
     "name": "lastplayed",
     "$ref": "Optional.String"
   },
   {
     "name": "writer",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "firstaired",
     "$ref": "Optional.String"
   },
   {
     "name": "productioncode",
     "$ref": "Optional.String"
   },
   {
     "name": "season",
     "$ref": "Optional.Integer"
   },
   {
     "name": "episode",
     "$ref": "Optional.Integer"
   },
   {
     "name": "originaltitle",
     "$ref": "Optional.String"
   },
   {
     "name": "thumbnail",
     "$ref": "Optional.String"
   },
   {
     "name": "fanart",
     "$ref": "Optional.String"
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "resume",
     "type": [
       "null",
       {
         "$ref": "Video.Resume",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "userrating",
     "$ref": "Optional.Integer"
   },
   {
     "name": "ratings",
     "$ref": "Video.Ratings.Set"
   },
   {
     "name": "dateadded",
     "$ref": "Optional.String"
   },
   {
     "name": "uniqueid",
     "type": [
       "null",
       {
         "$ref": "Media.UniqueID.Set",
         "required": true
       }
     ],
     "default": null
   }
 ],
 "returns": "string"

}

VideoLibrary.SetMovieDetails

Update the given movie with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id movieid
  2. [Optional.String title]
  3. [Optional.Integer playcount]
  4. [Optional.Integer runtime] (Runtime in seconds)
  5. [mixed: Array.String director = None]
  6. [mixed: Array.String studio = None]
  7. [Optional.Integer year] (linked with premiered. Overridden by premiered parameter)
  8. [Optional.String plot]
  9. [mixed: Array.String genre = None]
  10. [Optional.Number rating]
  11. [Optional.String mpaa]
  12. [Optional.String imdbnumber]
  13. [Optional.String votes]
  14. [Optional.String lastplayed]
  15. [Optional.String originaltitle]
  16. [Optional.String trailer]
  17. [Optional.String tagline]
  18. [Optional.String plotoutline]
  19. [mixed: Array.String writer = None]
  20. [mixed: Array.String country = None]
  21. [Optional.Integer top250]
  22. [Optional.String sorttitle]
  23. [Optional.String set]
  24. [mixed: Array.String showlink = None]
  25. [Optional.String thumbnail]
  26. [Optional.String fanart]
  27. [mixed: Array.String tag = None]
  28. [mixed: Media.Artwork.Set art = None]
  29. [mixed: Video.Resume resume = None]
  30. [Optional.Integer userrating]
  31. [Video.Ratings.Set ratings]
  32. [Optional.String dateadded]
  33. [Optional.String premiered] (linked with year. Overrides year)
  34. [mixed: Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given movie with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "movieid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   },
   {
     "name": "playcount",
     "$ref": "Optional.Integer"
   },
   {
     "name": "runtime",
     "$ref": "Optional.Integer",
     "description": "Runtime in seconds"
   },
   {
     "name": "director",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "studio",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "year",
     "$ref": "Optional.Integer",
     "description": "linked with premiered. Overridden by premiered parameter"
   },
   {
     "name": "plot",
     "$ref": "Optional.String"
   },
   {
     "name": "genre",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "rating",
     "$ref": "Optional.Number"
   },
   {
     "name": "mpaa",
     "$ref": "Optional.String"
   },
   {
     "name": "imdbnumber",
     "$ref": "Optional.String"
   },
   {
     "name": "votes",
     "$ref": "Optional.String"
   },
   {
     "name": "lastplayed",
     "$ref": "Optional.String"
   },
   {
     "name": "originaltitle",
     "$ref": "Optional.String"
   },
   {
     "name": "trailer",
     "$ref": "Optional.String"
   },
   {
     "name": "tagline",
     "$ref": "Optional.String"
   },
   {
     "name": "plotoutline",
     "$ref": "Optional.String"
   },
   {
     "name": "writer",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "country",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "top250",
     "$ref": "Optional.Integer"
   },
   {
     "name": "sorttitle",
     "$ref": "Optional.String"
   },
   {
     "name": "set",
     "$ref": "Optional.String"
   },
   {
     "name": "showlink",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "thumbnail",
     "$ref": "Optional.String"
   },
   {
     "name": "fanart",
     "$ref": "Optional.String"
   },
   {
     "name": "tag",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "resume",
     "type": [
       "null",
       {
         "$ref": "Video.Resume",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "userrating",
     "$ref": "Optional.Integer"
   },
   {
     "name": "ratings",
     "$ref": "Video.Ratings.Set"
   },
   {
     "name": "dateadded",
     "$ref": "Optional.String"
   },
   {
     "name": "premiered",
     "$ref": "Optional.String",
     "description": "linked with year. Overrides year"
   },
   {
     "name": "uniqueid",
     "type": [
       "null",
       {
         "$ref": "Media.UniqueID.Set",
         "required": true
       }
     ],
     "default": null
   }
 ],
 "returns": "string"

}

VideoLibrary.SetMovieSetDetails

Update the given movie set with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id setid
  2. [Optional.String title]
  3. [mixed: Media.Artwork.Set art = None]
  4. [Optional.String plot]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given movie set with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "setid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "plot",
     "$ref": "Optional.String"
   }
 ],
 "returns": "string"

}

VideoLibrary.SetMusicVideoDetails

Update the given music video with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id musicvideoid
  2. [Optional.String title]
  3. [Optional.Integer playcount]
  4. [Optional.Integer runtime] (Runtime in seconds)
  5. [mixed: Array.String director = None]
  6. [mixed: Array.String studio = None]
  7. [Optional.Integer year] (linked with premiered. Overridden by premiered parameter)
  8. [Optional.String plot]
  9. [Optional.String album]
  10. [mixed: Array.String artist]
  11. [mixed: Array.String genre = None]
  12. [Optional.Integer track]
  13. [Optional.String lastplayed]
  14. [Optional.String thumbnail]
  15. [Optional.String fanart]
  16. [mixed: Array.String tag = None]
  17. [mixed: Media.Artwork.Set art = None]
  18. [mixed: Video.Resume resume = None]
  19. [Optional.Number rating]
  20. [Optional.Integer userrating]
  21. [Optional.String dateadded]
  22. [Optional.String premiered] (linked with year. Overrides year)

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given music video with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "musicvideoid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   },
   {
     "name": "playcount",
     "$ref": "Optional.Integer"
   },
   {
     "name": "runtime",
     "$ref": "Optional.Integer",
     "description": "Runtime in seconds"
   },
   {
     "name": "director",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "studio",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "year",
     "$ref": "Optional.Integer",
     "description": "linked with premiered. Overridden by premiered parameter"
   },
   {
     "name": "plot",
     "$ref": "Optional.String"
   },
   {
     "name": "album",
     "$ref": "Optional.String"
   },
   {
     "name": "artist",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ]
   },
   {
     "name": "genre",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "track",
     "$ref": "Optional.Integer"
   },
   {
     "name": "lastplayed",
     "$ref": "Optional.String"
   },
   {
     "name": "thumbnail",
     "$ref": "Optional.String"
   },
   {
     "name": "fanart",
     "$ref": "Optional.String"
   },
   {
     "name": "tag",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "resume",
     "type": [
       "null",
       {
         "$ref": "Video.Resume",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "rating",
     "$ref": "Optional.Number"
   },
   {
     "name": "userrating",
     "$ref": "Optional.Integer"
   },
   {
     "name": "dateadded",
     "$ref": "Optional.String"
   },
   {
     "name": "premiered",
     "$ref": "Optional.String",
     "description": "linked with year. Overrides year"
   }
 ],
 "returns": "string"

}

VideoLibrary.SetSeasonDetails

Update the given season with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id seasonid
  2. [mixed: Media.Artwork.Set art = None]
  3. [Optional.Integer userrating]
  4. [Optional.String title]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given season with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "seasonid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "userrating",
     "$ref": "Optional.Integer"
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   }
 ],
 "returns": "string"

}

VideoLibrary.SetTVShowDetails

Update the given tvshow with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id tvshowid
  2. [Optional.String title]
  3. [Optional.Integer playcount]
  4. [mixed: Array.String studio = None]
  5. [Optional.String plot]
  6. [mixed: Array.String genre = None]
  7. [Optional.Number rating]
  8. [Optional.String mpaa]
  9. [Optional.String imdbnumber]
  10. [Optional.String premiered]
  11. [Optional.String votes]
  12. [Optional.String lastplayed]
  13. [Optional.String originaltitle]
  14. [Optional.String sorttitle]
  15. [Optional.String episodeguide]
  16. [Optional.String thumbnail]
  17. [Optional.String fanart]
  18. [mixed: Array.String tag = None]
  19. [mixed: Media.Artwork.Set art = None]
  20. [Optional.Integer userrating]
  21. [Video.Ratings.Set ratings]
  22. [Optional.String dateadded]
  23. [Optional.Integer runtime] (Runtime in seconds)
  24. [Optional.String status] (Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended')
  25. [mixed: Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

{

 "type": "method",
 "description": "Update the given tvshow with the given details",
 "transport": "Response",
 "permission": "UpdateData",
 "params": [
   {
     "name": "tvshowid",
     "$ref": "Library.Id",
     "required": true
   },
   {
     "name": "title",
     "$ref": "Optional.String"
   },
   {
     "name": "playcount",
     "$ref": "Optional.Integer"
   },
   {
     "name": "studio",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "plot",
     "$ref": "Optional.String"
   },
   {
     "name": "genre",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "rating",
     "$ref": "Optional.Number"
   },
   {
     "name": "mpaa",
     "$ref": "Optional.String"
   },
   {
     "name": "imdbnumber",
     "$ref": "Optional.String"
   },
   {
     "name": "premiered",
     "$ref": "Optional.String"
   },
   {
     "name": "votes",
     "$ref": "Optional.String"
   },
   {
     "name": "lastplayed",
     "$ref": "Optional.String"
   },
   {
     "name": "originaltitle",
     "$ref": "Optional.String"
   },
   {
     "name": "sorttitle",
     "$ref": "Optional.String"
   },
   {
     "name": "episodeguide",
     "$ref": "Optional.String"
   },
   {
     "name": "thumbnail",
     "$ref": "Optional.String"
   },
   {
     "name": "fanart",
     "$ref": "Optional.String"
   },
   {
     "name": "tag",
     "type": [
       "null",
       {
         "$ref": "Array.String",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "art",
     "type": [
       "null",
       {
         "$ref": "Media.Artwork.Set",
         "required": true
       }
     ],
     "default": null
   },
   {
     "name": "userrating",
     "$ref": "Optional.Integer"
   },
   {
     "name": "ratings",
     "$ref": "Video.Ratings.Set"
   },
   {
     "name": "dateadded",
     "$ref": "Optional.String"
   },
   {
     "name": "runtime",
     "$ref": "Optional.Integer",
     "description": "Runtime in seconds"
   },
   {
     "name": "status",
     "$ref": "Optional.String",
     "description": "Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended'"
   },
   {
     "name": "uniqueid",
     "type": [
       "null",
       {
         "$ref": "Media.UniqueID.Set",
         "required": true
       }
     ],
     "default": null
   }
 ],
 "returns": "string"

}

XBMC

XBMC.GetInfoBooleans

Retrieve info booleans about Kodi and the system
Permissions:

  • ReadData

Parameters:

  1. array booleans

Returns:

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

{

 "type": "method",
 "description": "Retrieve info booleans about Kodi and the system",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "booleans",
     "type": "array",
     "required": true,
     "items": {
       "type": "string"
     },
     "minItems": 1
   }
 ],
 "returns": {
   "type": "object",
   "description": "Object containing key-value pairs of the retrieved info booleans",
   "additionalProperties": {
     "type": "string"
   }
 }

}

XBMC.GetInfoLabels

Retrieve info labels about Kodi and the system
Permissions:

  • ReadData

Parameters:

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

{

 "type": "method",
 "description": "Retrieve info labels about Kodi and the system",
 "transport": "Response",
 "permission": "ReadData",
 "params": [
   {
     "name": "labels",
     "type": "array",
     "required": true,
     "items": {
       "type": "string"
     },
     "minItems": 1,
     "description": "See http://kodi.wiki/view/InfoLabels for a list of possible info labels"
   }
 ],
 "returns": {
   "type": "object",
   "description": "Object containing key-value pairs of the retrieved info labels",
   "additionalProperties": {
     "type": "string"
   }
 }

}

Global Types

Addon

Addon.Content

Type: string

{

 "type": "string",
 "enum": [
   "unknown",
   "video",
   "audio",
   "image",
   "executable"
 ],
 "default": "unknown"

}

Addon.Details

Extends:

Properties:

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

{

 "extends": "Item.Details.Base",
 "properties": {
   "addonid": {
     "type": "string",
     "required": true
   },
   "type": {
     "$ref": "Addon.Types",
     "required": true
   },
   "name": {
     "type": "string"
   },
   "version": {
     "type": "string"
   },
   "summary": {
     "type": "string"
   },
   "description": {
     "type": "string"
   },
   "path": {
     "type": "string"
   },
   "author": {
     "type": "string"
   },
   "thumbnail": {
     "type": "string"
   },
   "disclaimer": {
     "type": "string"
   },
   "fanart": {
     "type": "string"
   },
   "dependencies": {
     "type": "array",
     "items": {
       "type": "object",
       "properties": {
         "addonid": {
           "type": "string",
           "required": true
         },
         "version": {
           "type": "string",
           "required": true
         },
         "optional": {
           "type": "boolean",
           "required": true
         }
       }
     }
   },
   "broken": {
     "type": [
       "boolean",
       "string"
     ]
   },
   "extrainfo": {
     "type": "array",
     "items": {
       "type": "object",
       "properties": {
         "key": {
           "type": "string",
           "required": true
         },
         "value": {
           "type": "string",
           "required": true
         }
       }
     }
   },
   "rating": {
     "type": "integer"
   },
   "enabled": {
     "type": "boolean"
   },
   "installed": {
     "type": "boolean"
   }
 }

}

Addon.Fields

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "name",
     "version",
     "summary",
     "description",
     "path",
     "author",
     "thumbnail",
     "disclaimer",
     "fanart",
     "dependencies",
     "broken",
     "extrainfo",
     "rating",
     "enabled",
     "installed"
   ]
 }

}

Application

Application.Property.Name

Type: string

{

 "type": "string",
 "enum": [
   "volume",
   "muted",
   "name",
   "version",
   "volume",
   "sorttokens",
   "language"
 ]

}

Application.Property.Value

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "volume": {
     "type": "integer",
     "minimum": 0,
     "maximum": 100
   },
   "muted": {
     "type": "boolean"
   },
   "name": {
     "type": "string",
     "minLength": 1
   },
   "version": {
     "type": "object",
     "properties": {
       "major": {
         "type": "integer",
         "minimum": 0,
         "required": true
       },
       "minor": {
         "type": "integer",
         "minimum": 0,
         "required": true
       },
       "revision": {
         "type": [
           "string",
           "integer"
         ]
       },
       "tag": {
         "type": "string",
         "enum": [
           "prealpha",
           "alpha",
           "beta",
           "releasecandidate",
           "stable"
         ],
         "required": true
       },
       "tagversion": {
         "type": "string"
       }
     }
   },
   "sorttokens": {
     "$ref": "Array.String",
     "description": "Articles ignored during sorting when ignorearticle is enabled."
   },
   "language": {
     "type": "string",
     "minLength": 1,
     "description": "Current language code and region e.g. en_GB"
   }
 }

}

Array

Array.Integer

Type: array

{

 "type": "array",
 "items": {
   "type": "integer"
 }

}

Array.String

Type: array

{

 "type": "array",
 "items": {
   "type": "string",
   "minLength": 1
 }

}

Audio

Audio.Album.ReleaseType

Type: string

{

 "type": "string",
 "enum": [
   "album",
   "single"
 ],
 "default": "album"

}

Audio.Artist.Roles

Type: array

{

 "type": "array",
 "items": {
   "type": "object",
   "description": "The various roles contributed by an artist to one or more songs",
   "properties": {
     "roleid": {
       "$ref": "Library.Id",
       "required": true
     },
     "role": {
       "type": "string",
       "required": true
     }
   },
   "additionalProperties": false
 }

}

Audio.Contributors

Type: array

{

 "type": "array",
 "items": {
   "type": "object",
   "description": "The artist and the role they contribute to a song",
   "properties": {
     "name": {
       "type": "string",
       "required": true
     },
     "role": {
       "type": "string",
       "required": true
     },
     "roleid": {
       "$ref": "Library.Id",
       "required": true
     },
     "artistid": {
       "$ref": "Library.Id",
       "required": true
     }
   },
   "additionalProperties": false
 }

}

Audio.Details.Album

Extends:

Properties:

{

 "extends": "Audio.Details.Media",
 "properties": {
   "albumid": {
     "$ref": "Library.Id",
     "required": true
   },
   "description": {
     "type": "string"
   },
   "theme": {
     "$ref": "Array.String"
   },
   "mood": {
     "$ref": "Array.String"
   },
   "style": {
     "$ref": "Array.String"
   },
   "type": {
     "type": "string"
   },
   "albumlabel": {
     "type": "string"
   },
   "playcount": {
     "type": "integer"
   },
   "compilation": {
     "type": "boolean"
   },
   "releasetype": {
     "$ref": "Audio.Album.ReleaseType"
   },
   "musicbrainzreleasegroupid": {
     "type": "string"
   },
   "musicbrainzalbumid": {
     "type": "string"
   },
   "songgenres": {
     "$ref": "Audio.Details.Genres"
   },
   "lastplayed": {
     "type": "string"
   },
   "sourceid": {
     "$ref": "Array.Integer"
   },
   "isboxset": {
     "type": "boolean"
   },
   "totaldiscs": {
     "type": "integer"
   }
 }

}

Audio.Details.Artist

Extends:

Properties:

{

 "extends": "Audio.Details.Base",
 "properties": {
   "artistid": {
     "$ref": "Library.Id",
     "required": true
   },
   "artist": {
     "type": "string",
     "required": true
   },
   "instrument": {
     "$ref": "Array.String"
   },
   "style": {
     "$ref": "Array.String"
   },
   "mood": {
     "$ref": "Array.String"
   },
   "born": {
     "type": "string"
   },
   "formed": {
     "type": "string"
   },
   "description": {
     "type": "string"
   },
   "died": {
     "type": "string"
   },
   "disbanded": {
     "type": "string"
   },
   "yearsactive": {
     "$ref": "Array.String"
   },
   "compilationartist": {
     "type": "boolean"
   },
   "musicbrainzartistid": {
     "$ref": "Array.String"
   },
   "roles": {
     "$ref": "Audio.Artist.Roles"
   },
   "songgenres": {
     "$ref": "Audio.Details.Genres"
   },
   "isalbumartist": {
     "type": "boolean"
   },
   "sortname": {
     "type": "string"
   },
   "type": {
     "type": "string"
   },
   "gender": {
     "type": "string"
   },
   "disambiguation": {
     "type": "string"
   },
   "sourceid": {
     "$ref": "Array.Integer"
   }
 }

}

Audio.Details.Base

Extends:

Properties:

{

 "extends": "Media.Details.Base",
 "properties": {
   "genre": {
     "$ref": "Array.String"
   },
   "dateadded": {
     "type": "string"
   },
   "art": {
     "$ref": "Media.Artwork"
   }
 }

}

Audio.Details.Genres

Type: array

{

 "type": "array",
 "items": {
   "type": "object",
   "properties": {
     "genreid": {
       "$ref": "Library.Id",
       "required": true
     },
     "title": {
       "type": "string"
     }
   }
 }

}

Audio.Details.Media

Extends:

Properties:

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

{

 "extends": "Audio.Details.Base",
 "properties": {
   "title": {
     "type": "string"
   },
   "artist": {
     "$ref": "Array.String"
   },
   "year": {
     "type": "integer"
   },
   "rating": {
     "type": "number"
   },
   "musicbrainzalbumartistid": {
     "$ref": "Array.String"
   },
   "artistid": {
     "$ref": "Array.Integer"
   },
   "displayartist": {
     "type": "string"
   },
   "votes": {
     "type": "integer"
   },
   "userrating": {
     "type": "integer"
   },
   "sortartist": {
     "type": "string"
   },
   "releasedate": {
     "type": "string"
   },
   "originaldate": {
     "type": "string"
   }
 }

}

Audio.Details.Role

Extends:

Properties:

{

 "extends": "Item.Details.Base",
 "properties": {
   "roleid": {
     "$ref": "Library.Id",
     "required": true
   },
   "title": {
     "type": "string"
   }
 }

}

Audio.Details.Song

Extends:

Properties:

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

{

 "extends": "Audio.Details.Media",
 "properties": {
   "songid": {
     "$ref": "Library.Id",
     "required": true
   },
   "file": {
     "type": "string"
   },
   "albumartist": {
     "$ref": "Array.String"
   },
   "album": {
     "type": "string"
   },
   "track": {
     "type": "integer"
   },
   "duration": {
     "type": "integer"
   },
   "comment": {
     "type": "string"
   },
   "lyrics": {
     "type": "string"
   },
   "playcount": {
     "type": "integer"
   },
   "musicbrainztrackid": {
     "type": "string"
   },
   "musicbrainzartistid": {
     "$ref": "Array.String"
   },
   "albumid": {
     "$ref": "Library.Id"
   },
   "lastplayed": {
     "type": "string"
   },
   "disc": {
     "type": "integer"
   },
   "albumartistid": {
     "$ref": "Array.Integer"
   },
   "albumreleasetype": {
     "$ref": "Audio.Album.ReleaseType"
   },
   "mood": {
     "type": "string"
   },
   "contributors": {
     "$ref": "Audio.Contributors"
   },
   "displaycomposer": {
     "type": "string"
   },
   "displayconductor": {
     "type": "string"
   },
   "displayorchestra": {
     "type": "string"
   },
   "displaylyricist": {
     "type": "string"
   },
   "genreid": {
     "$ref": "Array.Integer"
   },
   "sourceid": {
     "$ref": "Array.Integer"
   },
   "disctitle": {
     "type": "string"
   },
   "bpm": {
     "type": "Integer"
   },
   "samplerate": {
     "type": "Integer"
   },
   "bitrate": {
     "type": "Integer"
   },
   "channels": {
     "type": "Integer"
   }
 }

}

Audio.Fields.Album

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "description": "Requesting the songgenres, artistid and/or sourceid fields will result in increased response times",
   "enum": [
     "title",
     "description",
     "artist",
     "genre",
     "theme",
     "mood",
     "style",
     "type",
     "albumlabel",
     "rating",
     "votes",
     "userrating",
     "year",
     "musicbrainzalbumid",
     "musicbrainzalbumartistid",
     "fanart",
     "thumbnail",
     "playcount",
     "artistid",
     "displayartist",
     "compilation",
     "releasetype",
     "dateadded",
     "sortartist",
     "musicbrainzreleasegroupid",
     "songgenres",
     "art",
     "lastplayed",
     "sourceid",
     "isboxset",
     "totaldiscs",
     "releasedate",
     "originaldate"
   ]
 }

}

Audio.Fields.Artist

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "description": "Requesting the (song)genreid/genre, roleid/role or sourceid fields will result in increased response times",
   "enum": [
     "instrument",
     "style",
     "mood",
     "born",
     "formed",
     "description",
     "genre",
     "died",
     "disbanded",
     "yearsactive",
     "musicbrainzartistid",
     "fanart",
     "thumbnail",
     "compilationartist",
     "dateadded",
     "roles",
     "songgenres",
     "isalbumartist",
     "sortname",
     "type",
     "gender",
     "disambiguation",
     "art",
     "sourceid"
   ]
 }

}

Audio.Fields.Role

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title"
   ]
 }

}

Audio.Fields.Song

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "description": "Requesting the genreid, artistid, albumartistid and/or sourceid fields will result in increased response times",
   "enum": [
     "title",
     "artist",
     "albumartist",
     "genre",
     "year",
     "rating",
     "album",
     "track",
     "duration",
     "comment",
     "lyrics",
     "musicbrainztrackid",
     "musicbrainzartistid",
     "musicbrainzalbumid",
     "musicbrainzalbumartistid",
     "playcount",
     "fanart",
     "thumbnail",
     "file",
     "albumid",
     "lastplayed",
     "disc",
     "genreid",
     "artistid",
     "displayartist",
     "albumartistid",
     "albumreleasetype",
     "dateadded",
     "votes",
     "userrating",
     "mood",
     "contributors",
     "displaycomposer",
     "displayconductor",
     "displayorchestra",
     "displaylyricist",
     "sortartist",
     "art",
     "sourceid",
     "disctitle",
     "releasedate",
     "originaldate",
     "bpm",
     "samplerate",
     "bitrate",
     "channels"
   ]
 }

}

Audio.Property.Name

Type: string

{

 "type": "string",
 "enum": [
   "missingartistid",
   "librarylastupdated"
 ]

}

Audio.Property.Value

Type: object
Properties:

  • [Library.Id missingartistid]
  • [string librarylastupdated]

{

 "type": "object",
 "properties": {
   "missingartistid": {
     "$ref": "Library.Id"
   },
   "librarylastupdated": {
     "type": "string"
   }
 }

}

Configuration

Configuration

Type: object
Properties:

{

 "type": "object",
 "required": true,
 "properties": {
   "notifications": {
     "$ref": "Configuration.Notifications",
     "required": true
   }
 }

}

Configuration.Notifications

Type: object
Properties:

  • boolean Player
  • boolean Playlist
  • boolean GUI
  • boolean System
  • boolean VideoLibrary
  • boolean AudioLibrary
  • boolean Application
  • boolean Input
  • boolean PVR
  • boolean Other

{

 "type": "object",
 "properties": {
   "Player": {
     "type": "boolean",
     "required": true
   },
   "Playlist": {
     "type": "boolean",
     "required": true
   },
   "GUI": {
     "type": "boolean",
     "required": true
   },
   "System": {
     "type": "boolean",
     "required": true
   },
   "VideoLibrary": {
     "type": "boolean",
     "required": true
   },
   "AudioLibrary": {
     "type": "boolean",
     "required": true
   },
   "Application": {
     "type": "boolean",
     "required": true
   },
   "Input": {
     "type": "boolean",
     "required": true
   },
   "PVR": {
     "type": "boolean",
     "required": true
   },
   "Other": {
     "type": "boolean",
     "required": true
   }
 },
 "additionalProperties": false

}

Favourite

Favourite.Details.Favourite

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "title": {
     "type": "string",
     "required": true
   },
   "type": {
     "$ref": "Favourite.Type",
     "required": true
   },
   "path": {
     "type": "string"
   },
   "window": {
     "type": "string"
   },
   "windowparameter": {
     "type": "string"
   },
   "thumbnail": {
     "type": "string"
   }
 },
 "additionalProperties": false

}

Favourite.Fields.Favourite

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "window",
     "windowparameter",
     "thumbnail",
     "path"
   ]
 }

}

Favourite.Type

Type: string

{

 "type": "string",
 "enum": [
   "media",
   "window",
   "script",
   "androidapp",
   "unknown"
 ]

}

Files

Files.Media

Type: string

{

 "type": "string",
 "enum": [
   "video",
   "music",
   "pictures",
   "files",
   "programs"
 ]

}

GUI

GUI.Property.Name

Type: string

{

 "type": "string",
 "enum": [
   "currentwindow",
   "currentcontrol",
   "skin",
   "fullscreen",
   "stereoscopicmode"
 ]

}

GUI.Property.Value

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "currentwindow": {
     "type": "object",
     "properties": {
       "id": {
         "type": "integer",
         "required": true
       },
       "label": {
         "type": "string",
         "required": true
       }
     }
   },
   "currentcontrol": {
     "type": "object",
     "properties": {
       "label": {
         "type": "string",
         "required": true
       }
     }
   },
   "skin": {
     "type": "object",
     "properties": {
       "id": {
         "type": "string",
         "required": true,
         "minLength": 1
       },
       "name": {
         "type": "string"
       }
     }
   },
   "fullscreen": {
     "type": "boolean"
   },
   "stereoscopicmode": {
     "$ref": "GUI.Stereoscopy.Mode"
   }
 }

}

GUI.Stereoscopy.Mode

Type: object
Properties:

  • string mode
  • string label

{

 "type": "object",
 "properties": {
   "mode": {
     "type": "string",
     "required": true,
     "enum": [
       "off",
       "split_vertical",
       "split_horizontal",
       "row_interleaved",
       "hardware_based",
       "anaglyph_cyan_red",
       "anaglyph_green_magenta",
       "anaglyph_yellow_blue",
       "monoscopic"
     ]
   },
   "label": {
     "type": "string",
     "required": true
   }
 }

}

Global

Global.IncrementDecrement

Type: string

{

 "type": "string",
 "enum": [
   "increment",
   "decrement"
 ]

}

Global.String.NotEmpty

Type: string

{

 "type": "string",
 "minLength": 1

}

Global.Time

Type: object
Properties:

  • integer hours
  • integer minutes
  • integer seconds
  • integer milliseconds

{

 "type": "object",
 "properties": {
   "hours": {
     "type": "integer",
     "required": true,
     "minimum": 0,
     "maximum": 23
   },
   "minutes": {
     "type": "integer",
     "required": true,
     "minimum": 0,
     "maximum": 59
   },
   "seconds": {
     "type": "integer",
     "required": true,
     "minimum": 0,
     "maximum": 59
   },
   "milliseconds": {
     "type": "integer",
     "required": true,
     "minimum": 0,
     "maximum": 999
   }
 },
 "additionalProperties": false

}

Global.Toggle

Type: mixed

{

 "type": [
   {
     "type": "boolean",
     "required": true
   },
   {
     "type": "string",
     "enum": [
       "toggle"
     ],
     "required": true
   }
 ]

}

Global.Weekday

Type: string

{

 "type": "string",
 "enum": [
   "monday",
   "tuesday",
   "wednesday",
   "thursday",
   "friday",
   "saturday",
   "sunday"
 ]

}

Item

Item.Details.Base

Type: object
Properties:

  • string label

{

 "type": "object",
 "properties": {
   "label": {
     "type": "string",
     "required": true
   }
 }

}

Item.Fields.Base

Type: array

{

 "type": "array",
 "uniqueItems": true,
 "items": {
   "type": "string"
 }

}

Library

Library.Details.Genre

Extends:

Properties:

{

 "extends": "Item.Details.Base",
 "properties": {
   "genreid": {
     "$ref": "Library.Id",
     "required": true
   },
   "title": {
     "type": "string"
   },
   "thumbnail": {
     "type": "string"
   },
   "sourceid": {
     "$ref": "Array.Integer",
     "description": "The ids of sources with songs of the genre"
   }
 }

}

Library.Details.Source

Extends:

Properties:

{

 "extends": "Item.Details.Base",
 "properties": {
   "sourceid": {
     "$ref": "Library.Id",
     "required": true
   },
   "file": {
     "type": "string",
     "description": "The url encoded multipath string combining all paths of the source ",
     "required": true
   },
   "paths": {
     "$ref": "Array.String",
     "description": "The individual paths of the media source"
   }
 }

}

Library.Details.Tag

Extends:

Properties:

{

 "extends": "Item.Details.Base",
 "properties": {
   "tagid": {
     "$ref": "Library.Id",
     "required": true
   },
   "title": {
     "type": "string"
   }
 }

}

Library.Fields.Genre

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title",
     "thumbnail",
     "sourceid"
   ]
 }

}

Library.Fields.Source

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "file",
     "paths"
   ]
 }

}

Library.Fields.Tag

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title"
   ]
 }

}

Library.Id

Type: integer

{

 "type": "integer",
 "default": -1,
 "minimum": 1

}

List

List.Amount

Type: integer

{

 "type": "integer",
 "default": -1,
 "minimum": 0

}

List.Fields.All

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title",
     "artist",
     "albumartist",
     "genre",
     "year",
     "rating",
     "album",
     "track",
     "duration",
     "comment",
     "lyrics",
     "musicbrainztrackid",
     "musicbrainzartistid",
     "musicbrainzalbumid",
     "musicbrainzalbumartistid",
     "playcount",
     "fanart",
     "director",
     "trailer",
     "tagline",
     "plot",
     "plotoutline",
     "originaltitle",
     "lastplayed",
     "writer",
     "studio",
     "mpaa",
     "cast",
     "country",
     "imdbnumber",
     "premiered",
     "productioncode",
     "runtime",
     "set",
     "showlink",
     "streamdetails",
     "top250",
     "votes",
     "firstaired",
     "season",
     "episode",
     "showtitle",
     "thumbnail",
     "file",
     "resume",
     "artistid",
     "albumid",
     "tvshowid",
     "setid",
     "watchedepisodes",
     "disc",
     "tag",
     "art",
     "genreid",
     "displayartist",
     "albumartistid",
     "description",
     "theme",
     "mood",
     "style",
     "albumlabel",
     "sorttitle",
     "episodeguide",
     "uniqueid",
     "dateadded",
     "channel",
     "channeltype",
     "hidden",
     "locked",
     "channelnumber",
     "starttime",
     "endtime",
     "specialsortseason",
     "specialsortepisode",
     "compilation",
     "releasetype",
     "albumreleasetype",
     "contributors",
     "displaycomposer",
     "displayconductor",
     "displayorchestra",
     "displaylyricist",
     "userrating",
     "votes",
     "sortartist",
     "musicbrainzreleasegroupid",
     "mediapath",
     "dynpath",
     "isboxset",
     "totaldiscs",
     "disctitle",
     "releasedate",
     "originaldate",
     "bpm",
     "bitrate",
     "samplerate",
     "channels"
   ]
 }

}

List.Fields.Files

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title",
     "artist",
     "albumartist",
     "genre",
     "year",
     "rating",
     "album",
     "track",
     "duration",
     "comment",
     "lyrics",
     "musicbrainztrackid",
     "musicbrainzartistid",
     "musicbrainzalbumid",
     "musicbrainzalbumartistid",
     "playcount",
     "fanart",
     "director",
     "trailer",
     "tagline",
     "plot",
     "plotoutline",
     "originaltitle",
     "lastplayed",
     "writer",
     "studio",
     "mpaa",
     "cast",
     "country",
     "imdbnumber",
     "premiered",
     "productioncode",
     "runtime",
     "set",
     "showlink",
     "streamdetails",
     "top250",
     "votes",
     "firstaired",
     "season",
     "episode",
     "showtitle",
     "thumbnail",
     "file",
     "resume",
     "artistid",
     "albumid",
     "tvshowid",
     "setid",
     "watchedepisodes",
     "disc",
     "tag",
     "art",
     "genreid",
     "displayartist",
     "albumartistid",
     "description",
     "theme",
     "mood",
     "style",
     "albumlabel",
     "sorttitle",
     "episodeguide",
     "uniqueid",
     "dateadded",
     "size",
     "lastmodified",
     "mimetype",
     "specialsortseason",
     "specialsortepisode",
     "sortartist",
     "musicbrainzreleasegroupid",
     "isboxset",
     "totaldiscs",
     "disctitle",
     "releasedate",
     "originaldate",
     "bpm",
     "bitrate",
     "samplerate",
     "channels"
   ]
 }

}

List.Filter.Albums

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Albums"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Albums"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.Albums"
   }
 ]

}

List.Filter.Artists

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Artists"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Artists"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.Artists"
   }
 ]

}

List.Filter.Episodes

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Episodes"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Episodes"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.Episodes"
   }
 ]

}

List.Filter.Movies

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Movies"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Movies"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.Movies"
   }
 ]

}

List.Filter.MusicVideos

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.MusicVideos"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.MusicVideos"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.MusicVideos"
   }
 ]

}

List.Filter.Rule

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "operator": {
     "$ref": "List.Filter.Operators",
     "required": true
   },
   "value": {
     "type": [
       {
         "type": "string",
         "required": true
       },
       {
         "type": "array",
         "items": {
           "type": "string"
         },
         "required": true
       }
     ],
     "required": true
   }
 }

}

List.Filter.Rule.Albums

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.Albums",
     "required": true
   }
 }

}

List.Filter.Rule.Artists

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.Artists",
     "required": true
   }
 }

}

List.Filter.Rule.Episodes

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.Episodes",
     "required": true
   }
 }

}

List.Filter.Rule.Movies

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.Movies",
     "required": true
   }
 }

}

List.Filter.Rule.MusicVideos

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.MusicVideos",
     "required": true
   }
 }

}

List.Filter.Rule.Songs

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.Songs",
     "required": true
   }
 }

}

List.Filter.Rule.TVShows

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.TVShows",
     "required": true
   }
 }

}

List.Filter.Rule.Textures

Extends:

Properties:

{

 "extends": "List.Filter.Rule",
 "properties": {
   "field": {
     "$ref": "List.Filter.Fields.Textures",
     "required": true
   }
 }

}

List.Filter.Songs

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Songs"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Songs"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.Songs"
   }
 ]

}

List.Filter.TVShows

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.TVShows"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.TVShows"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.TVShows"
   }
 ]

}

List.Filter.Textures

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "and": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Textures"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "type": "object",
     "properties": {
       "or": {
         "type": "array",
         "items": {
           "$ref": "List.Filter.Textures"
         },
         "minItems": 1,
         "required": true
       }
     }
   },
   {
     "$ref": "List.Filter.Rule.Textures"
   }
 ]

}

List.Item.All

Extends:

Properties:

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

{

 "extends": "List.Item.Base",
 "properties": {
   "channel": {
     "type": "string"
   },
   "channeltype": {
     "$ref": "PVR.Channel.Type"
   },
   "hidden": {
     "type": "boolean"
   },
   "locked": {
     "type": "boolean"
   },
   "channelnumber": {
     "type": "integer"
   },
   "starttime": {
     "type": "string"
   },
   "endtime": {
     "type": "string"
   }
 }

}

List.Item.Base

Extends:

Properties:

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

{

 "extends": [
   "Video.Details.File",
   "Audio.Details.Media"
 ],
 "properties": {
   "id": {
     "$ref": "Library.Id"
   },
   "type": {
     "type": "string",
     "enum": [
       "unknown",
       "movie",
       "episode",
       "musicvideo",
       "song",
       "picture",
       "channel"
     ]
   },
   "albumartist": {
     "$ref": "Array.String"
   },
   "album": {
     "type": "string"
   },
   "track": {
     "type": "integer"
   },
   "duration": {
     "type": "integer"
   },
   "comment": {
     "type": "string"
   },
   "lyrics": {
     "type": "string"
   },
   "musicbrainztrackid": {
     "type": "string"
   },
   "musicbrainzartistid": {
     "$ref": "Array.String"
   },
   "trailer": {
     "type": "string"
   },
   "tagline": {
     "type": "string"
   },
   "plotoutline": {
     "type": "string"
   },
   "originaltitle": {
     "type": "string"
   },
   "writer": {
     "$ref": "Array.String"
   },
   "studio": {
     "$ref": "Array.String"
   },
   "mpaa": {
     "type": "string"
   },
   "cast": {
     "$ref": "Video.Cast"
   },
   "country": {
     "$ref": "Array.String"
   },
   "imdbnumber": {
     "type": "string"
   },
   "premiered": {
     "type": "string"
   },
   "productioncode": {
     "type": "string"
   },
   "set": {
     "type": "string"
   },
   "showlink": {
     "$ref": "Array.String"
   },
   "top250": {
     "type": "integer"
   },
   "votes": {
     "type": "string"
   },
   "firstaired": {
     "type": "string"
   },
   "season": {
     "type": "integer"
   },
   "episode": {
     "type": "integer"
   },
   "showtitle": {
     "type": "string"
   },
   "albumid": {
     "$ref": "Library.Id"
   },
   "setid": {
     "$ref": "Library.Id"
   },
   "tvshowid": {
     "$ref": "Library.Id"
   },
   "watchedepisodes": {
     "type": "integer"
   },
   "disc": {
     "type": "integer"
   },
   "tag": {
     "$ref": "Array.String"
   },
   "albumartistid": {
     "$ref": "Array.Integer"
   },
   "uniqueid": {
     "$ref": "Media.UniqueID"
   },
   "episodeguide": {
     "type": "string"
   },
   "sorttitle": {
     "type": "string"
   },
   "description": {
     "type": "string"
   },
   "theme": {
     "$ref": "Array.String"
   },
   "mood": {
     "$ref": "Array.String"
   },
   "style": {
     "$ref": "Array.String"
   },
   "albumlabel": {
     "type": "string"
   },
   "specialsortseason": {
     "type": "integer"
   },
   "specialsortepisode": {
     "type": "integer"
   },
   "compilation": {
     "type": "boolean"
   },
   "releasetype": {
     "$ref": "Audio.Album.ReleaseType"
   },
   "albumreleasetype": {
     "$ref": "Audio.Album.ReleaseType"
   },
   "contributors": {
     "$ref": "Audio.Contributors"
   },
   "displaycomposer": {
     "type": "string"
   },
   "displayconductor": {
     "type": "string"
   },
   "displayorchestra": {
     "type": "string"
   },
   "displaylyricist": {
     "type": "string"
   },
   "mediapath": {
     "type": "string",
     "description": "Media source path that identifies the item"
   },
   "dynpath": {
     "type": "string",
     "description": "An experimental property for debug purposes, often same as mediapath but when different gives the actual file playing that should also be in file property"
   },
   "isboxset": {
     "type": "boolean"
   },
   "totaldiscs": {
     "type": "integer"
   },
   "disctitle": {
     "type": "string"
   },
   "releasedate": {
     "type": "string"
   },
   "originaldate": {
     "type": "string"
   },
   "bpm": {
     "type": "integer"
   },
   "bitrate": {
     "type": "integer"
   },
   "samplerate": {
     "type": "integer"
   },
   "channels": {
     "type": "integer"
   }
 }

}

List.Item.File

Extends:

Properties:

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

{

 "extends": "List.Item.Base",
 "properties": {
   "file": {
     "type": "string",
     "required": true
   },
   "filetype": {
     "type": "string",
     "enum": [
       "file",
       "directory"
     ],
     "required": true
   },
   "size": {
     "type": "integer",
     "description": "Size of the file in bytes"
   },
   "lastmodified": {
     "type": "string"
   },
   "mimetype": {
     "type": "string"
   }
 }

}

List.Items.Sources

Type: array

{

 "type": "array",
 "items": {
   "extends": "Item.Details.Base",
   "properties": {
     "file": {
       "type": "string",
       "required": true
     }
   }
 }

}

List.Limits

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "start": {
     "type": "integer",
     "minimum": 0,
     "default": 0,
     "description": "Index of the first item to return"
   },
   "end": {
     "$ref": "List.Amount",
     "description": "Index of the last item to return"
   }
 },
 "additionalProperties": false

}

List.LimitsReturned

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "start": {
     "type": "integer",
     "minimum": 0,
     "default": 0
   },
   "end": {
     "$ref": "List.Amount"
   },
   "total": {
     "type": "integer",
     "minimum": 0,
     "required": true
   }
 },
 "additionalProperties": false

}

List.Sort

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "method": {
     "type": "string",
     "default": "none",
     "enum": [
       "none",
       "label",
       "date",
       "size",
       "file",
       "path",
       "drivetype",
       "title",
       "track",
       "time",
       "artist",
       "album",
       "albumtype",
       "genre",
       "country",
       "year",
       "rating",
       "userrating",
       "votes",
       "top250",
       "programcount",
       "playlist",
       "episode",
       "season",
       "totalepisodes",
       "watchedepisodes",
       "tvshowstatus",
       "tvshowtitle",
       "sorttitle",
       "productioncode",
       "mpaa",
       "studio",
       "dateadded",
       "lastplayed",
       "playcount",
       "listeners",
       "bitrate",
       "random",
       "totaldiscs",
       "originaldate",
       "bpm"
     ]
   },
   "order": {
     "type": "string",
     "default": "ascending",
     "enum": [
       "ascending",
       "descending"
     ]
   },
   "ignorearticle": {
     "type": "boolean",
     "default": false
   },
   "useartistsortname": {
     "type": "boolean",
     "default": false
   }
 }

}

Media

Media.Artwork

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "thumb": {
     "$ref": "Global.String.NotEmpty"
   },
   "poster": {
     "$ref": "Global.String.NotEmpty"
   },
   "banner": {
     "$ref": "Global.String.NotEmpty"
   },
   "fanart": {
     "$ref": "Global.String.NotEmpty"
   }
 },
 "additionalProperties": {
   "$ref": "Global.String.NotEmpty"
 }

}

Media.Artwork.Set

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "thumb": {
     "type": [
       "null",
       {
         "$ref": "Global.String.NotEmpty",
         "required": true
       }
     ],
     "default": ""
   },
   "poster": {
     "type": [
       "null",
       {
         "$ref": "Global.String.NotEmpty",
         "required": true
       }
     ],
     "default": ""
   },
   "banner": {
     "type": [
       "null",
       {
         "$ref": "Global.String.NotEmpty",
         "required": true
       }
     ],
     "default": ""
   },
   "fanart": {
     "type": [
       "null",
       {
         "$ref": "Global.String.NotEmpty",
         "required": true
       }
     ],
     "default": ""
   }
 },
 "additionalProperties": {
   "type": [
     "null",
     {
       "$ref": "Global.String.NotEmpty",
       "required": true
     }
   ]
 }

}

Media.Details.Base

Extends:

Properties:

  • [string fanart]
  • [string thumbnail]

{

 "extends": "Item.Details.Base",
 "properties": {
   "fanart": {
     "type": "string"
   },
   "thumbnail": {
     "type": "string"
   }
 }

}

Media.UniqueID

Type: object

{

 "type": "object",
 "additionalProperties": {
   "$ref": "Global.String.NotEmpty"
 }

}

Media.UniqueID.Set

Type: object

{

 "type": "object",
 "additionalProperties": {
   "type": [
     "null",
     {
       "$ref": "Global.String.NotEmpty",
       "required": true
     }
   ]
 }

}

Notifications

Notifications.Item

Type: mixed

{

 "type": [
   {
     "type": "object",
     "description": "An unknown item does not have any additional information.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       }
     }
   },
   {
     "type": "object",
     "description": "An item known to the database has an identification.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       },
       "id": {
         "$ref": "Library.Id",
         "required": true
       }
     }
   },
   {
     "type": "object",
     "description": "A movie item has a title and may have a release year.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       },
       "title": {
         "type": "string",
         "required": true
       },
       "year": {
         "type": "integer"
       }
     }
   },
   {
     "type": "object",
     "description": "A tv episode has a title and may have an episode number, season number and the title of the show it belongs to.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       },
       "title": {
         "type": "string",
         "required": true
       },
       "episode": {
         "type": "integer"
       },
       "season": {
         "type": "integer"
       },
       "showtitle": {
         "type": "string"
       }
     }
   },
   {
     "type": "object",
     "description": "A music video has a title and may have an album and an artist.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       },
       "title": {
         "type": "string",
         "required": true
       },
       "album": {
         "type": "string"
       },
       "artist": {
         "type": "string"
       }
     }
   },
   {
     "type": "object",
     "description": "A song has a title and may have an album, an artist and a track number.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       },
       "title": {
         "type": "string",
         "required": true
       },
       "album": {
         "type": "string"
       },
       "artist": {
         "type": "string"
       },
       "track": {
         "type": "integer"
       }
     }
   },
   {
     "type": "object",
     "description": "A picture has a file path.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       },
       "file": {
         "type": "string",
         "required": true
       }
     }
   },
   {
     "type": "object",
     "description": "A PVR channel is either a radio or tv channel and has a title.",
     "properties": {
       "type": {
         "$ref": "Notifications.Item.Type",
         "required": true
       },
       "id": {
         "$ref": "Library.Id",
         "required": true
       },
       "title": {
         "type": "string",
         "required": true
       },
       "channeltype": {
         "$ref": "PVR.Channel.Type",
         "required": true
       }
     }
   }
 ]

}

Notifications.Item.Type

Type: string

{

 "type": "string",
 "enum": [
   "unknown",
   "movie",
   "episode",
   "musicvideo",
   "song",
   "picture",
   "channel"
 ]

}

Optional

Optional.Boolean

Type: mixed

{

 "type": [
   "null",
   "boolean"
 ],
 "default": null

}

Optional.Integer

Type: mixed

{

 "type": [
   "null",
   "integer"
 ],
 "default": null

}

Optional.Number

Type: mixed

{

 "type": [
   "null",
   "number"
 ],
 "default": null

}

Optional.String

Type: mixed

{

 "type": [
   "null",
   "string"
 ],
 "default": null

}

PVR

PVR.Channel.Type

Type: string

{

 "type": "string",
 "enum": [
   "tv",
   "radio"
 ]

}

PVR.ChannelGroup.Id

Type: mixed

{

 "type": [
   {
     "$ref": "Library.Id",
     "required": true
   },
   {
     "type": "string",
     "enum": [
       "alltv",
       "allradio"
     ],
     "required": true
   }
 ]

}

PVR.Details.Broadcast

Extends:

Properties:

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

{

 "extends": "Item.Details.Base",
 "properties": {
   "broadcastid": {
     "$ref": "Library.Id",
     "required": true
   },
   "title": {
     "type": "string"
   },
   "plot": {
     "type": "string"
   },
   "plotoutline": {
     "type": "string"
   },
   "starttime": {
     "type": "string"
   },
   "endtime": {
     "type": "string"
   },
   "runtime": {
     "type": "integer"
   },
   "progress": {
     "type": "integer"
   },
   "progresspercentage": {
     "type": "number"
   },
   "genre": {
     "type": "string"
   },
   "episodename": {
     "type": "string"
   },
   "episodenum": {
     "type": "integer"
   },
   "episodepart": {
     "type": "integer"
   },
   "firstaired": {
     "type": "string"
   },
   "hastimer": {
     "type": "boolean"
   },
   "isactive": {
     "type": "boolean"
   },
   "parentalrating": {
     "type": "integer"
   },
   "wasactive": {
     "type": "boolean"
   },
   "thumbnail": {
     "type": "string"
   },
   "rating": {
     "type": "integer"
   },
   "originaltitle": {
     "type": "string"
   },
   "cast": {
     "type": "string"
   },
   "director": {
     "type": "string"
   },
   "writer": {
     "type": "string"
   },
   "year": {
     "type": "integer"
   },
   "imdbnumber": {
     "type": "integer"
   },
   "hastimerrule": {
     "type": "boolean"
   },
   "hasrecording": {
     "type": "boolean"
   },
   "recording": {
     "type": "string"
   },
   "isseries": {
     "type": "boolean"
   },
   "isplayable": {
     "type": "boolean"
   }
 }

}

PVR.Details.Channel

Extends:

Properties:

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

{

 "extends": "Item.Details.Base",
 "properties": {
   "channelid": {
     "$ref": "Library.Id",
     "required": true
   },
   "channel": {
     "type": "string"
   },
   "channeltype": {
     "$ref": "PVR.Channel.Type"
   },
   "hidden": {
     "type": "boolean"
   },
   "locked": {
     "type": "boolean"
   },
   "thumbnail": {
     "type": "string"
   },
   "lastplayed": {
     "type": "string"
   },
   "broadcastnow": {
     "$ref": "PVR.Details.Broadcast"
   },
   "broadcastnext": {
     "$ref": "PVR.Details.Broadcast"
   },
   "uniqueid": {
     "type": "integer",
     "required": true
   },
   "icon": {
     "type": "string"
   },
   "channelnumber": {
     "type": "integer"
   },
   "subchannelnumber": {
     "type": "integer"
   },
   "isrecording": {
     "type": "boolean"
   },
   "hasarchive": {
     "type": "boolean"
   }
 }

}

PVR.Details.ChannelGroup

Extends:

Properties:

{

 "extends": "Item.Details.Base",
 "properties": {
   "channelgroupid": {
     "$ref": "Library.Id",
     "required": true
   },
   "channeltype": {
     "$ref": "PVR.Channel.Type",
     "required": true
   }
 }

}

PVR.Details.ChannelGroup.Extended

Extends:

Properties:

{

 "extends": "PVR.Details.ChannelGroup",
 "properties": {
   "limits": {
     "$ref": "List.LimitsReturned",
     "required": true
   },
   "channels": {
     "type": "array",
     "items": {
       "$ref": "PVR.Details.Channel"
     }
   }
 }

}

PVR.Details.Recording

Extends:

Properties:

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

{

 "extends": "Item.Details.Base",
 "properties": {
   "recordingid": {
     "$ref": "Library.Id",
     "required": true
   },
   "title": {
     "type": "string"
   },
   "plot": {
     "type": "string"
   },
   "plotoutline": {
     "type": "string"
   },
   "genre": {
     "type": "string"
   },
   "playcount": {
     "type": "integer"
   },
   "resume": {
     "$ref": "Video.Resume"
   },
   "channel": {
     "type": "string"
   },
   "starttime": {
     "type": "string"
   },
   "endtime": {
     "type": "string"
   },
   "runtime": {
     "type": "integer"
   },
   "lifetime": {
     "type": "integer"
   },
   "icon": {
     "type": "string"
   },
   "art": {
     "$ref": "Media.Artwork"
   },
   "streamurl": {
     "type": "string"
   },
   "file": {
     "type": "string"
   },
   "directory": {
     "type": "string"
   },
   "radio": {
     "type": "boolean"
   },
   "isdeleted": {
     "type": "boolean"
   },
   "epgeventid": {
     "type": "integer"
   },
   "channeluid": {
     "type": "integer"
   },
   "season": {
     "type": "integer"
   },
   "episode": {
     "type": "integer"
   },
   "showtitle": {
     "type": "string"
   }
 }

}

PVR.Details.Timer

Extends:

Properties:

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

{

 "extends": "Item.Details.Base",
 "properties": {
   "timerid": {
     "$ref": "Library.Id",
     "required": true
   },
   "title": {
     "type": "string"
   },
   "summary": {
     "type": "string"
   },
   "channelid": {
     "$ref": "Library.Id"
   },
   "isradio": {
     "type": "boolean"
   },
   "istimerrule": {
     "type": "boolean"
   },
   "ismanual": {
     "type": "boolean"
   },
   "starttime": {
     "type": "string"
   },
   "endtime": {
     "type": "string"
   },
   "runtime": {
     "type": "integer"
   },
   "lifetime": {
     "type": "integer"
   },
   "firstday": {
     "type": "string"
   },
   "weekdays": {
     "type": "array",
     "items": {
       "$ref": "Global.Weekday"
     },
     "uniqueItems": true
   },
   "priority": {
     "type": "integer"
   },
   "startmargin": {
     "type": "integer"
   },
   "endmargin": {
     "type": "integer"
   },
   "state": {
     "$ref": "PVR.TimerState"
   },
   "file": {
     "type": "string"
   },
   "directory": {
     "type": "string"
   },
   "preventduplicateepisodes": {
     "type": "integer"
   },
   "startanytime": {
     "type": "boolean"
   },
   "endanytime": {
     "type": "boolean"
   },
   "epgsearchstring": {
     "type": "string"
   },
   "fulltextepgsearch": {
     "type": "boolean"
   },
   "recordinggroup": {
     "type": "integer"
   },
   "maxrecordings": {
     "type": "integer"
   },
   "epguid": {
     "type": "integer"
   },
   "isreadonly": {
     "type": "boolean"
   }
 }

}

PVR.Fields.Broadcast

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title",
     "plot",
     "plotoutline",
     "starttime",
     "endtime",
     "runtime",
     "progress",
     "progresspercentage",
     "genre",
     "episodename",
     "episodenum",
     "episodepart",
     "firstaired",
     "hastimer",
     "isactive",
     "parentalrating",
     "wasactive",
     "thumbnail",
     "rating",
     "originaltitle",
     "cast",
     "director",
     "writer",
     "year",
     "imdbnumber",
     "hastimerrule",
     "hasrecording",
     "recording",
     "isseries",
     "isplayable"
   ]
 }

}

PVR.Fields.Channel

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "thumbnail",
     "channeltype",
     "hidden",
     "locked",
     "channel",
     "lastplayed",
     "broadcastnow",
     "broadcastnext",
     "uniqueid",
     "icon",
     "channelnumber",
     "subchannelnumber",
     "isrecording",
     "hasarchive"
   ]
 }

}

PVR.Fields.Recording

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title",
     "plot",
     "plotoutline",
     "genre",
     "playcount",
     "resume",
     "channel",
     "starttime",
     "endtime",
     "runtime",
     "lifetime",
     "icon",
     "art",
     "streamurl",
     "file",
     "directory",
     "radio",
     "isdeleted",
     "epgeventid",
     "channeluid",
     "season",
     "episode",
     "showtitle"
   ]
 }

}

PVR.Fields.Timer

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title",
     "summary",
     "channelid",
     "isradio",
     "istimerrule",
     "ismanual",
     "starttime",
     "endtime",
     "runtime",
     "lifetime",
     "firstday",
     "weekdays",
     "priority",
     "startmargin",
     "endmargin",
     "state",
     "file",
     "directory",
     "preventduplicateepisodes",
     "startanytime",
     "endanytime",
     "epgsearchstring",
     "fulltextepgsearch",
     "recordinggroup",
     "maxrecordings",
     "epguid",
     "isreadonly"
   ]
 }

}

PVR.Property.Name

Type: string

{

 "type": "string",
 "enum": [
   "available",
   "recording",
   "scanning"
 ]

}

PVR.Property.Value

Type: object
Properties:

  • [boolean available]
  • [boolean recording]
  • [boolean scanning]

{

 "type": "object",
 "properties": {
   "available": {
     "type": "boolean"
   },
   "recording": {
     "type": "boolean"
   },
   "scanning": {
     "type": "boolean"
   }
 }

}

PVR.TimerState

Type: string

{

 "type": "string",
 "enum": [
   "unknown",
   "new",
   "scheduled",
   "recording",
   "completed",
   "aborted",
   "cancelled",
   "conflict_ok",
   "conflict_notok",
   "error",
   "disabled"
 ]

}

Player

Player.Audio.Stream

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "index": {
     "type": "integer",
     "minimum": 0,
     "required": true
   },
   "name": {
     "type": "string",
     "required": true
   },
   "language": {
     "type": "string",
     "required": true
   },
   "codec": {
     "type": "string",
     "required": true
   },
   "bitrate": {
     "type": "integer",
     "required": true
   },
   "channels": {
     "type": "integer",
     "required": true
   },
   "isdefault": {
     "type": "boolean",
     "required": true
   },
   "isoriginal": {
     "type": "boolean",
     "required": true
   },
   "isimpaired": {
     "type": "boolean",
     "required": true
   },
   "samplerate": {
     "type": "integer",
     "required": true
   }
 }

}

Player.CustomViewMode

Type: object
Properties:

{

 "type": "object",
 "required": true,
 "properties": {
   "zoom": {
     "type": [
       {
         "type": "string",
         "enum": [
           "increase",
           "decrease"
         ],
         "required": true
       },
       {
         "$ref": "Optional.Number",
         "minimum": 0.5,
         "maximum": 2.0,
         "description": "Zoom where 1.0 means 100%",
         "required": true
       }
     ]
   },
   "pixelratio": {
     "type": [
       {
         "type": "string",
         "enum": [
           "increase",
           "decrease"
         ],
         "required": true
       },
       {
         "$ref": "Optional.Number",
         "minimum": 0.5,
         "maximum": 2.0,
         "description": "Pixel aspect ratio where 1.0 means square pixel",
         "required": true
       }
     ]
   },
   "verticalshift": {
     "type": [
       {
         "type": "string",
         "enum": [
           "increase",
           "decrease"
         ],
         "required": true
       },
       {
         "$ref": "Optional.Number",
         "minimum": -2.0,
         "maximum": 2.0,
         "description": "Vertical shift 1.0 means shift to bottom",
         "required": true
       }
     ]
   },
   "nonlinearstretch": {
     "type": [
       {
         "type": "string",
         "enum": [
           "increase",
           "decrease"
         ],
         "required": true
       },
       {
         "$ref": "Optional.Boolean",
         "description": "Flag to enable nonlinear stretch",
         "required": true
       }
     ]
   }
 }

}

Player.Id

Type: integer

{

 "type": "integer",
 "minimum": 0,
 "maximum": 2,
 "default": -1

}

Player.Notifications.Data

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "item": {
     "$ref": "Notifications.Item",
     "required": true
   },
   "player": {
     "$ref": "Player.Notifications.Player",
     "required": true
   }
 }

}

Player.Notifications.Player

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "playerid": {
     "$ref": "Player.Id",
     "required": true
   },
   "speed": {
     "type": "integer"
   }
 }

}

Player.Notifications.Player.Seek

Extends:

Properties:

{

 "extends": "Player.Notifications.Player",
 "properties": {
   "time": {
     "$ref": "Global.Time"
   },
   "seekoffset": {
     "$ref": "Global.Time"
   }
 }

}

Player.Position.Percentage

Type: number

{

 "type": "number",
 "minimum": 0.0,
 "maximum": 100.0

}

Player.Position.Time

Type: object
Properties:

  • [integer hours]
  • [integer minutes]
  • [integer seconds]
  • [integer milliseconds]

{

 "type": "object",
 "additionalProperties": false,
 "properties": {
   "hours": {
     "type": "integer",
     "minimum": 0,
     "maximum": 23,
     "default": 0
   },
   "minutes": {
     "type": "integer",
     "minimum": 0,
     "maximum": 59,
     "default": 0
   },
   "seconds": {
     "type": "integer",
     "minimum": 0,
     "maximum": 59,
     "default": 0
   },
   "milliseconds": {
     "type": "integer",
     "minimum": 0,
     "maximum": 999,
     "default": 0
   }
 }

}

Player.Property.Name

Type: string

{

 "type": "string",
 "enum": [
   "type",
   "partymode",
   "speed",
   "time",
   "percentage",
   "totaltime",
   "playlistid",
   "position",
   "repeat",
   "shuffled",
   "canseek",
   "canchangespeed",
   "canmove",
   "canzoom",
   "canrotate",
   "canshuffle",
   "canrepeat",
   "currentaudiostream",
   "audiostreams",
   "subtitleenabled",
   "currentsubtitle",
   "subtitles",
   "live",
   "currentvideostream",
   "videostreams"
 ]

}

Player.Property.Value

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "type": {
     "$ref": "Player.Type"
   },
   "partymode": {
     "type": "boolean"
   },
   "speed": {
     "type": "integer"
   },
   "time": {
     "$ref": "Global.Time"
   },
   "percentage": {
     "$ref": "Player.Position.Percentage"
   },
   "totaltime": {
     "$ref": "Global.Time"
   },
   "playlistid": {
     "$ref": "Playlist.Id"
   },
   "position": {
     "$ref": "Playlist.Position"
   },
   "repeat": {
     "$ref": "Player.Repeat"
   },
   "shuffled": {
     "type": "boolean"
   },
   "canseek": {
     "type": "boolean"
   },
   "canchangespeed": {
     "type": "boolean"
   },
   "canmove": {
     "type": "boolean"
   },
   "canzoom": {
     "type": "boolean"
   },
   "canrotate": {
     "type": "boolean"
   },
   "canshuffle": {
     "type": "boolean"
   },
   "canrepeat": {
     "type": "boolean"
   },
   "currentaudiostream": {
     "$ref": "Player.Audio.Stream"
   },
   "audiostreams": {
     "type": "array",
     "items": {
       "$ref": "Player.Audio.Stream"
     }
   },
   "currentvideostream": {
     "$ref": "Player.Video.Stream"
   },
   "videostreams": {
     "type": "array",
     "items": {
       "$ref": "Player.Video.Stream"
     }
   },
   "subtitleenabled": {
     "type": "boolean"
   },
   "currentsubtitle": {
     "$ref": "Player.Subtitle"
   },
   "subtitles": {
     "type": "array",
     "items": {
       "$ref": "Player.Subtitle"
     }
   },
   "live": {
     "type": "boolean"
   }
 }

}

Player.Repeat

Type: string

{

 "type": "string",
 "enum": [
   "off",
   "one",
   "all"
 ]

}

Player.Speed

Type: object
Properties:

  • [integer speed]

{

 "type": "object",
 "required": true,
 "properties": {
   "speed": {
     "type": "integer"
   }
 }

}

Player.Subtitle

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "index": {
     "type": "integer",
     "minimum": 0,
     "required": true
   },
   "name": {
     "type": "string",
     "required": true
   },
   "language": {
     "type": "string",
     "required": true
   },
   "isdefault": {
     "type": "boolean",
     "required": true
   },
   "isforced": {
     "type": "boolean",
     "required": true
   },
   "isimpaired": {
     "type": "boolean",
     "required": true
   }
 }

}

Player.Type

Type: string

{

 "type": "string",
 "enum": [
   "video",
   "audio",
   "picture"
 ]

}

Player.Video.Stream

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "index": {
     "type": "integer",
     "minimum": 0,
     "required": true
   },
   "name": {
     "type": "string",
     "required": true
   },
   "language": {
     "type": "string",
     "required": true
   },
   "codec": {
     "type": "string",
     "required": true
   },
   "width": {
     "type": "integer",
     "required": true
   },
   "height": {
     "type": "integer",
     "required": true
   }
 }

}

Player.ViewMode

Type: string

{

 "type": "string",
 "enum": [
   "normal",
   "zoom",
   "stretch4x3",
   "widezoom",
   "stretch16x9",
   "original",
   "stretch16x9nonlin",
   "zoom120width",
   "zoom110width"
 ]

}

Playlist

Playlist.Id

Type: integer

{

 "type": "integer",
 "minimum": 0,
 "maximum": 2,
 "default": -1

}

Playlist.Item

Type: mixed

{

 "type": [
   {
     "type": "object",
     "properties": {
       "file": {
         "type": "string",
         "description": "Path to a file (not a directory) to be added to the playlist",
         "required": true
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "directory": {
         "type": "string",
         "required": true
       },
       "recursive": {
         "type": "boolean",
         "default": false
       },
       "media": {
         "$ref": "Files.Media",
         "default": "files"
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "movieid": {
         "$ref": "Library.Id",
         "required": true
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "episodeid": {
         "$ref": "Library.Id",
         "required": true
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "musicvideoid": {
         "$ref": "Library.Id",
         "required": true
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "artistid": {
         "$ref": "Library.Id",
         "required": true
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "albumid": {
         "$ref": "Library.Id",
         "required": true
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "songid": {
         "$ref": "Library.Id",
         "required": true
       }
     },
     "additionalProperties": false
   },
   {
     "type": "object",
     "properties": {
       "genreid": {
         "$ref": "Library.Id",
         "required": true,
         "description": "Identification of a genre from the AudioLibrary"
       }
     },
     "additionalProperties": false
   }
 ]

}

Playlist.Position

Type: integer

{

 "type": "integer",
 "minimum": 0,
 "default": -1

}

Playlist.Property.Name

Type: string

{

 "type": "string",
 "enum": [
   "type",
   "size"
 ]

}

Playlist.Property.Value

Type: object
Properties:

{

 "type": "object",
 "properties": {
   "type": {
     "$ref": "Playlist.Type"
   },
   "size": {
     "type": "integer",
     "minimum": 0
   }
 }

}

Playlist.Type

Type: string

{

 "type": "string",
 "enum": [
   "unknown",
   "video",
   "audio",
   "picture",
   "mixed"
 ]

}

Profiles

Profiles.Details.Profile

Extends:

Properties:

  • [string thumbnail]
  • [integer lockmode]

{

 "extends": "Item.Details.Base",
 "properties": {
   "thumbnail": {
     "type": "string"
   },
   "lockmode": {
     "type": "integer"
   }
 }

}

Profiles.Fields.Profile

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "thumbnail",
     "lockmode"
   ]
 }

}

Profiles.Password

Type: object
Properties:

  • string value
  • [string encryption = md5]

{

 "type": "object",
 "properties": {
   "value": {
     "type": "string",
     "required": true,
     "description": "Password"
   },
   "encryption": {
     "type": "string",
     "description": "Password Encryption",
     "default": "md5",
     "enum": [
       "none",
       "md5"
     ]
   }
 }

}

Setting

Setting.Details.Base

Type: object
Properties:

  • string id
  • string label
  • [string help]

{

 "type": "object",
 "properties": {
   "id": {
     "type": "string",
     "required": true,
     "minLength": 1
   },
   "label": {
     "type": "string",
     "required": true
   },
   "help": {
     "type": "string"
   }
 }

}

Setting.Details.Category

Extends:

Properties:

  • [array groups]

{

 "extends": "Setting.Details.Base",
 "properties": {
   "groups": {
     "type": "array",
     "items": {
       "$ref": "Setting.Details.Group"
     },
     "minItems": 1,
     "uniqueItems": true
   }
 },
 "additionalProperties": false

}

Setting.Details.Control

Type: mixed

{

 "type": [
   {
     "$ref": "Setting.Details.ControlCheckmark",
     "required": true
   },
   {
     "$ref": "Setting.Details.ControlSpinner",
     "required": true
   },
   {
     "$ref": "Setting.Details.ControlEdit",
     "required": true
   },
   {
     "$ref": "Setting.Details.ControlButton",
     "required": true
   },
   {
     "$ref": "Setting.Details.ControlList",
     "required": true
   },
   {
     "$ref": "Setting.Details.ControlSlider",
     "required": true
   },
   {
     "$ref": "Setting.Details.ControlRange",
     "required": true
   },
   {
     "$ref": "Setting.Details.ControlLabel",
     "required": true
   }
 ]

}

Setting.Details.ControlBase

Type: object
Properties:

  • string type
  • string format
  • boolean delayed

{

 "type": "object",
 "properties": {
   "type": {
     "type": "string",
     "required": true
   },
   "format": {
     "type": "string",
     "required": true
   },
   "delayed": {
     "type": "boolean",
     "required": true
   }
 }

}

Setting.Details.ControlButton

Extends:

Properties:

  • string type

{

 "extends": "Setting.Details.ControlHeading",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "button"
     ]
   }
 }

}

Setting.Details.ControlCheckmark

Extends:

Properties:

  • string type
  • string format

{

 "extends": "Setting.Details.ControlBase",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "toggle"
     ]
   },
   "format": {
     "type": "string",
     "required": true,
     "enum": [
       "boolean"
     ]
   }
 }

}

Setting.Details.ControlEdit

Extends:

Properties:

  • string type
  • boolean hidden
  • boolean verifynewvalue

{

 "extends": "Setting.Details.ControlHeading",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "edit"
     ]
   },
   "hidden": {
     "type": "boolean",
     "required": true
   },
   "verifynewvalue": {
     "type": "boolean",
     "required": true
   }
 }

}

Setting.Details.ControlHeading

Extends:

Properties:

  • [string heading]

{

 "extends": "Setting.Details.ControlBase",
 "properties": {
   "heading": {
     "type": "string"
   }
 }

}

Setting.Details.ControlLabel

Extends:

Properties:

  • string type
  • string format

{

 "extends": "Setting.Details.ControlBase",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "label"
     ]
   },
   "format": {
     "type": "string",
     "required": true,
     "enum": [
       "string"
     ]
   }
 }

}

Setting.Details.ControlList

Extends:

Properties:

  • string type
  • boolean multiselect

{

 "extends": "Setting.Details.ControlHeading",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "list"
     ]
   },
   "multiselect": {
     "type": "boolean",
     "required": true
   }
 }

}

Setting.Details.ControlRange

Extends:

Properties:

  • string type
  • string formatlabel
  • string formatvalue

{

 "extends": "Setting.Details.ControlBase",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "range"
     ]
   },
   "formatlabel": {
     "type": "string",
     "required": true
   },
   "formatvalue": {
     "type": "string",
     "required": true
   }
 }

}

Setting.Details.ControlSlider

Extends:

Properties:

  • string type
  • string formatlabel
  • boolean popup

{

 "extends": "Setting.Details.ControlHeading",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "slider"
     ]
   },
   "formatlabel": {
     "type": "string",
     "required": true
   },
   "popup": {
     "type": "boolean",
     "required": true
   }
 }

}

Setting.Details.ControlSpinner

Extends:

Properties:

  • string type
  • [string formatlabel]
  • [string minimumlabel]

{

 "extends": "Setting.Details.ControlBase",
 "properties": {
   "type": {
     "type": "string",
     "required": true,
     "enum": [
       "spinner"
     ]
   },
   "formatlabel": {
     "type": "string"
   },
   "minimumlabel": {
     "type": "string"
   }
 }

}

Setting.Details.Group

Type: object
Properties:

  • string id
  • [array settings]

{

 "type": "object",
 "properties": {
   "id": {
     "type": "string",
     "required": true,
     "minLength": 1
   },
   "settings": {
     "type": "array",
     "items": {
       "$ref": "Setting.Details.Setting"
     },
     "minItems": 1,
     "uniqueItems": true
   }
 },
 "additionalProperties": false

}

Setting.Details.Section

Extends:

Properties:

  • [array categories]

{

 "extends": "Setting.Details.Base",
 "properties": {
   "categories": {
     "type": "array",
     "items": {
       "$ref": "Setting.Details.Category"
     },
     "minItems": 1,
     "uniqueItems": true
   }
 },
 "additionalProperties": false

}

Setting.Details.Setting

Type: mixed

{

 "type": [
   {
     "$ref": "Setting.Details.SettingBool",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingInt",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingNumber",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingString",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingAction",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingList",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingPath",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingAddon",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingDate",
     "required": true
   },
   {
     "$ref": "Setting.Details.SettingTime",
     "required": true
   }
 ]

}

Setting.Details.SettingAction

Extends:

Properties:

  • string data

{

 "extends": "Setting.Details.SettingBase",
 "properties": {
   "data": {
     "type": "string",
     "required": true
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingAddon

Extends:

Properties:

{

 "extends": "Setting.Details.SettingString",
 "properties": {
   "addontype": {
     "$ref": "Addon.Types",
     "required": true
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingBase

Extends:

Properties:

{

 "extends": "Setting.Details.Base",
 "properties": {
   "type": {
     "$ref": "Setting.Type",
     "required": true
   },
   "enabled": {
     "type": "boolean",
     "required": true
   },
   "level": {
     "$ref": "Setting.Level",
     "required": true
   },
   "parent": {
     "type": "string"
   },
   "control": {
     "$ref": "Setting.Details.Control"
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingBool

Extends:

Properties:

  • boolean value
  • boolean default

{

 "extends": "Setting.Details.SettingBase",
 "properties": {
   "value": {
     "type": "boolean",
     "required": true
   },
   "default": {
     "type": "boolean",
     "required": true
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingDate

Extends:

{

 "extends": "Setting.Details.SettingString",
 "additionalProperties": false

}

Setting.Details.SettingInt

Extends:

Properties:

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

{

 "extends": "Setting.Details.SettingBase",
 "properties": {
   "value": {
     "type": "integer",
     "required": true
   },
   "default": {
     "type": "integer",
     "required": true
   },
   "minimum": {
     "type": "integer"
   },
   "step": {
     "type": "integer"
   },
   "maximum": {
     "type": "integer"
   },
   "options": {
     "type": "array",
     "items": {
       "type": "object",
       "properties": {
         "label": {
           "type": "string",
           "required": true
         },
         "value": {
           "type": "integer",
           "required": true
         }
       }
     }
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingList

Extends:

Properties:

{

 "extends": "Setting.Details.SettingBase",
 "properties": {
   "value": {
     "$ref": "Setting.Value.List",
     "required": true
   },
   "default": {
     "$ref": "Setting.Value.List",
     "required": true
   },
   "elementtype": {
     "$ref": "Setting.Type",
     "required": true
   },
   "definition": {
     "$ref": "Setting.Details.Setting",
     "required": true
   },
   "delimiter": {
     "type": "string",
     "required": true
   },
   "minimumItems": {
     "type": "integer"
   },
   "maximumItems": {
     "type": "integer"
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingNumber

Extends:

Properties:

  • number value
  • number default
  • number minimum
  • number step
  • number maximum

{

 "extends": "Setting.Details.SettingBase",
 "properties": {
   "value": {
     "type": "number",
     "required": true
   },
   "default": {
     "type": "number",
     "required": true
   },
   "minimum": {
     "type": "number",
     "required": true
   },
   "step": {
     "type": "number",
     "required": true
   },
   "maximum": {
     "type": "number",
     "required": true
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingPath

Extends:

Properties:

  • boolean writable
  • [array sources]

{

 "extends": "Setting.Details.SettingString",
 "properties": {
   "writable": {
     "type": "boolean",
     "required": true
   },
   "sources": {
     "type": "array",
     "items": {
       "type": "string"
     }
   }
 },
 "additionalProperties": false

}

Setting.Details.SettingString

Extends:

Properties:

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

{

 "extends": "Setting.Details.SettingBase",
 "properties": {
   "value": {
     "type": "string",
     "required": true
   },
   "default": {
     "type": "string",
     "required": true
   },
   "allowempty": {
     "type": "boolean",
     "required": true
   },
   "options": {
     "type": "array",
     "items": {
       "type": "object",
       "properties": {
         "label": {
           "type": "string",
           "required": true
         },
         "value": {
           "type": "string",
           "required": true
         }
       }
     }
   }
 }

}

Setting.Details.SettingTime

Extends:

{

 "extends": "Setting.Details.SettingString",
 "additionalProperties": false

}

Setting.Level

Type: string

{

 "type": "string",
 "enum": [
   "basic",
   "standard",
   "advanced",
   "expert"
 ]

}

Setting.Type

Type: string

{

 "type": "string",
 "enum": [
   "boolean",
   "integer",
   "number",
   "string",
   "action",
   "list",
   "path",
   "addon",
   "date",
   "time"
 ]

}

Setting.Value

Type: mixed

{

 "type": [
   {
     "type": "boolean",
     "required": true
   },
   {
     "type": "integer",
     "required": true
   },
   {
     "type": "number",
     "required": true
   },
   {
     "type": "string",
     "required": true
   }
 ]

}

Setting.Value.Extended

Type: mixed

{

 "type": [
   {
     "type": "boolean",
     "required": true
   },
   {
     "type": "integer",
     "required": true
   },
   {
     "type": "number",
     "required": true
   },
   {
     "type": "string",
     "required": true
   },
   {
     "$ref": "Setting.Value.List",
     "required": true
   }
 ]

}

Setting.Value.List

Type: array

{

 "type": "array",
 "items": {
   "$ref": "Setting.Value"
 }

}

System

System.Property.Name

Type: string

{

 "type": "string",
 "enum": [
   "canshutdown",
   "cansuspend",
   "canhibernate",
   "canreboot"
 ]

}

System.Property.Value

Type: object
Properties:

  • [boolean canshutdown]
  • [boolean cansuspend]
  • [boolean canhibernate]
  • [boolean canreboot]

{

 "type": "object",
 "properties": {
   "canshutdown": {
     "type": "boolean"
   },
   "cansuspend": {
     "type": "boolean"
   },
   "canhibernate": {
     "type": "boolean"
   },
   "canreboot": {
     "type": "boolean"
   }
 }

}

Textures

Textures.Details.Size

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "size": {
     "type": "integer",
     "description": "Size of the texture (1 == largest)"
   },
   "width": {
     "type": "integer",
     "description": "Width of texture"
   },
   "height": {
     "type": "integer",
     "description": "Height of texture"
   },
   "usecount": {
     "type": "integer",
     "description": "Number of uses"
   },
   "lastused": {
     "type": "string",
     "description": "Date of last use"
   }
 }

}

Textures.Details.Texture

Type: object
Properties:

  • Library.Id textureid
  • [string url]
  • [string cachedurl]
  • [string lasthashcheck]
  • [string imagehash]
  • [array sizes]

{

 "type": "object",
 "properties": {
   "textureid": {
     "$ref": "Library.Id",
     "required": "true"
   },
   "url": {
     "type": "string",
     "description": "Original source URL"
   },
   "cachedurl": {
     "type": "string",
     "description": "Cached URL on disk"
   },
   "lasthashcheck": {
     "type": "string",
     "description": "Last time source was checked for changes"
   },
   "imagehash": {
     "type": "string",
     "description": "Hash of image"
   },
   "sizes": {
     "type": "array",
     "items": {
       "$ref": "Textures.Details.Size"
     }
   }
 }

}

Textures.Fields.Texture

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "url",
     "cachedurl",
     "lasthashcheck",
     "imagehash",
     "sizes"
   ]
 }

}

Video

Video.Cast

Type: array

{

 "type": "array",
 "items": {
   "type": "object",
   "properties": {
     "name": {
       "type": "string",
       "required": true
     },
     "role": {
       "type": "string",
       "required": true
     },
     "order": {
       "type": "integer",
       "required": true
     },
     "thumbnail": {
       "type": "string"
     }
   },
   "additionalProperties": false
 }

}

Video.Details.Base

Extends:

Properties:

{

 "extends": "Media.Details.Base",
 "properties": {
   "playcount": {
     "type": "integer"
   },
   "art": {
     "$ref": "Media.Artwork"
   }
 }

}

Video.Details.Episode

Extends:

Properties:

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

{

 "extends": "Video.Details.File",
 "properties": {
   "episodeid": {
     "$ref": "Library.Id",
     "required": true
   },
   "votes": {
     "type": "string"
   },
   "rating": {
     "type": "number"
   },
   "writer": {
     "$ref": "Array.String"
   },
   "firstaired": {
     "type": "string"
   },
   "productioncode": {
     "type": "string"
   },
   "season": {
     "type": "integer"
   },
   "episode": {
     "type": "integer"
   },
   "uniqueid": {
     "$ref": "Media.UniqueID"
   },
   "originaltitle": {
     "type": "string"
   },
   "showtitle": {
     "type": "string"
   },
   "cast": {
     "$ref": "Video.Cast"
   },
   "tvshowid": {
     "$ref": "Library.Id"
   },
   "specialsortseason": {
     "type": "integer"
   },
   "specialsortepisode": {
     "type": "integer"
   },
   "userrating": {
     "type": "integer"
   },
   "seasonid": {
     "$ref": "Library.Id"
   },
   "ratings": {
     "type": "Video.Ratings"
   }
 }

}

Video.Details.File

Extends:

Properties:

{

 "extends": "Video.Details.Item",
 "properties": {
   "runtime": {
     "type": "integer",
     "description": "Runtime in seconds"
   },
   "director": {
     "$ref": "Array.String"
   },
   "streamdetails": {
     "$ref": "Video.Streams"
   },
   "resume": {
     "$ref": "Video.Resume"
   }
 }

}

Video.Details.Item

Extends:

Properties:

  • [string file]
  • [string plot]
  • [string lastplayed]
  • [string dateadded]

{

 "extends": "Video.Details.Media",
 "properties": {
   "file": {
     "type": "string"
   },
   "plot": {
     "type": "string"
   },
   "lastplayed": {
     "type": "string"
   },
   "dateadded": {
     "type": "string"
   }
 }

}

Video.Details.Media

Extends:

Properties:

  • [string title]

{

 "extends": "Video.Details.Base",
 "properties": {
   "title": {
     "type": "string"
   }
 }

}

Video.Details.Movie

Extends:

Properties:

{

 "extends": "Video.Details.File",
 "properties": {
   "movieid": {
     "$ref": "Library.Id",
     "required": true
   },
   "genre": {
     "$ref": "Array.String"
   },
   "year": {
     "type": "integer"
   },
   "rating": {
     "type": "number"
   },
   "trailer": {
     "type": "string"
   },
   "tagline": {
     "type": "string"
   },
   "plotoutline": {
     "type": "string"
   },
   "originaltitle": {
     "type": "string"
   },
   "sorttitle": {
     "type": "string"
   },
   "writer": {
     "$ref": "Array.String"
   },
   "studio": {
     "$ref": "Array.String"
   },
   "mpaa": {
     "type": "string"
   },
   "cast": {
     "$ref": "Video.Cast"
   },
   "country": {
     "$ref": "Array.String"
   },
   "imdbnumber": {
     "type": "string"
   },
   "set": {
     "type": "string"
   },
   "showlink": {
     "$ref": "Array.String"
   },
   "top250": {
     "type": "integer"
   },
   "votes": {
     "type": "string"
   },
   "setid": {
     "$ref": "Library.Id"
   },
   "tag": {
     "$ref": "Array.String"
   },
   "userrating": {
     "type": "integer"
   },
   "ratings": {
     "type": "Video.Ratings"
   },
   "premiered": {
     "type": "string"
   },
   "uniqueid": {
     "$ref": "Media.UniqueID"
   }
 }

}

Video.Details.MovieSet

Extends:

Properties:

{

 "extends": "Video.Details.Media",
 "properties": {
   "setid": {
     "$ref": "Library.Id",
     "required": true
   },
   "plot": {
     "type": "string"
   }
 }

}

Video.Details.MovieSet.Extended

Extends:

Properties:

{

 "extends": "Video.Details.MovieSet",
 "properties": {
   "limits": {
     "$ref": "List.LimitsReturned",
     "required": true
   },
   "movies": {
     "type": "array",
     "items": {
       "$ref": "Video.Details.Movie"
     }
   }
 }

}

Video.Details.MusicVideo

Extends:

Properties:

{

 "extends": "Video.Details.File",
 "properties": {
   "musicvideoid": {
     "$ref": "Library.Id",
     "required": true
   },
   "studio": {
     "$ref": "Array.String"
   },
   "year": {
     "type": "integer"
   },
   "album": {
     "type": "string"
   },
   "artist": {
     "$ref": "Array.String"
   },
   "genre": {
     "$ref": "Array.String"
   },
   "track": {
     "type": "integer"
   },
   "tag": {
     "$ref": "Array.String"
   },
   "rating": {
     "type": "number"
   },
   "userrating": {
     "type": "integer"
   },
   "premiered": {
     "type": "string"
   }
 }

}

Video.Details.Season

Extends:

Properties:

  • Library.Id seasonid
  • integer season
  • [string showtitle]
  • [integer episode]
  • [integer watchedepisodes]
  • [Library.Id tvshowid]
  • [integer userrating]
  • [string title]

{

 "extends": "Video.Details.Base",
 "properties": {
   "seasonid": {
     "$ref": "Library.Id",
     "required": true
   },
   "season": {
     "type": "integer",
     "required": true
   },
   "showtitle": {
     "type": "string"
   },
   "episode": {
     "type": "integer"
   },
   "watchedepisodes": {
     "type": "integer"
   },
   "tvshowid": {
     "$ref": "Library.Id"
   },
   "userrating": {
     "type": "integer"
   },
   "title": {
     "type": "string"
   }
 }

}

Video.Details.TVShow

Extends:

Properties:

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

{

 "extends": "Video.Details.Item",
 "properties": {
   "tvshowid": {
     "$ref": "Library.Id",
     "required": true
   },
   "genre": {
     "$ref": "Array.String"
   },
   "year": {
     "type": "integer"
   },
   "rating": {
     "type": "number"
   },
   "originaltitle": {
     "type": "string"
   },
   "sorttitle": {
     "type": "string"
   },
   "studio": {
     "$ref": "Array.String"
   },
   "mpaa": {
     "type": "string"
   },
   "cast": {
     "$ref": "Video.Cast"
   },
   "episode": {
     "type": "integer"
   },
   "watchedepisodes": {
     "type": "integer"
   },
   "imdbnumber": {
     "type": "string"
   },
   "premiered": {
     "type": "string"
   },
   "votes": {
     "type": "string"
   },
   "episodeguide": {
     "type": "string"
   },
   "season": {
     "type": "integer"
   },
   "tag": {
     "$ref": "Array.String"
   },
   "userrating": {
     "type": "integer"
   },
   "ratings": {
     "type": "Video.Ratings"
   },
   "runtime": {
     "type": "integer",
     "description": "Runtime in seconds"
   },
   "status": {
     "type": "string",
     "description": "Returns 'returning series', 'in production', 'planned', 'cancelled' or 'ended'"
   },
   "uniqueid": {
     "$ref": "Media.UniqueID"
   }
 }

}

Video.Fields.Episode

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "description": "Requesting the cast, ratings, streamdetails, uniqueid and/or tag field will result in increased response times",
   "enum": [
     "title",
     "plot",
     "votes",
     "rating",
     "writer",
     "firstaired",
     "playcount",
     "runtime",
     "director",
     "productioncode",
     "season",
     "episode",
     "originaltitle",
     "showtitle",
     "cast",
     "streamdetails",
     "lastplayed",
     "fanart",
     "thumbnail",
     "file",
     "resume",
     "tvshowid",
     "dateadded",
     "uniqueid",
     "art",
     "specialsortseason",
     "specialsortepisode",
     "userrating",
     "seasonid",
     "ratings"
   ]
 }

}

Video.Fields.Movie

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "description": "Requesting the cast, ratings, showlink, streamdetails, uniqueid and/or tag field will result in increased response times",
   "enum": [
     "title",
     "genre",
     "year",
     "rating",
     "director",
     "trailer",
     "tagline",
     "plot",
     "plotoutline",
     "originaltitle",
     "lastplayed",
     "playcount",
     "writer",
     "studio",
     "mpaa",
     "cast",
     "country",
     "imdbnumber",
     "runtime",
     "set",
     "showlink",
     "streamdetails",
     "top250",
     "votes",
     "fanart",
     "thumbnail",
     "file",
     "sorttitle",
     "resume",
     "setid",
     "dateadded",
     "tag",
     "art",
     "userrating",
     "ratings",
     "premiered",
     "uniqueid"
   ]
 }

}

Video.Fields.MovieSet

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "title",
     "playcount",
     "fanart",
     "thumbnail",
     "art",
     "plot"
   ]
 }

}

Video.Fields.MusicVideo

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "description": "Requesting the streamdetails and/or tag field will result in increased response times",
   "enum": [
     "title",
     "playcount",
     "runtime",
     "director",
     "studio",
     "year",
     "plot",
     "album",
     "artist",
     "genre",
     "track",
     "streamdetails",
     "lastplayed",
     "fanart",
     "thumbnail",
     "file",
     "resume",
     "dateadded",
     "tag",
     "art",
     "rating",
     "userrating",
     "premiered"
   ]
 }

}

Video.Fields.Season

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "enum": [
     "season",
     "showtitle",
     "playcount",
     "episode",
     "fanart",
     "thumbnail",
     "tvshowid",
     "watchedepisodes",
     "art",
     "userrating",
     "title"
   ]
 }

}

Video.Fields.TVShow

Extends:

{

 "extends": "Item.Fields.Base",
 "items": {
   "type": "string",
   "description": "Requesting the cast, ratings, uniqueid and/or tag field will result in increased response times",
   "enum": [
     "title",
     "genre",
     "year",
     "rating",
     "plot",
     "studio",
     "mpaa",
     "cast",
     "playcount",
     "episode",
     "imdbnumber",
     "premiered",
     "votes",
     "lastplayed",
     "fanart",
     "thumbnail",
     "file",
     "originaltitle",
     "sorttitle",
     "episodeguide",
     "season",
     "watchedepisodes",
     "dateadded",
     "tag",
     "art",
     "userrating",
     "ratings",
     "runtime",
     "uniqueid"
   ]
 }

}

Video.Rating

Type: object
Properties:

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

{

 "type": "object",
 "properties": {
   "rating": {
     "type": "number",
     "required": true
   },
   "votes": {
     "type": "integer"
   },
   "default": {
     "type": "boolean"
   }
 }

}

Video.Ratings

Type: object

{

 "type": "object",
 "additionalProperties": {
   "$ref": "Video.Rating"
 }

}

Video.Ratings.Set

Type: object

{

 "type": "object",
 "additionalProperties": {
   "type": [
     "null",
     {
       "$ref": "Video.Rating",
       "required": true
     }
   ]
 }

}

Video.Resume

Type: object
Properties:

  • [number position]
  • [number total]

{

 "type": "object",
 "properties": {
   "position": {
     "type": "number",
     "minimum": 0.0
   },
   "total": {
     "type": "number",
     "minimum": 0.0
   }
 },
 "additionalProperties": false

}

Video.Streams

Type: object
Properties:

  • [array audio]
  • [array video]
  • [array subtitle]

{

 "type": "object",
 "properties": {
   "audio": {
     "type": "array",
     "minItems": 1,
     "items": {
       "type": "object",
       "properties": {
         "codec": {
           "type": "string"
         },
         "language": {
           "type": "string"
         },
         "channels": {
           "type": "integer"
         }
       },
       "additionalProperties": false
     }
   },
   "video": {
     "type": "array",
     "minItems": 1,
     "items": {
       "type": "object",
       "properties": {
         "codec": {
           "type": "string"
         },
         "aspect": {
           "type": "number"
         },
         "width": {
           "type": "integer"
         },
         "height": {
           "type": "integer"
         },
         "duration": {
           "type": "integer"
         }
       },
       "additionalProperties": false
     }
   },
   "subtitle": {
     "type": "array",
     "minItems": 1,
     "items": {
       "type": "object",
       "properties": {
         "language": {
           "type": "string"
         }
       },
       "additionalProperties": false
     }
   }
 },
 "additionalProperties": false

}

Notifications

Application

Application.OnVolumeChanged

The volume of the application has changed.
Parameters:

  1. string sender
  2. object data:
    • integer volume
    • boolean muted

{

 "type": "notification",
 "description": "The volume of the application has changed.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "volume": {
         "type": "integer",
         "minimum": 0,
         "maximum": 100,
         "required": true
       },
       "muted": {
         "type": "boolean",
         "required": true
       }
     }
   }
 ],
 "returns": null

}

AudioLibrary

AudioLibrary.OnCleanFinished

The audio library has been cleaned.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The audio library has been cleaned.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

AudioLibrary.OnCleanStarted

An audio library clean operation has started.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "An audio library clean operation has started.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

AudioLibrary.OnExport

An audio library export has finished.
Parameters:

  1. string sender
  2. [object data]:
    • [string file = ""]
    • [integer failcount = 0]

{

 "type": "notification",
 "description": "An audio library export has finished.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": false,
     "properties": {
       "file": {
         "type": "string",
         "required": false,
         "default": ""
       },
       "failcount": {
         "type": "integer",
         "minimum": 0,
         "required": false,
         "default": 0
       }
     }
   }
 ],
 "returns": null

}

AudioLibrary.OnRemove

An audio item has been removed.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "An audio item has been removed.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "id": {
         "$ref": "Library.Id",
         "required": true
       },
       "type": {
         "$ref": "Notifications.Library.Audio.Type",
         "required": true
       },
       "transaction": {
         "$ref": "Optional.Boolean",
         "description": "True if the removal is being performed within a transaction."
       }
     }
   }
 ],
 "returns": null

}

AudioLibrary.OnScanFinished

Scanning the audio library has been finished.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "Scanning the audio library has been finished.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

AudioLibrary.OnScanStarted

An audio library scan has started.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "An audio library scan has started.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

AudioLibrary.OnUpdate

An audio item has been updated.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "An audio item has been updated.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "id": {
         "$ref": "Library.Id",
         "required": true
       },
       "type": {
         "type": "string",
         "id": "Notifications.Library.Audio.Type",
         "enum": [
           "song"
         ],
         "required": true
       },
       "transaction": {
         "$ref": "Optional.Boolean",
         "description": "True if the update is being performed within a transaction."
       },
       "added": {
         "$ref": "Optional.Boolean",
         "description": "True if the update is for a newly added item."
       }
     }
   }
 ],
 "returns": null

}

GUI

GUI.OnDPMSActivated

Energy saving/DPMS has been activated.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "Energy saving/DPMS has been activated.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

GUI.OnDPMSDeactivated

Energy saving/DPMS has been deactivated.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "Energy saving/DPMS has been deactivated.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

GUI.OnScreensaverActivated

The screensaver has been activated.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The screensaver has been activated.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

GUI.OnScreensaverDeactivated

The screensaver has been deactivated.
Parameters:

  1. string sender
  2. object data:
    • boolean shuttingdown

{

 "type": "notification",
 "description": "The screensaver has been deactivated.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "shuttingdown": {
         "type": "boolean",
         "required": true
       }
     }
   }
 ],
 "returns": null

}

Input

Input.OnInputFinished

The user has provided the requested input.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The user has provided the requested input.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

Input.OnInputRequested

The user is requested to provide some information.
Parameters:

  1. string sender
  2. object data:
    • string type
    • string value
    • string title

{

 "type": "notification",
 "description": "The user is requested to provide some information.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "type": {
         "type": "string",
         "enum": [
           "keyboard",
           "time",
           "date",
           "ip",
           "password",
           "numericpassword",
           "number",
           "seconds"
         ],
         "required": true
       },
       "value": {
         "type": "string",
         "required": true
       },
       "title": {
         "type": "string"
       }
     }
   }
 ],
 "returns": null

}

Player

Player.OnAVChange

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

  1. string sender
  2. Player.Notifications.Data data

{

 "type": "notification",
 "description": "Audio- or videostream has changed. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "$ref": "Player.Notifications.Data",
     "required": true
   }
 ],
 "returns": null

}

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:

  1. string sender
  2. Player.Notifications.Data data

{

 "type": "notification",
 "description": "Playback of a media item has been started and first frame is available. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "$ref": "Player.Notifications.Data",
     "required": true
   }
 ],
 "returns": null

}

Player.OnPause

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

  1. string sender
  2. Player.Notifications.Data data

{

 "type": "notification",
 "description": "Playback of a media item has been paused. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "$ref": "Player.Notifications.Data",
     "required": true
   }
 ],
 "returns": null

}

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:

  1. string sender
  2. Player.Notifications.Data data

{

 "type": "notification",
 "description": "Playback of a media item has been started or the playback speed has changed. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "$ref": "Player.Notifications.Data",
     "required": true
   }
 ],
 "returns": null

}

Player.OnPropertyChanged

A property of the playing items has changed.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "A property of the playing items has changed.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "property": {
         "$ref": "Player.Property.Value"
       },
       "player": {
         "$ref": "Player.Notifications.Player",
         "required": true
       }
     }
   }
 ],
 "returns": null

}

Player.OnResume

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

  1. string sender
  2. Player.Notifications.Data data

{

 "type": "notification",
 "description": "Playback of a media item has been resumed. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "$ref": "Player.Notifications.Data",
     "required": true
   }
 ],
 "returns": null

}

Player.OnSeek

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

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "The playback position has been changed. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "item": {
         "$ref": "Notifications.Item"
       },
       "player": {
         "$ref": "Player.Notifications.Player.Seek",
         "required": true
       }
     }
   }
 ],
 "returns": null

}

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:

  1. string sender
  2. Player.Notifications.Data data

{

 "type": "notification",
 "description": "Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "$ref": "Player.Notifications.Data",
     "required": true
   }
 ],
 "returns": null

}

Player.OnStop

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

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "Playback of a media item has been stopped. If there is no ID available extra information will be provided.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "item": {
         "$ref": "Notifications.Item"
       },
       "end": {
         "type": "boolean",
         "required": true,
         "description": "Whether the player has reached the end of the playable item(s) or not"
       }
     }
   }
 ],
 "returns": null

}

Playlist

Playlist.OnAdd

A playlist item has been added.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "A playlist item has been added.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "playlistid": {
         "$ref": "Playlist.Id",
         "required": true
       },
       "item": {
         "$ref": "Notifications.Item"
       },
       "position": {
         "$ref": "Playlist.Position"
       }
     }
   }
 ],
 "returns": null

}

Playlist.OnClear

A playlist item has been cleared.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "A playlist item has been cleared.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "playlistid": {
         "$ref": "Playlist.Id",
         "required": true
       }
     }
   }
 ],
 "returns": null

}

Playlist.OnRemove

A playlist item has been removed.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "A playlist item has been removed.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "playlistid": {
         "$ref": "Playlist.Id",
         "required": true
       },
       "position": {
         "$ref": "Playlist.Position"
       }
     }
   }
 ],
 "returns": null

}

System

System.OnLowBattery

The system is on low battery.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The system is on low battery.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

System.OnQuit

Kodi will be closed.
Parameters:

  1. string sender
  2. object data:
    • integer exitcode

{

 "type": "notification",
 "description": "Kodi will be closed.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "exitcode": {
         "type": "integer",
         "minimum": 0,
         "required": true
       }
     }
   }
 ],
 "returns": null

}

System.OnRestart

The system will be restarted.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The system will be restarted.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

System.OnSleep

The system will be suspended.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The system will be suspended.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

System.OnWake

The system woke up from suspension.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The system woke up from suspension.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

VideoLibrary

VideoLibrary.OnCleanFinished

The video library has been cleaned.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The video library has been cleaned.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

VideoLibrary.OnCleanStarted

A video library clean operation has started.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "A video library clean operation has started.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

VideoLibrary.OnExport

A video library export has finished.
Parameters:

  1. string sender
  2. [object data]:
    • [string file = ""]
    • [string root = ""]
    • [integer failcount = 0]

{

 "type": "notification",
 "description": "A video library export has finished.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": false,
     "properties": {
       "file": {
         "type": "string",
         "required": false,
         "default": ""
       },
       "root": {
         "type": "string",
         "required": false,
         "default": ""
       },
       "failcount": {
         "type": "integer",
         "minimum": 0,
         "required": false,
         "default": 0
       }
     }
   }
 ],
 "returns": null

}

VideoLibrary.OnRefresh

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

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "The video library has been refreshed and a home screen reload might be necessary.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

VideoLibrary.OnRemove

A video item has been removed.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "A video item has been removed.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "id": {
         "$ref": "Library.Id",
         "required": true
       },
       "type": {
         "$ref": "Notifications.Library.Video.Type",
         "required": true
       },
       "transaction": {
         "$ref": "Optional.Boolean",
         "description": "True if the removal is being performed within a transaction."
       }
     }
   }
 ],
 "returns": null

}

VideoLibrary.OnScanFinished

Scanning the video library has been finished.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "Scanning the video library has been finished.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

VideoLibrary.OnScanStarted

A video library scan has started.
Parameters:

  1. string sender
  2. string data

{

 "type": "notification",
 "description": "A video library scan has started.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "null",
     "required": true
   }
 ],
 "returns": null

}

VideoLibrary.OnUpdate

A video item has been updated.
Parameters:

  1. string sender
  2. object data:

{

 "type": "notification",
 "description": "A video item has been updated.",
 "params": [
   {
     "name": "sender",
     "type": "string",
     "required": true
   },
   {
     "name": "data",
     "type": "object",
     "required": true,
     "properties": {
       "id": {
         "$ref": "Library.Id",
         "required": true
       },
       "type": {
         "type": "string",
         "id": "Notifications.Library.Video.Type",
         "enum": [
           "movie",
           "tvshow",
           "episode",
           "musicvideo"
         ],
         "required": true
       },
       "playcount": {
         "type": "integer",
         "minimum": 0,
         "default": -1
       },
       "transaction": {
         "$ref": "Optional.Boolean",
         "description": "True if the update is being performed within a transaction."
       },
       "added": {
         "$ref": "Optional.Boolean",
         "description": "True if the update is for a newly added item."
       }
     }
   }
 ],
 "returns": null

}


See also

External links