|
|
| (20 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| {{mininav|[[Development]]|[[JSON-RPC API]]}}
| | [[File:ronie.jpg]] |
| Version 12 is the current development version of Kodi's JSON-RPC API and will be published with the release of v19 (Matrix).<br />
| |
| This document has been updated to version 11.8.1. Recent changes are announced on the [https://forum.kodi.tv/showthread.php?tid=352779 forum]
| |
| | |
| It comes with support for [http://en.wikipedia.org/wiki/WebSocket 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.
| |
| | |
| | |
| {{TOC right}}
| |
| == JSON-RPC 2.0 compatibility ==
| |
| {| class="prettytable" style="margin-right: 0;"
| |
| !style="padding-left: 5px; width: 7em; text-align: left;"|Version
| |
| !style="padding-left: 10px; padding-right: 10px;"|Method calls
| |
| !style="padding-left: 10px; padding-right: 10px;"|Notifications<br />(server-side)
| |
| !style="padding-left: 10px; padding-right: 10px;"|Notifications<br />(client-side)
| |
| !style="padding-left: 10px; padding-right: 10px;"|Parameters<br />by-name
| |
| !style="padding-left: 10px; padding-right: 10px;"|Parameters<br />by-position
| |
| !style="padding-left: 10px; padding-right: 10px;"|Batch requests
| |
| |-
| |
| |style="padding-left: 5px;"|Version 6
| |
| |{{yes}}
| |
| |{{yes}}
| |
| |{{yes}}
| |
| |{{yes}}
| |
| |{{yes}}
| |
| |{{yes}}
| |
| |-
| |
| |}
| |
| | |
| == Documentation (JSON Schema) ==
| |
| === Supported features of JSON Schema ===
| |
| <div style="float:left; margin-right:2em">
| |
| {| class="prettytable" style="margin-right: 0;"
| |
| !style="width: 10em; text-align: left;"|Schema
| |
| !style="padding-left: 10px; padding-right: 10px;"|IETF Draft 03
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1 type]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.2 properties]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.3 patternProperties]
| |
| |{{no}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.4 additionalProperties]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.5 items]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.6 additionalItems]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.7 required]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.8 dependencies]
| |
| |{{no}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.9 minimum]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.10 maximum]
| |
| |{{yes}}
| |
| |-
| |
| |}
| |
| </div>
| |
| | |
| <div style="float:left; margin-right:2em">
| |
| {| class="prettytable" style="margin-right: 0;"
| |
| !style="width: 10em; text-align: left;"|Schema
| |
| | |
| !style="padding-left: 10px; padding-right: 10px;"|IETF Draft 03
| |
| | |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.11 exclusiveMinimum]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.12 exclusiveMaximum]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.13 minItems]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.14 maxItems]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.15 uniqueItems]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.16 pattern]
| |
| |{{no}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.17 minLength]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.18 maxLength]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.19 enum]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.20 default]
| |
| |{{yes}}
| |
| |-
| |
| |}
| |
| </div>
| |
| | |
| <div style="float:left;">
| |
| {| class="prettytable" style="margin-right: 0;"
| |
| !style="width: 10em; text-align: left;"|Schema
| |
| | |
| !style="padding-left: 10px; padding-right: 10px;"|IETF Draft 03
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.21 title]
| |
| |{{no}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.22 description]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23 format]
| |
| |{{no}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.24 divisibleBy]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.25 disallow]
| |
| |{{no}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.26 extends]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.27 id]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.28 $ref]
| |
| |{{yes}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.29 $schema]
| |
| |{{no}}
| |
| |-
| |
| |[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-6 Hyper Schema]
| |
| |{{no}}
| |
| |-
| |
| |}
| |
| </div>
| |
| <div style="clear:left;"></div>
| |
| | |
| == 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
| |
| {|
| |
| |
| |
| <syntaxhighlight lang=json enclose="div">
| |
| {
| |
| "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" }
| |
| }
| |
| }
| |
| }
| |
| }
| |
| }
| |
| }
| |
| </syntaxhighlight>
| |
| |}
| |
| | |
| == Namespaces ==
| |
| The Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:
| |
| {|
| |
| |
| |
| <pre>
| |
| 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
| |
| </pre>
| |
| |}
| |
| | |
| == Methods ==
| |
| === Addons ===
| |
| ==== Addons.ExecuteAddon ====
| |
| Executes the given addon with the given parameters (if possible)<br />
| |
| '''Permissions:'''
| |
| * ExecuteAddon
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' addonid<br />
| |
| # [''mixed: object|array|string'' params = ""]<br />
| |
| # [''boolean'' wait = False]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' addonid<br />
| |
| # [''[[#Addon.Fields|Addon.Fields]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''[[#Addon.Details|Addon.Details]]'' addon<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Addon.Types|Addon.Types]]'' type]<br />
| |
| # [''[[#Addon.Content|Addon.Content]]'' content] (Content provided by the addon. Only considered for plugins and scripts.)<br />
| |
| # [''mixed: boolean|string'' enabled = all]<br />
| |
| # [''[[#Addon.Fields|Addon.Fields]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''mixed: boolean|string'' installed = True]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Addon.Details|Addon.Details]]'' addons]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ManageAddon
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' addonid<br />
| |
| # ''[[#Global.Toggle|Global.Toggle]]'' enabled<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''array'' properties<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Application.Property.Value|Application.Property.Value]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPower
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Quit application",
| |
| "transport": "Response",
| |
| "permission": "ControlPower",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Application.SetMute ====
| |
| Toggle mute/unmute<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Global.Toggle|Global.Toggle]]'' mute<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''boolean (Mute state)''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''mixed: integer|[[#Global.IncrementDecrement|Global.IncrementDecrement]]'' volume<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''integer''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * RemoveData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''boolean'' showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * WriteFile
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''mixed: object|object'' options]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' albumid<br />
| |
| # [''[[#Audio.Fields.Album|Audio.Fields.Album]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Audio.Details.Album|Audio.Details.Album]]'' albumdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Audio.Fields.Album|Audio.Fields.Album]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''mixed: object|object|object|object|object|object|object|object|[[#List.Filter.Albums|List.Filter.Albums]]'' filter]<br />
| |
| # [''boolean'' includesingles = False]<br />
| |
| # [''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.)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Audio.Details.Album|Audio.Details.Album]]'' albums]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' artistid<br />
| |
| # [''[[#Audio.Fields.Artist|Audio.Fields.Artist]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Audio.Details.Artist|Audio.Details.Artist]]'' artistdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Optional.Boolean|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)<br />
| |
| # [''[[#Audio.Fields.Artist|Audio.Fields.Artist]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''mixed: object|object|object|object|object|object|object|object|object|object|object|object|object|object|object|[[#List.Filter.Artists|List.Filter.Artists]]'' filter]<br />
| |
| # [''boolean'' allroles = False] (Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Audio.Details.Artist|Audio.Details.Artist]]'' artists]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Library.Fields.Genre|Library.Fields.Genre]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#Library.Details.Genre|Library.Details.Genre]]'' genres<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''array'' properties<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Audio.Property.Value|Audio.Property.Value]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Audio.Fields.Album|Audio.Fields.Album]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Audio.Details.Album|Audio.Details.Album]]'' albums]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#List.Amount|List.Amount]]'' albumlimit] (The amount of recently added albums from which to return the songs)<br />
| |
| # [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Audio.Details.Song|Audio.Details.Song]]'' songs]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Audio.Fields.Album|Audio.Fields.Album]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Audio.Details.Album|Audio.Details.Album]]'' albums]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Audio.Details.Song|Audio.Details.Song]]'' songs]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Audio.Fields.Role|Audio.Fields.Role]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#Audio.Details.Role|Audio.Details.Role]]'' roles<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' songid<br />
| |
| # [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Audio.Details.Song|Audio.Details.Song]]'' songdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''mixed: object|object|object|object|object|object|object|object|object|object|[[#List.Filter.Songs|List.Filter.Songs]]'' filter]<br />
| |
| # [''boolean'' includesingles = True] (Only songs from albums are returned when false, but overidden when singlesonly parameter is true)<br />
| |
| # [''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.)<br />
| |
| # [''boolean'' singlesonly = False] (Only singles are returned when true, and overides includesingles parameter)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Audio.Details.Song|Audio.Details.Song]]'' songs]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Library.Fields.Source|Library.Fields.Source]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#Library.Details.Source|Library.Details.Source]]'' sources<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''string'' directory = ""]<br />
| |
| # [''boolean'' showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' albumid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' artist = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' description]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' theme = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' mood = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' style = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' type]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' albumlabel]<br />
| |
| # [''[[#Optional.Number|Optional.Number]]'' rating]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' year]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' votes]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' musicbrainzalbumid]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' musicbrainzreleasegroupid]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' sortartist]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' displayartist]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' musicbrainzalbumartistid = None]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''[[#Optional.Boolean|Optional.Boolean]]'' isboxset]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' releasedate]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' originaldate]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' artistid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' artist]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' instrument = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' style = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' mood = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' born]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' formed]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' description]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' died]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' disbanded]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' yearsactive = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' musicbrainzartistid]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' sortname]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' type]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' gender]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' disambiguation]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' songid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' artist = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' year]<br />
| |
| # [''[[#Optional.Number|Optional.Number]]'' rating]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' track]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' disc]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' duration]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' comment]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' musicbrainztrackid]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' musicbrainzartistid]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' votes]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' displayartist]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' sortartist]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' mood]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' disctitle]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' releasedate]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' originaldate]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' bpm]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' title<br />
| |
| # ''[[#Favourite.Type|Favourite.Type]]'' type<br />
| |
| # [''[[#Optional.String|Optional.String]]'' path] (Required for media, script and androidapp favourites types)<br />
| |
| # [''[[#Optional.String|Optional.String]]'' window] (Required for window favourite type)<br />
| |
| # [''[[#Optional.String|Optional.String]]'' windowparameter]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''mixed: [[#Favourite.Type|Favourite.Type]]'' type = None]<br />
| |
| # [''[[#Favourite.Fields.Favourite|Favourite.Fields.Favourite]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Favourite.Details.Favourite|Favourite.Details.Favourite]]'' favourites]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' path<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''any''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' directory<br />
| |
| # [''[[#Files.Media|Files.Media]]'' media = files]<br />
| |
| # [''[[#List.Fields.Files|List.Fields.Files]]'' properties]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits] (Limits are applied after getting the directory content thus retrieval is not faster when they are applied.)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#List.Item.File|List.Item.File]]'' files<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' file (Full path to the file)<br />
| |
| # [''[[#Files.Media|Files.Media]]'' media = files]<br />
| |
| # [''[[#List.Fields.Files|List.Fields.Files]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.Item.File|List.Item.File]]'' filedetails<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Files.Media|Files.Media]]'' media<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''[[#List.Items.Sources|List.Items.Sources]]'' sources<br />
| |
| </div>
| |
| | |
| {
| |
| "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)<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' path<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''string'' protocol<br />
| |
| # ''any'' details (Transport specific details on how/from where to download the given file)<br />
| |
| # ''string'' mode (Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol)<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' file (Full path to the file)<br />
| |
| # ''[[#Files.Media|Files.Media]]'' media (File type to update correct database. Currently only "video" is supported.)<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' lastplayed] (Setting a valid lastplayed without a playcount will force playcount to 1.)<br />
| |
| # [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlGUI
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#GUI.Window|GUI.Window]]'' window<br />
| |
| # [''array'' parameters]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''array'' properties<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#GUI.Property.Value|GUI.Property.Value]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''array[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]'' stereoscopicmodes]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlGUI
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Global.Toggle|Global.Toggle]]'' fullscreen<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''boolean (Fullscreen state)''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlGUI
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' mode<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlGUI
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' title<br />
| |
| # ''string'' message<br />
| |
| # [''mixed: string|string'' image = ""]<br />
| |
| # [''integer'' displaytime = 5000] (The time in milliseconds the notification will be visible)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Goes back in GUI",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.ButtonEvent ====
| |
| Send a button press event<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' button (Button name)<br />
| |
| # ''string'' keymap (Keymap name (KB, XG, R1, or R2))<br />
| |
| # ''integer'' holdtime = 0 (Number of milliseconds to simulate button hold.)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Shows the context menu",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.Down ====
| |
| Navigate down in GUI<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Navigate down in GUI",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.ExecuteAction ====
| |
| Execute a specific action<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Input.Action|Input.Action]]'' action<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Goes to home window in GUI",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.Info ====
| |
| Shows the information dialog<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Shows the information dialog",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.Left ====
| |
| Navigate left in GUI<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Navigate left in GUI",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.Right ====
| |
| Navigate right in GUI<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Navigate right in GUI",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.Select ====
| |
| Select current item in GUI<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Select current item in GUI",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Input.SendText ====
| |
| Send a generic (unicode) text<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' text (Unicode text)<br />
| |
| # [''boolean'' done = True] (Whether this is the whole input or not (closes an open input dialog if true).)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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, ...<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Navigate up in GUI",
| |
| "transport": "Response",
| |
| "permission": "Navigate",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| === JSONRPC ===
| |
| ==== JSONRPC.GetConfiguration ====
| |
| Get client-specific configurations<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Configuration|Configuration]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Get client-specific configurations",
| |
| "transport": "Announcing",
| |
| "permission": "ReadData",
| |
| "params": [],
| |
| "returns": {
| |
| "$ref": "Configuration"
| |
| }
| |
| }
| |
| | |
| ==== JSONRPC.Introspect ====
| |
| Enumerates all actions and descriptions<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''boolean'' getdescriptions = True]<br />
| |
| # [''boolean'' getmetadata = False]<br />
| |
| # [''boolean'' filterbytransport = True]<br />
| |
| # [''object'' filter]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender<br />
| |
| # ''string'' message<br />
| |
| # [''any'' data = None]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''any''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''boolean'' ReadData<br />
| |
| # ''boolean'' ControlPlayback<br />
| |
| # ''boolean'' ControlNotify<br />
| |
| # ''boolean'' ControlPower<br />
| |
| # ''boolean'' UpdateData<br />
| |
| # ''boolean'' RemoveData<br />
| |
| # ''boolean'' Navigate<br />
| |
| # ''boolean'' WriteFile<br />
| |
| # ''boolean'' ControlSystem<br />
| |
| # ''boolean'' ControlGUI<br />
| |
| # ''boolean'' ManageAddon<br />
| |
| # ''boolean'' ExecuteAddon<br />
| |
| # ''boolean'' ControlPVR<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Ping responder",
| |
| "transport": "Response",
| |
| "permission": "ReadData",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== JSONRPC.SetConfiguration ====
| |
| Change the client-specific configuration<br />
| |
| '''Permissions:'''
| |
| * ControlNotify
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''object'' notifications]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Configuration|Configuration]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''object'' version<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPVR
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' broadcastid (the broadcast id of the item to record)<br />
| |
| # [''boolean'' timerrule = False] (controls whether to create a timer rule or a onetime timer)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPVR
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' timerid (the id of the onetime timer or timer rule to delete)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' broadcastid<br />
| |
| # [''[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' channelid<br />
| |
| # [''[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcasts<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' channelid<br />
| |
| # [''[[#PVR.Fields.Channel|PVR.Fields.Channel]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#PVR.Details.Channel|PVR.Details.Channel]]'' channeldetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#PVR.ChannelGroup.Id|PVR.ChannelGroup.Id]]'' channelgroupid<br />
| |
| # [''object'' channels]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#PVR.Details.ChannelGroup.Extended|PVR.Details.ChannelGroup.Extended]]'' channelgroupdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#PVR.Details.ChannelGroup|PVR.Details.ChannelGroup]]'' channelgroups<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#PVR.ChannelGroup.Id|PVR.ChannelGroup.Id]]'' channelgroupid<br />
| |
| # [''[[#PVR.Fields.Channel|PVR.Fields.Channel]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#PVR.Details.Channel|PVR.Details.Channel]]'' channels<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''array'' properties<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#PVR.Property.Value|PVR.Property.Value]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' recordingid<br />
| |
| # [''[[#PVR.Fields.Recording|PVR.Fields.Recording]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#PVR.Details.Recording|PVR.Details.Recording]]'' recordingdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#PVR.Fields.Recording|PVR.Fields.Recording]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#PVR.Details.Recording|PVR.Details.Recording]]'' recordings<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' timerid<br />
| |
| # [''[[#PVR.Fields.Timer|PVR.Fields.Timer]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#PVR.Details.Timer|PVR.Details.Timer]]'' timerdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#PVR.Fields.Timer|PVR.Fields.Timer]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#PVR.Details.Timer|PVR.Details.Timer]]'' timers<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPVR
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Global.Toggle|Global.Toggle]]'' record = toggle]<br />
| |
| # [''mixed: string|[[#Library.Id|Library.Id]]'' channel = current]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPVR
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPVR
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' broadcastid (the broadcast id of the item to toggle a onetime timer or time rule for)<br />
| |
| # [''boolean'' timerrule = False] (controls whether to create / delete a timer rule or a onetime timer)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''array''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # [''[[#List.Fields.All|List.Fields.All]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.Item.All|List.Item.All]]'' item<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''string'' media = all]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''array''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''array'' properties<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Player.Property.Value|Player.Property.Value]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#Player.ViewMode|Player.ViewMode]]'' viewmode<br />
| |
| # ''number'' zoom<br />
| |
| # ''number'' pixelratio<br />
| |
| # ''number'' verticalshift<br />
| |
| # ''boolean'' nonlinearstretch<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: string|[[#Playlist.Position|Playlist.Position]]'' to<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''string'' direction<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''mixed: object|[[#Playlist.Item|Playlist.Item]]|object|object|object|object'' item]<br />
| |
| # [''object'' options]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # [''[[#Global.Toggle|Global.Toggle]]'' play = toggle]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Player.Speed|Player.Speed]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # [''string'' value = clockwise]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: object|object|object|object'' value<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage]<br />
| |
| # [''[[#Global.Time|Global.Time]]'' time]<br />
| |
| # [''[[#Global.Time|Global.Time]]'' totaltime]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: string|integer'' stream<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''[[#Global.Toggle|Global.Toggle]]'' partymode<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: [[#Player.Repeat|Player.Repeat]]|string'' repeat<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''[[#Global.Toggle|Global.Toggle]]'' shuffle<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: integer|[[#Global.IncrementDecrement|Global.IncrementDecrement]]'' speed<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Player.Speed|Player.Speed]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: string|integer'' subtitle<br />
| |
| # [''boolean'' enable = False] (Whether to enable subtitles to be displayed after setting the new subtitle)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: string|integer'' stream<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''mixed: [[#Player.CustomViewMode|Player.CustomViewMode]]|[[#Player.ViewMode|Player.ViewMode]]'' viewmode<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Stops playback",
| |
| "transport": "Response",
| |
| "permission": "ControlPlayback",
| |
| "params": [
| |
| {
| |
| "name": "playerid",
| |
| "$ref": "Player.Id",
| |
| "required": true
| |
| }
| |
| ],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== Player.Zoom ====
| |
| Zoom current picture<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Player.Id|Player.Id]]'' playerid<br />
| |
| # ''mixed: string|integer'' zoom<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
| |
| # ''mixed: [[#Playlist.Item|Playlist.Item]]|array'' item<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
| |
| # [''[[#List.Fields.All|List.Fields.All]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#List.Item.All|List.Item.All]]'' items<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''array''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
| |
| # ''array'' properties<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Playlist.Property.Value|Playlist.Property.Value]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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).<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
| |
| # ''[[#Playlist.Position|Playlist.Position]]'' position<br />
| |
| # ''mixed: [[#Playlist.Item|Playlist.Item]]|array'' item<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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).<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
| |
| # ''[[#Playlist.Position|Playlist.Position]]'' position<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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).<br />
| |
| '''Permissions:'''
| |
| * ControlPlayback
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
| |
| # ''[[#Playlist.Position|Playlist.Position]]'' position1<br />
| |
| # ''[[#Playlist.Position|Playlist.Position]]'' position2<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Profiles.Fields.Profile|Profiles.Fields.Profile]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#Profiles.Details.Profile|Profiles.Details.Profile]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Profiles.Fields.Profile|Profiles.Fields.Profile]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#Profiles.Details.Profile|Profiles.Details.Profile]]'' profiles<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * Navigate
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' profile (Profile name)<br />
| |
| # [''boolean'' prompt] (Prompt for password)<br />
| |
| # [''[[#Profiles.Password|Profiles.Password]]'' password]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Setting.Level|Setting.Level]]'' level = standard]<br />
| |
| # [''string'' section = ""]<br />
| |
| # [''string'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''array[[#Setting.Details.Category|Setting.Details.Category]]'' categories]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Setting.Level|Setting.Level]]'' level = standard]<br />
| |
| # [''[[#Setting.Level|Setting.Level]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''array[[#Setting.Details.Section|Setting.Details.Section]]'' sections]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' setting<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#Setting.Value.Extended|Setting.Value.Extended]]'' value<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Setting.Level|Setting.Level]]'' level = standard]<br />
| |
| # [''mixed: object'' filter = None]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''array[[#Setting.Details.Setting|Setting.Details.Setting]]'' settings]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * WriteSetting
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' setting<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * WriteSetting
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' setting<br />
| |
| # ''[[#Setting.Value.Extended|Setting.Value.Extended]]'' value<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''boolean''<br />
| |
| </div>
| |
| | |
| {
| |
| "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)<br />
| |
| '''Permissions:'''
| |
| * ControlSystem
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''array'' properties<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''[[#System.Property.Value|System.Property.Value]]''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPower
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ControlPower
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Reboots the system running Kodi",
| |
| "transport": "Response",
| |
| "permission": "ControlPower",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== System.Shutdown ====
| |
| Shuts the system running Kodi down<br />
| |
| '''Permissions:'''
| |
| * ControlPower
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Shuts the system running Kodi down",
| |
| "transport": "Response",
| |
| "permission": "ControlPower",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| ==== System.Suspend ====
| |
| Suspends the system running Kodi<br />
| |
| '''Permissions:'''
| |
| * ControlPower
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "type": "method",
| |
| "description": "Suspends the system running Kodi",
| |
| "transport": "Response",
| |
| "permission": "ControlPower",
| |
| "params": [],
| |
| "returns": "string"
| |
| }
| |
| | |
| === Textures ===
| |
| ==== Textures.GetTextures ====
| |
| Retrieve all textures<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Textures.Fields.Texture|Textures.Fields.Texture]]'' properties]<br />
| |
| # [''[[#List.Filter.Textures|List.Filter.Textures]]'' filter]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''array[[#Textures.Details.Texture|Textures.Details.Texture]]'' textures<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * RemoveData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' textureid (Texture database identifier)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * RemoveData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''boolean'' showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)<br />
| |
| # [''string'' content = video] (Content type to clean for)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * WriteFile
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''mixed: object|object'' options]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' episodeid<br />
| |
| # [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Video.Details.Episode|Video.Details.Episode]]'' episodedetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Library.Id|Library.Id]]'' tvshowid]<br />
| |
| # [''integer'' season = -1]<br />
| |
| # [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''mixed: object|object|object|object|object|[[#List.Filter.Episodes|List.Filter.Episodes]]'' filter]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.Episode|Video.Details.Episode]]'' episodes]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' type<br />
| |
| # [''[[#Library.Fields.Genre|Library.Fields.Genre]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#Library.Details.Genre|Library.Details.Genre]]'' genres<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.TVShow|Video.Details.TVShow]]'' tvshows]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' movieid<br />
| |
| # [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Video.Details.Movie|Video.Details.Movie]]'' moviedetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' setid<br />
| |
| # [''[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]'' properties]<br />
| |
| # [''object'' movies]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Video.Details.MovieSet.Extended|Video.Details.MovieSet.Extended]]'' setdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.MovieSet|Video.Details.MovieSet]]'' sets]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''mixed: object|object|object|object|object|object|object|object|object|object|[[#List.Filter.Movies|List.Filter.Movies]]'' filter]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.Movie|Video.Details.Movie]]'' movies]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
| |
| # [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]'' musicvideodetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''mixed: object|object|object|object|object|object|object|[[#List.Filter.MusicVideos|List.Filter.MusicVideos]]'' filter]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]'' musicvideos]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.Episode|Video.Details.Episode]]'' episodes]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.Movie|Video.Details.Movie]]'' movies]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]'' musicvideos]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' seasonid<br />
| |
| # [''[[#Video.Fields.Season|Video.Fields.Season]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Video.Details.Season|Video.Details.Season]]'' seasondetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Library.Id|Library.Id]]'' tvshowid]<br />
| |
| # [''[[#Video.Fields.Season|Video.Fields.Season]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.Season|Video.Details.Season]]'' seasons]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' tvshowid<br />
| |
| # [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # [''[[#Video.Details.TVShow|Video.Details.TVShow]]'' tvshowdetails]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| # [''mixed: object|object|object|object|object|object|[[#List.Filter.TVShows|List.Filter.TVShows]]'' filter]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # [''array[[#Video.Details.TVShow|Video.Details.TVShow]]'' tvshows]<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' type<br />
| |
| # [''[[#Library.Fields.Tag|Library.Fields.Tag]]'' properties]<br />
| |
| # [''[[#List.Limits|List.Limits]]'' limits]<br />
| |
| # [''[[#List.Sort|List.Sort]]'' sort]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object''<br />
| |
| '''Properties:'''
| |
| # ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
| |
| # ''array[[#Library.Details.Tag|Library.Details.Tag]]'' tags<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' episodeid<br />
| |
| # ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
| |
| # ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' movieid<br />
| |
| # ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
| |
| # ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
| |
| # ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
| |
| # ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' tvshowid<br />
| |
| # ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
| |
| # ''boolean'' refreshepisodes = False (Whether or not to refresh all episodes belonging to the TV show.)<br />
| |
| # ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * RemoveData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' episodeid<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * RemoveData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' movieid<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * RemoveData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * RemoveData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' tvshowid<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # [''string'' directory = ""]<br />
| |
| # [''boolean'' showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' episodeid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' director = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' plot]<br />
| |
| # [''[[#Optional.Number|Optional.Number]]'' rating]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' votes]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' writer = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' firstaired]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' productioncode]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' season]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' episode]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' originaltitle]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' fanart]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
| |
| # [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' dateadded]<br />
| |
| # [''mixed: [[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' movieid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' director = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' studio = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' year] (linked with premiered. Overridden by premiered parameter)<br />
| |
| # [''[[#Optional.String|Optional.String]]'' plot]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
| |
| # [''[[#Optional.Number|Optional.Number]]'' rating]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' mpaa]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' imdbnumber]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' votes]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' originaltitle]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' trailer]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' tagline]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' plotoutline]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' writer = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' country = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' top250]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' sorttitle]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' set]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' showlink = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' fanart]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' tag = None]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
| |
| # [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' dateadded]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' premiered] (linked with year. Overrides year)<br />
| |
| # [''mixed: [[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' setid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' plot]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' director = None]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' studio = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' year] (linked with premiered. Overridden by premiered parameter)<br />
| |
| # [''[[#Optional.String|Optional.String]]'' plot]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' album]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' artist]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' track]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' fanart]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' tag = None]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
| |
| # [''[[#Optional.Number|Optional.Number]]'' rating]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' dateadded]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' premiered] (linked with year. Overrides year)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' seasonid<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * UpdateData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''[[#Library.Id|Library.Id]]'' tvshowid<br />
| |
| # [''[[#Optional.String|Optional.String]]'' title]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' studio = None]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' plot]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
| |
| # [''[[#Optional.Number|Optional.Number]]'' rating]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' mpaa]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' imdbnumber]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' premiered]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' votes]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' originaltitle]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' sorttitle]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' episodeguide]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' fanart]<br />
| |
| # [''mixed: [[#Array.String|Array.String]]'' tag = None]<br />
| |
| # [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
| |
| # [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
| |
| # [''[[#Optional.String|Optional.String]]'' dateadded]<br />
| |
| # [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
| |
| # [''[[#Optional.String|Optional.String]]'' status] (Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended')<br />
| |
| # [''mixed: [[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''string''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''array'' booleans<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object (Object containing key-value pairs of the retrieved info booleans)''<br />
| |
| </div>
| |
| | |
| {
| |
| "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<br />
| |
| '''Permissions:'''
| |
| * ReadData
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''array'' labels (See http://kodi.wiki/view/InfoLabels for a list of possible info labels)<br />
| |
| </div>
| |
| '''Returns:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| '''Type:''' ''object (Object containing key-value pairs of the retrieved info labels)''<br />
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "unknown",
| |
| "video",
| |
| "audio",
| |
| "image",
| |
| "executable"
| |
| ],
| |
| "default": "unknown"
| |
| }
| |
| | |
| ==== Addon.Details ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' addonid
| |
| * ''[[#Addon.Types|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]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "volume",
| |
| "muted",
| |
| "name",
| |
| "version",
| |
| "volume",
| |
| "sorttokens",
| |
| "language"
| |
| ]
| |
| }
| |
| | |
| ==== Application.Property.Value ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' volume]
| |
| * [''boolean'' muted]
| |
| * [''string'' name]
| |
| * [''object'' version]
| |
| * [''[[#Array.String|Array.String]]'' sorttokens]
| |
| * [''string'' language]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "array",
| |
| "items": {
| |
| "type": "integer"
| |
| }
| |
| }
| |
| | |
| ==== Array.String ====
| |
| '''Type:''' ''array''
| |
| <br />
| |
| | |
| {
| |
| "type": "array",
| |
| "items": {
| |
| "type": "string",
| |
| "minLength": 1
| |
| }
| |
| }
| |
| | |
| === Audio ===
| |
| ==== Audio.Album.ReleaseType ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "album",
| |
| "single"
| |
| ],
| |
| "default": "album"
| |
| }
| |
| | |
| ==== Audio.Artist.Roles ====
| |
| '''Type:''' ''array''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Audio.Details.Media|Audio.Details.Media]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' albumid
| |
| * [''string'' description]
| |
| * [''[[#Array.String|Array.String]]'' theme]
| |
| * [''[[#Array.String|Array.String]]'' mood]
| |
| * [''[[#Array.String|Array.String]]'' style]
| |
| * [''string'' type]
| |
| * [''string'' albumlabel]
| |
| * [''integer'' playcount]
| |
| * [''boolean'' compilation]
| |
| * [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype]
| |
| * [''string'' musicbrainzreleasegroupid]
| |
| * [''string'' musicbrainzalbumid]
| |
| * [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres]
| |
| * [''string'' lastplayed]
| |
| * [''[[#Array.Integer|Array.Integer]]'' sourceid]
| |
| * [''boolean'' isboxset]
| |
| * [''integer'' totaldiscs]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Audio.Details.Base|Audio.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' artistid
| |
| * ''string'' artist
| |
| * [''[[#Array.String|Array.String]]'' instrument]
| |
| * [''[[#Array.String|Array.String]]'' style]
| |
| * [''[[#Array.String|Array.String]]'' mood]
| |
| * [''string'' born]
| |
| * [''string'' formed]
| |
| * [''string'' description]
| |
| * [''string'' died]
| |
| * [''string'' disbanded]
| |
| * [''[[#Array.String|Array.String]]'' yearsactive]
| |
| * [''boolean'' compilationartist]
| |
| * [''[[#Array.String|Array.String]]'' musicbrainzartistid]
| |
| * [''[[#Audio.Artist.Roles|Audio.Artist.Roles]]'' roles]
| |
| * [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres]
| |
| * [''boolean'' isalbumartist]
| |
| * [''string'' sortname]
| |
| * [''string'' type]
| |
| * [''string'' gender]
| |
| * [''string'' disambiguation]
| |
| * [''[[#Array.Integer|Array.Integer]]'' sourceid]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Media.Details.Base|Media.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''[[#Array.String|Array.String]]'' genre]
| |
| * [''string'' dateadded]
| |
| * [''[[#Media.Artwork|Media.Artwork]]'' art]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Media.Details.Base",
| |
| "properties": {
| |
| "genre": {
| |
| "$ref": "Array.String"
| |
| },
| |
| "dateadded": {
| |
| "type": "string"
| |
| },
| |
| "art": {
| |
| "$ref": "Media.Artwork"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Audio.Details.Genres ====
| |
| '''Type:''' ''array''
| |
| <br />
| |
| | |
| {
| |
| "type": "array",
| |
| "items": {
| |
| "type": "object",
| |
| "properties": {
| |
| "genreid": {
| |
| "$ref": "Library.Id",
| |
| "required": true
| |
| },
| |
| "title": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Audio.Details.Media ====
| |
| '''Extends:'''
| |
| * ''[[#Audio.Details.Base|Audio.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' title]
| |
| * [''[[#Array.String|Array.String]]'' artist]
| |
| * [''integer'' year]
| |
| * [''number'' rating]
| |
| * [''[[#Array.String|Array.String]]'' musicbrainzalbumartistid]
| |
| * [''[[#Array.Integer|Array.Integer]]'' artistid]
| |
| * [''string'' displayartist]
| |
| * [''integer'' votes]
| |
| * [''integer'' userrating]
| |
| * [''string'' sortartist]
| |
| * [''string'' releasedate]
| |
| * [''string'' originaldate]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' roleid
| |
| * [''string'' title]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Item.Details.Base",
| |
| "properties": {
| |
| "roleid": {
| |
| "$ref": "Library.Id",
| |
| "required": true
| |
| },
| |
| "title": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Audio.Details.Song ====
| |
| '''Extends:'''
| |
| * ''[[#Audio.Details.Media|Audio.Details.Media]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' songid
| |
| * [''string'' file]
| |
| * [''[[#Array.String|Array.String]]'' albumartist]
| |
| * [''string'' album]
| |
| * [''integer'' track]
| |
| * [''integer'' duration]
| |
| * [''string'' comment]
| |
| * [''string'' lyrics]
| |
| * [''integer'' playcount]
| |
| * [''string'' musicbrainztrackid]
| |
| * [''[[#Array.String|Array.String]]'' musicbrainzartistid]
| |
| * [''[[#Library.Id|Library.Id]]'' albumid]
| |
| * [''string'' lastplayed]
| |
| * [''integer'' disc]
| |
| * [''[[#Array.Integer|Array.Integer]]'' albumartistid]
| |
| * [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype]
| |
| * [''string'' mood]
| |
| * [''[[#Audio.Contributors|Audio.Contributors]]'' contributors]
| |
| * [''string'' displaycomposer]
| |
| * [''string'' displayconductor]
| |
| * [''string'' displayorchestra]
| |
| * [''string'' displaylyricist]
| |
| * [''[[#Array.Integer|Array.Integer]]'' genreid]
| |
| * [''[[#Array.Integer|Array.Integer]]'' sourceid]
| |
| * [''string'' disctitle]
| |
| * [''Integer'' bpm]
| |
| * [''Integer'' samplerate]
| |
| * [''Integer'' bitrate]
| |
| * [''Integer'' channels]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "title"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Audio.Fields.Song ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "missingartistid",
| |
| "librarylastupdated"
| |
| ]
| |
| }
| |
| | |
| ==== Audio.Property.Value ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''[[#Library.Id|Library.Id]]'' missingartistid]
| |
| * [''string'' librarylastupdated]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "missingartistid": {
| |
| "$ref": "Library.Id"
| |
| },
| |
| "librarylastupdated": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| === Configuration ===
| |
| ==== Configuration ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Configuration.Notifications|Configuration.Notifications]]'' notifications
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "required": true,
| |
| "properties": {
| |
| "notifications": {
| |
| "$ref": "Configuration.Notifications",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Configuration.Notifications ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''boolean'' Player
| |
| * ''boolean'' Playlist
| |
| * ''boolean'' GUI
| |
| * ''boolean'' System
| |
| * ''boolean'' VideoLibrary
| |
| * ''boolean'' AudioLibrary
| |
| * ''boolean'' Application
| |
| * ''boolean'' Input
| |
| * ''boolean'' PVR
| |
| * ''boolean'' Other
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' title
| |
| * ''[[#Favourite.Type|Favourite.Type]]'' type
| |
| * [''string'' path]
| |
| * [''string'' window]
| |
| * [''string'' windowparameter]
| |
| * [''string'' thumbnail]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "window",
| |
| "windowparameter",
| |
| "thumbnail",
| |
| "path"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Favourite.Type ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "media",
| |
| "window",
| |
| "script",
| |
| "androidapp",
| |
| "unknown"
| |
| ]
| |
| }
| |
| | |
| === Files ===
| |
| ==== Files.Media ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "video",
| |
| "music",
| |
| "pictures",
| |
| "files",
| |
| "programs"
| |
| ]
| |
| }
| |
| | |
| === GUI ===
| |
| ==== GUI.Property.Name ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "currentwindow",
| |
| "currentcontrol",
| |
| "skin",
| |
| "fullscreen",
| |
| "stereoscopicmode"
| |
| ]
| |
| }
| |
| | |
| ==== GUI.Property.Value ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''object'' currentwindow]
| |
| * [''object'' currentcontrol]
| |
| * [''object'' skin]
| |
| * [''boolean'' fullscreen]
| |
| * [''[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]'' stereoscopicmode]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' mode
| |
| * ''string'' label
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "increment",
| |
| "decrement"
| |
| ]
| |
| }
| |
| | |
| ==== Global.String.NotEmpty ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "minLength": 1
| |
| }
| |
| | |
| ==== Global.Time ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''integer'' hours
| |
| * ''integer'' minutes
| |
| * ''integer'' seconds
| |
| * ''integer'' milliseconds
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": [
| |
| {
| |
| "type": "boolean",
| |
| "required": true
| |
| },
| |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "toggle"
| |
| ],
| |
| "required": true
| |
| }
| |
| ]
| |
| }
| |
| | |
| ==== Global.Weekday ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "monday",
| |
| "tuesday",
| |
| "wednesday",
| |
| "thursday",
| |
| "friday",
| |
| "saturday",
| |
| "sunday"
| |
| ]
| |
| }
| |
| | |
| === Item ===
| |
| ==== Item.Details.Base ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' label
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "label": {
| |
| "type": "string",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Item.Fields.Base ====
| |
| '''Type:''' ''array''
| |
| <br />
| |
| | |
| {
| |
| "type": "array",
| |
| "uniqueItems": true,
| |
| "items": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| | |
| === Library ===
| |
| ==== Library.Details.Genre ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' genreid
| |
| * [''string'' title]
| |
| * [''string'' thumbnail]
| |
| * [''[[#Array.Integer|Array.Integer]]'' sourceid]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' sourceid
| |
| * ''string'' file
| |
| * [''[[#Array.String|Array.String]]'' paths]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' tagid
| |
| * [''string'' title]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Item.Details.Base",
| |
| "properties": {
| |
| "tagid": {
| |
| "$ref": "Library.Id",
| |
| "required": true
| |
| },
| |
| "title": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Library.Fields.Genre ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "title",
| |
| "thumbnail",
| |
| "sourceid"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Library.Fields.Source ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "file",
| |
| "paths"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Library.Fields.Tag ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "title"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Library.Id ====
| |
| '''Type:''' ''integer''
| |
| <br />
| |
| | |
| {
| |
| "type": "integer",
| |
| "default": -1,
| |
| "minimum": 1
| |
| }
| |
| | |
| === List ===
| |
| ==== List.Amount ====
| |
| '''Type:''' ''integer''
| |
| <br />
| |
| | |
| {
| |
| "type": "integer",
| |
| "default": -1,
| |
| "minimum": 0
| |
| }
| |
| | |
| ==== List.Fields.All ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Operators|List.Filter.Operators]]'' operator
| |
| * ''mixed: string|array'' value
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.Albums|List.Filter.Fields.Albums]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.Albums",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Rule.Artists ====
| |
| '''Extends:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.Artists|List.Filter.Fields.Artists]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.Artists",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Rule.Episodes ====
| |
| '''Extends:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.Episodes|List.Filter.Fields.Episodes]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.Episodes",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Rule.Movies ====
| |
| '''Extends:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.Movies|List.Filter.Fields.Movies]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.Movies",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Rule.MusicVideos ====
| |
| '''Extends:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.MusicVideos|List.Filter.Fields.MusicVideos]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.MusicVideos",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Rule.Songs ====
| |
| '''Extends:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.Songs|List.Filter.Fields.Songs]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.Songs",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Rule.TVShows ====
| |
| '''Extends:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.TVShows|List.Filter.Fields.TVShows]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.TVShows",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Rule.Textures ====
| |
| '''Extends:'''
| |
| * ''[[#List.Filter.Rule|List.Filter.Rule]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.Filter.Fields.Textures|List.Filter.Fields.Textures]]'' field
| |
| </div>
| |
| | |
| {
| |
| "extends": "List.Filter.Rule",
| |
| "properties": {
| |
| "field": {
| |
| "$ref": "List.Filter.Fields.Textures",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Filter.Songs ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#List.Item.Base|List.Item.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' channel]
| |
| * [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype]
| |
| * [''boolean'' hidden]
| |
| * [''boolean'' locked]
| |
| * [''integer'' channelnumber]
| |
| * [''string'' starttime]
| |
| * [''string'' endtime]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Video.Details.File|Video.Details.File]]''
| |
| * ''[[#Audio.Details.Media|Audio.Details.Media]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''[[#Library.Id|Library.Id]]'' id]
| |
| * [''string'' type]
| |
| * [''[[#Array.String|Array.String]]'' albumartist]
| |
| * [''string'' album]
| |
| * [''integer'' track]
| |
| * [''integer'' duration]
| |
| * [''string'' comment]
| |
| * [''string'' lyrics]
| |
| * [''string'' musicbrainztrackid]
| |
| * [''[[#Array.String|Array.String]]'' musicbrainzartistid]
| |
| * [''string'' trailer]
| |
| * [''string'' tagline]
| |
| * [''string'' plotoutline]
| |
| * [''string'' originaltitle]
| |
| * [''[[#Array.String|Array.String]]'' writer]
| |
| * [''[[#Array.String|Array.String]]'' studio]
| |
| * [''string'' mpaa]
| |
| * [''[[#Video.Cast|Video.Cast]]'' cast]
| |
| * [''[[#Array.String|Array.String]]'' country]
| |
| * [''string'' imdbnumber]
| |
| * [''string'' premiered]
| |
| * [''string'' productioncode]
| |
| * [''string'' set]
| |
| * [''[[#Array.String|Array.String]]'' showlink]
| |
| * [''integer'' top250]
| |
| * [''string'' votes]
| |
| * [''string'' firstaired]
| |
| * [''integer'' season]
| |
| * [''integer'' episode]
| |
| * [''string'' showtitle]
| |
| * [''[[#Library.Id|Library.Id]]'' albumid]
| |
| * [''[[#Library.Id|Library.Id]]'' setid]
| |
| * [''[[#Library.Id|Library.Id]]'' tvshowid]
| |
| * [''integer'' watchedepisodes]
| |
| * [''integer'' disc]
| |
| * [''[[#Array.String|Array.String]]'' tag]
| |
| * [''[[#Array.Integer|Array.Integer]]'' albumartistid]
| |
| * [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
| |
| * [''string'' episodeguide]
| |
| * [''string'' sorttitle]
| |
| * [''string'' description]
| |
| * [''[[#Array.String|Array.String]]'' theme]
| |
| * [''[[#Array.String|Array.String]]'' mood]
| |
| * [''[[#Array.String|Array.String]]'' style]
| |
| * [''string'' albumlabel]
| |
| * [''integer'' specialsortseason]
| |
| * [''integer'' specialsortepisode]
| |
| * [''boolean'' compilation]
| |
| * [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype]
| |
| * [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype]
| |
| * [''[[#Audio.Contributors|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]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#List.Item.Base|List.Item.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' file
| |
| * ''string'' filetype
| |
| * [''integer'' size]
| |
| * [''string'' lastmodified]
| |
| * [''string'' mimetype]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "array",
| |
| "items": {
| |
| "extends": "Item.Details.Base",
| |
| "properties": {
| |
| "file": {
| |
| "type": "string",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== List.Limits ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' start]
| |
| * [''[[#List.Amount|List.Amount]]'' end]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' start]
| |
| * [''[[#List.Amount|List.Amount]]'' end]
| |
| * ''integer'' total
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' method = none]
| |
| * [''string'' order = ascending]
| |
| * [''boolean'' ignorearticle]
| |
| * [''boolean'' useartistsortname]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb]
| |
| * [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster]
| |
| * [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner]
| |
| * [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' fanart]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb]
| |
| * [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster]
| |
| * [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner]
| |
| * [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' fanart]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' fanart]
| |
| * [''string'' thumbnail]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Item.Details.Base",
| |
| "properties": {
| |
| "fanart": {
| |
| "type": "string"
| |
| },
| |
| "thumbnail": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Media.UniqueID ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| | |
| {
| |
| "type": "object",
| |
| "additionalProperties": {
| |
| "$ref": "Global.String.NotEmpty"
| |
| }
| |
| }
| |
| | |
| ==== Media.UniqueID.Set ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| | |
| {
| |
| "type": "object",
| |
| "additionalProperties": {
| |
| "type": [
| |
| "null",
| |
| {
| |
| "$ref": "Global.String.NotEmpty",
| |
| "required": true
| |
| }
| |
| ]
| |
| }
| |
| }
| |
| | |
| === Notifications ===
| |
| ==== Notifications.Item ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "unknown",
| |
| "movie",
| |
| "episode",
| |
| "musicvideo",
| |
| "song",
| |
| "picture",
| |
| "channel"
| |
| ]
| |
| }
| |
| | |
| === Optional ===
| |
| ==== Optional.Boolean ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "type": [
| |
| "null",
| |
| "boolean"
| |
| ],
| |
| "default": null
| |
| }
| |
| | |
| ==== Optional.Integer ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "type": [
| |
| "null",
| |
| "integer"
| |
| ],
| |
| "default": null
| |
| }
| |
| | |
| ==== Optional.Number ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "type": [
| |
| "null",
| |
| "number"
| |
| ],
| |
| "default": null
| |
| }
| |
| | |
| ==== Optional.String ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "type": [
| |
| "null",
| |
| "string"
| |
| ],
| |
| "default": null
| |
| }
| |
| | |
| === PVR ===
| |
| ==== PVR.Channel.Type ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "tv",
| |
| "radio"
| |
| ]
| |
| }
| |
| | |
| ==== PVR.ChannelGroup.Id ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "type": [
| |
| {
| |
| "$ref": "Library.Id",
| |
| "required": true
| |
| },
| |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "alltv",
| |
| "allradio"
| |
| ],
| |
| "required": true
| |
| }
| |
| ]
| |
| }
| |
| | |
| ==== PVR.Details.Broadcast ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|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]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' channelid
| |
| * [''string'' channel]
| |
| * [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype]
| |
| * [''boolean'' hidden]
| |
| * [''boolean'' locked]
| |
| * [''string'' thumbnail]
| |
| * [''string'' lastplayed]
| |
| * [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnow]
| |
| * [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnext]
| |
| * ''integer'' uniqueid
| |
| * [''string'' icon]
| |
| * [''integer'' channelnumber]
| |
| * [''integer'' subchannelnumber]
| |
| * [''boolean'' isrecording]
| |
| * [''boolean'' hasarchive]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' channelgroupid
| |
| * ''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype
| |
| </div>
| |
| | |
| {
| |
| "extends": "Item.Details.Base",
| |
| "properties": {
| |
| "channelgroupid": {
| |
| "$ref": "Library.Id",
| |
| "required": true
| |
| },
| |
| "channeltype": {
| |
| "$ref": "PVR.Channel.Type",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== PVR.Details.ChannelGroup.Extended ====
| |
| '''Extends:'''
| |
| * ''[[#PVR.Details.ChannelGroup|PVR.Details.ChannelGroup]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits
| |
| * [''array'' channels]
| |
| </div>
| |
| | |
| {
| |
| "extends": "PVR.Details.ChannelGroup",
| |
| "properties": {
| |
| "limits": {
| |
| "$ref": "List.LimitsReturned",
| |
| "required": true
| |
| },
| |
| "channels": {
| |
| "type": "array",
| |
| "items": {
| |
| "$ref": "PVR.Details.Channel"
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== PVR.Details.Recording ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' recordingid
| |
| * [''string'' title]
| |
| * [''string'' plot]
| |
| * [''string'' plotoutline]
| |
| * [''string'' genre]
| |
| * [''integer'' playcount]
| |
| * [''[[#Video.Resume|Video.Resume]]'' resume]
| |
| * [''string'' channel]
| |
| * [''string'' starttime]
| |
| * [''string'' endtime]
| |
| * [''integer'' runtime]
| |
| * [''integer'' lifetime]
| |
| * [''string'' icon]
| |
| * [''[[#Media.Artwork|Media.Artwork]]'' art]
| |
| * [''string'' streamurl]
| |
| * [''string'' file]
| |
| * [''string'' directory]
| |
| * [''boolean'' radio]
| |
| * [''boolean'' isdeleted]
| |
| * [''integer'' epgeventid]
| |
| * [''integer'' channeluid]
| |
| * [''integer'' season]
| |
| * [''integer'' episode]
| |
| * [''string'' showtitle]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' timerid
| |
| * [''string'' title]
| |
| * [''string'' summary]
| |
| * [''[[#Library.Id|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|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]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "available",
| |
| "recording",
| |
| "scanning"
| |
| ]
| |
| }
| |
| | |
| ==== PVR.Property.Value ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''boolean'' available]
| |
| * [''boolean'' recording]
| |
| * [''boolean'' scanning]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "available": {
| |
| "type": "boolean"
| |
| },
| |
| "recording": {
| |
| "type": "boolean"
| |
| },
| |
| "scanning": {
| |
| "type": "boolean"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== PVR.TimerState ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "unknown",
| |
| "new",
| |
| "scheduled",
| |
| "recording",
| |
| "completed",
| |
| "aborted",
| |
| "cancelled",
| |
| "conflict_ok",
| |
| "conflict_notok",
| |
| "error",
| |
| "disabled"
| |
| ]
| |
| }
| |
| | |
| === Player ===
| |
| ==== Player.Audio.Stream ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''integer'' index
| |
| * ''string'' name
| |
| * ''string'' language
| |
| * ''string'' codec
| |
| * ''integer'' bitrate
| |
| * ''integer'' channels
| |
| * ''boolean'' isdefault
| |
| * ''boolean'' isoriginal
| |
| * ''boolean'' isimpaired
| |
| * ''integer'' samplerate
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''mixed: string|[[#Optional.Number|Optional.Number]]'' zoom]
| |
| * [''mixed: string|[[#Optional.Number|Optional.Number]]'' pixelratio]
| |
| * [''mixed: string|[[#Optional.Number|Optional.Number]]'' verticalshift]
| |
| * [''mixed: string|[[#Optional.Boolean|Optional.Boolean]]'' nonlinearstretch]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "integer",
| |
| "minimum": 0,
| |
| "maximum": 2,
| |
| "default": -1
| |
| }
| |
| | |
| ==== Player.Notifications.Data ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Notifications.Item|Notifications.Item]]'' item
| |
| * ''[[#Player.Notifications.Player|Player.Notifications.Player]]'' player
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "item": {
| |
| "$ref": "Notifications.Item",
| |
| "required": true
| |
| },
| |
| "player": {
| |
| "$ref": "Player.Notifications.Player",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Player.Notifications.Player ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Player.Id|Player.Id]]'' playerid
| |
| * [''integer'' speed]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "playerid": {
| |
| "$ref": "Player.Id",
| |
| "required": true
| |
| },
| |
| "speed": {
| |
| "type": "integer"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Player.Notifications.Player.Seek ====
| |
| '''Extends:'''
| |
| * ''[[#Player.Notifications.Player|Player.Notifications.Player]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''[[#Global.Time|Global.Time]]'' time]
| |
| * [''[[#Global.Time|Global.Time]]'' seekoffset]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Player.Notifications.Player",
| |
| "properties": {
| |
| "time": {
| |
| "$ref": "Global.Time"
| |
| },
| |
| "seekoffset": {
| |
| "$ref": "Global.Time"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Player.Position.Percentage ====
| |
| '''Type:''' ''number''
| |
| <br />
| |
| | |
| {
| |
| "type": "number",
| |
| "minimum": 0.0,
| |
| "maximum": 100.0
| |
| }
| |
| | |
| ==== Player.Position.Time ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' hours]
| |
| * [''integer'' minutes]
| |
| * [''integer'' seconds]
| |
| * [''integer'' milliseconds]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''[[#Player.Type|Player.Type]]'' type]
| |
| * [''boolean'' partymode]
| |
| * [''integer'' speed]
| |
| * [''[[#Global.Time|Global.Time]]'' time]
| |
| * [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage]
| |
| * [''[[#Global.Time|Global.Time]]'' totaltime]
| |
| * [''[[#Playlist.Id|Playlist.Id]]'' playlistid]
| |
| * [''[[#Playlist.Position|Playlist.Position]]'' position]
| |
| * [''[[#Player.Repeat|Player.Repeat]]'' repeat]
| |
| * [''boolean'' shuffled]
| |
| * [''boolean'' canseek]
| |
| * [''boolean'' canchangespeed]
| |
| * [''boolean'' canmove]
| |
| * [''boolean'' canzoom]
| |
| * [''boolean'' canrotate]
| |
| * [''boolean'' canshuffle]
| |
| * [''boolean'' canrepeat]
| |
| * [''[[#Player.Audio.Stream|Player.Audio.Stream]]'' currentaudiostream]
| |
| * [''array'' audiostreams]
| |
| * [''[[#Player.Video.Stream|Player.Video.Stream]]'' currentvideostream]
| |
| * [''array'' videostreams]
| |
| * [''boolean'' subtitleenabled]
| |
| * [''[[#Player.Subtitle|Player.Subtitle]]'' currentsubtitle]
| |
| * [''array'' subtitles]
| |
| * [''boolean'' live]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "off",
| |
| "one",
| |
| "all"
| |
| ]
| |
| }
| |
| | |
| ==== Player.Speed ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' speed]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "required": true,
| |
| "properties": {
| |
| "speed": {
| |
| "type": "integer"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Player.Subtitle ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''integer'' index
| |
| * ''string'' name
| |
| * ''string'' language
| |
| * ''boolean'' isdefault
| |
| * ''boolean'' isforced
| |
| * ''boolean'' isimpaired
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "video",
| |
| "audio",
| |
| "picture"
| |
| ]
| |
| }
| |
| | |
| ==== Player.Video.Stream ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''integer'' index
| |
| * ''string'' name
| |
| * ''string'' language
| |
| * ''string'' codec
| |
| * ''integer'' width
| |
| * ''integer'' height
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "normal",
| |
| "zoom",
| |
| "stretch4x3",
| |
| "widezoom",
| |
| "stretch16x9",
| |
| "original",
| |
| "stretch16x9nonlin",
| |
| "zoom120width",
| |
| "zoom110width"
| |
| ]
| |
| }
| |
| | |
| === Playlist ===
| |
| ==== Playlist.Id ====
| |
| '''Type:''' ''integer''
| |
| <br />
| |
| | |
| {
| |
| "type": "integer",
| |
| "minimum": 0,
| |
| "maximum": 2,
| |
| "default": -1
| |
| }
| |
| | |
| ==== Playlist.Item ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "integer",
| |
| "minimum": 0,
| |
| "default": -1
| |
| }
| |
| | |
| ==== Playlist.Property.Name ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "type",
| |
| "size"
| |
| ]
| |
| }
| |
| | |
| ==== Playlist.Property.Value ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''[[#Playlist.Type|Playlist.Type]]'' type]
| |
| * [''integer'' size]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "type": {
| |
| "$ref": "Playlist.Type"
| |
| },
| |
| "size": {
| |
| "type": "integer",
| |
| "minimum": 0
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Playlist.Type ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "unknown",
| |
| "video",
| |
| "audio",
| |
| "picture",
| |
| "mixed"
| |
| ]
| |
| }
| |
| | |
| === Profiles ===
| |
| ==== Profiles.Details.Profile ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Details.Base|Item.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' thumbnail]
| |
| * [''integer'' lockmode]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Item.Details.Base",
| |
| "properties": {
| |
| "thumbnail": {
| |
| "type": "string"
| |
| },
| |
| "lockmode": {
| |
| "type": "integer"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Profiles.Fields.Profile ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "thumbnail",
| |
| "lockmode"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Profiles.Password ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' value
| |
| * [''string'' encryption = md5]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' id
| |
| * ''string'' label
| |
| * [''string'' help]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "id": {
| |
| "type": "string",
| |
| "required": true,
| |
| "minLength": 1
| |
| },
| |
| "label": {
| |
| "type": "string",
| |
| "required": true
| |
| },
| |
| "help": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.Category ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.Base|Setting.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''array'' groups]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.Base",
| |
| "properties": {
| |
| "groups": {
| |
| "type": "array",
| |
| "items": {
| |
| "$ref": "Setting.Details.Group"
| |
| },
| |
| "minItems": 1,
| |
| "uniqueItems": true
| |
| }
| |
| },
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Details.Control ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * ''string'' format
| |
| * ''boolean'' delayed
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "type": {
| |
| "type": "string",
| |
| "required": true
| |
| },
| |
| "format": {
| |
| "type": "string",
| |
| "required": true
| |
| },
| |
| "delayed": {
| |
| "type": "boolean",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.ControlButton ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.ControlHeading",
| |
| "properties": {
| |
| "type": {
| |
| "type": "string",
| |
| "required": true,
| |
| "enum": [
| |
| "button"
| |
| ]
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.ControlCheckmark ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * ''string'' format
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.ControlBase",
| |
| "properties": {
| |
| "type": {
| |
| "type": "string",
| |
| "required": true,
| |
| "enum": [
| |
| "toggle"
| |
| ]
| |
| },
| |
| "format": {
| |
| "type": "string",
| |
| "required": true,
| |
| "enum": [
| |
| "boolean"
| |
| ]
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.ControlEdit ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * ''boolean'' hidden
| |
| * ''boolean'' verifynewvalue
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' heading]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.ControlBase",
| |
| "properties": {
| |
| "heading": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.ControlLabel ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * ''string'' format
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.ControlBase",
| |
| "properties": {
| |
| "type": {
| |
| "type": "string",
| |
| "required": true,
| |
| "enum": [
| |
| "label"
| |
| ]
| |
| },
| |
| "format": {
| |
| "type": "string",
| |
| "required": true,
| |
| "enum": [
| |
| "string"
| |
| ]
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.ControlList ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * ''boolean'' multiselect
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.ControlHeading",
| |
| "properties": {
| |
| "type": {
| |
| "type": "string",
| |
| "required": true,
| |
| "enum": [
| |
| "list"
| |
| ]
| |
| },
| |
| "multiselect": {
| |
| "type": "boolean",
| |
| "required": true
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.ControlRange ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * ''string'' formatlabel
| |
| * ''string'' formatvalue
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * ''string'' formatlabel
| |
| * ''boolean'' popup
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' type
| |
| * [''string'' formatlabel]
| |
| * [''string'' minimumlabel]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.ControlBase",
| |
| "properties": {
| |
| "type": {
| |
| "type": "string",
| |
| "required": true,
| |
| "enum": [
| |
| "spinner"
| |
| ]
| |
| },
| |
| "formatlabel": {
| |
| "type": "string"
| |
| },
| |
| "minimumlabel": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Setting.Details.Group ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' id
| |
| * [''array'' settings]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.Base|Setting.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''array'' categories]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.Base",
| |
| "properties": {
| |
| "categories": {
| |
| "type": "array",
| |
| "items": {
| |
| "$ref": "Setting.Details.Category"
| |
| },
| |
| "minItems": 1,
| |
| "uniqueItems": true
| |
| }
| |
| },
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Details.Setting ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.SettingBase",
| |
| "properties": {
| |
| "data": {
| |
| "type": "string",
| |
| "required": true
| |
| }
| |
| },
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Details.SettingAddon ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Addon.Types|Addon.Types]]'' addontype
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.SettingString",
| |
| "properties": {
| |
| "addontype": {
| |
| "$ref": "Addon.Types",
| |
| "required": true
| |
| }
| |
| },
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Details.SettingBase ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.Base|Setting.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Setting.Type|Setting.Type]]'' type
| |
| * ''boolean'' enabled
| |
| * ''[[#Setting.Level|Setting.Level]]'' level
| |
| * [''string'' parent]
| |
| * [''[[#Setting.Details.Control|Setting.Details.Control]]'' control]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''boolean'' value
| |
| * ''boolean'' default
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.SettingBase",
| |
| "properties": {
| |
| "value": {
| |
| "type": "boolean",
| |
| "required": true
| |
| },
| |
| "default": {
| |
| "type": "boolean",
| |
| "required": true
| |
| }
| |
| },
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Details.SettingDate ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
| |
| | |
| {
| |
| "extends": "Setting.Details.SettingString",
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Details.SettingInt ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''integer'' value
| |
| * ''integer'' default
| |
| * [''integer'' minimum]
| |
| * [''integer'' step]
| |
| * [''integer'' maximum]
| |
| * [''array'' options]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Setting.Value.List|Setting.Value.List]]'' value
| |
| * ''[[#Setting.Value.List|Setting.Value.List]]'' default
| |
| * ''[[#Setting.Type|Setting.Type]]'' elementtype
| |
| * ''[[#Setting.Details.Setting|Setting.Details.Setting]]'' definition
| |
| * ''string'' delimiter
| |
| * [''integer'' minimumItems]
| |
| * [''integer'' maximumItems]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''number'' value
| |
| * ''number'' default
| |
| * ''number'' minimum
| |
| * ''number'' step
| |
| * ''number'' maximum
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''boolean'' writable
| |
| * [''array'' sources]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Setting.Details.SettingString",
| |
| "properties": {
| |
| "writable": {
| |
| "type": "boolean",
| |
| "required": true
| |
| },
| |
| "sources": {
| |
| "type": "array",
| |
| "items": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| },
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Details.SettingString ====
| |
| '''Extends:'''
| |
| * ''[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''string'' value
| |
| * ''string'' default
| |
| * ''boolean'' allowempty
| |
| * [''array'' options]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
| |
| | |
| {
| |
| "extends": "Setting.Details.SettingString",
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Setting.Level ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "basic",
| |
| "standard",
| |
| "advanced",
| |
| "expert"
| |
| ]
| |
| }
| |
| | |
| ==== Setting.Type ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "boolean",
| |
| "integer",
| |
| "number",
| |
| "string",
| |
| "action",
| |
| "list",
| |
| "path",
| |
| "addon",
| |
| "date",
| |
| "time"
| |
| ]
| |
| }
| |
| | |
| ==== Setting.Value ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "type": [
| |
| {
| |
| "type": "boolean",
| |
| "required": true
| |
| },
| |
| {
| |
| "type": "integer",
| |
| "required": true
| |
| },
| |
| {
| |
| "type": "number",
| |
| "required": true
| |
| },
| |
| {
| |
| "type": "string",
| |
| "required": true
| |
| }
| |
| ]
| |
| }
| |
| | |
| ==== Setting.Value.Extended ====
| |
| '''Type:''' ''mixed''
| |
| <br />
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| | |
| {
| |
| "type": "array",
| |
| "items": {
| |
| "$ref": "Setting.Value"
| |
| }
| |
| }
| |
| | |
| === System ===
| |
| ==== System.Property.Name ====
| |
| '''Type:''' ''string''
| |
| <br />
| |
| | |
| {
| |
| "type": "string",
| |
| "enum": [
| |
| "canshutdown",
| |
| "cansuspend",
| |
| "canhibernate",
| |
| "canreboot"
| |
| ]
| |
| }
| |
| | |
| ==== System.Property.Value ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''boolean'' canshutdown]
| |
| * [''boolean'' cansuspend]
| |
| * [''boolean'' canhibernate]
| |
| * [''boolean'' canreboot]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "canshutdown": {
| |
| "type": "boolean"
| |
| },
| |
| "cansuspend": {
| |
| "type": "boolean"
| |
| },
| |
| "canhibernate": {
| |
| "type": "boolean"
| |
| },
| |
| "canreboot": {
| |
| "type": "boolean"
| |
| }
| |
| }
| |
| }
| |
| | |
| === Textures ===
| |
| ==== Textures.Details.Size ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' size]
| |
| * [''integer'' width]
| |
| * [''integer'' height]
| |
| * [''integer'' usecount]
| |
| * [''string'' lastused]
| |
| </div>
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' textureid
| |
| * [''string'' url]
| |
| * [''string'' cachedurl]
| |
| * [''string'' lasthashcheck]
| |
| * [''string'' imagehash]
| |
| * [''array'' sizes]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "url",
| |
| "cachedurl",
| |
| "lasthashcheck",
| |
| "imagehash",
| |
| "sizes"
| |
| ]
| |
| }
| |
| }
| |
| | |
| === Video ===
| |
| ==== Video.Cast ====
| |
| '''Type:''' ''array''
| |
| <br />
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Media.Details.Base|Media.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' playcount]
| |
| * [''[[#Media.Artwork|Media.Artwork]]'' art]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Media.Details.Base",
| |
| "properties": {
| |
| "playcount": {
| |
| "type": "integer"
| |
| },
| |
| "art": {
| |
| "$ref": "Media.Artwork"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Video.Details.Episode ====
| |
| '''Extends:'''
| |
| * ''[[#Video.Details.File|Video.Details.File]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' episodeid
| |
| * [''string'' votes]
| |
| * [''number'' rating]
| |
| * [''[[#Array.String|Array.String]]'' writer]
| |
| * [''string'' firstaired]
| |
| * [''string'' productioncode]
| |
| * [''integer'' season]
| |
| * [''integer'' episode]
| |
| * [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
| |
| * [''string'' originaltitle]
| |
| * [''string'' showtitle]
| |
| * [''[[#Video.Cast|Video.Cast]]'' cast]
| |
| * [''[[#Library.Id|Library.Id]]'' tvshowid]
| |
| * [''integer'' specialsortseason]
| |
| * [''integer'' specialsortepisode]
| |
| * [''integer'' userrating]
| |
| * [''[[#Library.Id|Library.Id]]'' seasonid]
| |
| * [''Video.Ratings'' ratings]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Video.Details.Item|Video.Details.Item]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''integer'' runtime]
| |
| * [''[[#Array.String|Array.String]]'' director]
| |
| * [''[[#Video.Streams|Video.Streams]]'' streamdetails]
| |
| * [''[[#Video.Resume|Video.Resume]]'' resume]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Video.Details.Media|Video.Details.Media]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' file]
| |
| * [''string'' plot]
| |
| * [''string'' lastplayed]
| |
| * [''string'' dateadded]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Video.Details.Media",
| |
| "properties": {
| |
| "file": {
| |
| "type": "string"
| |
| },
| |
| "plot": {
| |
| "type": "string"
| |
| },
| |
| "lastplayed": {
| |
| "type": "string"
| |
| },
| |
| "dateadded": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Video.Details.Media ====
| |
| '''Extends:'''
| |
| * ''[[#Video.Details.Base|Video.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''string'' title]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Video.Details.Base",
| |
| "properties": {
| |
| "title": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Video.Details.Movie ====
| |
| '''Extends:'''
| |
| * ''[[#Video.Details.File|Video.Details.File]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' movieid
| |
| * [''[[#Array.String|Array.String]]'' genre]
| |
| * [''integer'' year]
| |
| * [''number'' rating]
| |
| * [''string'' trailer]
| |
| * [''string'' tagline]
| |
| * [''string'' plotoutline]
| |
| * [''string'' originaltitle]
| |
| * [''string'' sorttitle]
| |
| * [''[[#Array.String|Array.String]]'' writer]
| |
| * [''[[#Array.String|Array.String]]'' studio]
| |
| * [''string'' mpaa]
| |
| * [''[[#Video.Cast|Video.Cast]]'' cast]
| |
| * [''[[#Array.String|Array.String]]'' country]
| |
| * [''string'' imdbnumber]
| |
| * [''string'' set]
| |
| * [''[[#Array.String|Array.String]]'' showlink]
| |
| * [''integer'' top250]
| |
| * [''string'' votes]
| |
| * [''[[#Library.Id|Library.Id]]'' setid]
| |
| * [''[[#Array.String|Array.String]]'' tag]
| |
| * [''integer'' userrating]
| |
| * [''Video.Ratings'' ratings]
| |
| * [''string'' premiered]
| |
| * [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Video.Details.Media|Video.Details.Media]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' setid
| |
| * [''string'' plot]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Video.Details.Media",
| |
| "properties": {
| |
| "setid": {
| |
| "$ref": "Library.Id",
| |
| "required": true
| |
| },
| |
| "plot": {
| |
| "type": "string"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Video.Details.MovieSet.Extended ====
| |
| '''Extends:'''
| |
| * ''[[#Video.Details.MovieSet|Video.Details.MovieSet]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits
| |
| * [''array'' movies]
| |
| </div>
| |
| | |
| {
| |
| "extends": "Video.Details.MovieSet",
| |
| "properties": {
| |
| "limits": {
| |
| "$ref": "List.LimitsReturned",
| |
| "required": true
| |
| },
| |
| "movies": {
| |
| "type": "array",
| |
| "items": {
| |
| "$ref": "Video.Details.Movie"
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Video.Details.MusicVideo ====
| |
| '''Extends:'''
| |
| * ''[[#Video.Details.File|Video.Details.File]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' musicvideoid
| |
| * [''[[#Array.String|Array.String]]'' studio]
| |
| * [''integer'' year]
| |
| * [''string'' album]
| |
| * [''[[#Array.String|Array.String]]'' artist]
| |
| * [''[[#Array.String|Array.String]]'' genre]
| |
| * [''integer'' track]
| |
| * [''[[#Array.String|Array.String]]'' tag]
| |
| * [''number'' rating]
| |
| * [''integer'' userrating]
| |
| * [''string'' premiered]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Video.Details.Base|Video.Details.Base]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' seasonid
| |
| * ''integer'' season
| |
| * [''string'' showtitle]
| |
| * [''integer'' episode]
| |
| * [''integer'' watchedepisodes]
| |
| * [''[[#Library.Id|Library.Id]]'' tvshowid]
| |
| * [''integer'' userrating]
| |
| * [''string'' title]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Video.Details.Item|Video.Details.Item]]''
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''[[#Library.Id|Library.Id]]'' tvshowid
| |
| * [''[[#Array.String|Array.String]]'' genre]
| |
| * [''integer'' year]
| |
| * [''number'' rating]
| |
| * [''string'' originaltitle]
| |
| * [''string'' sorttitle]
| |
| * [''[[#Array.String|Array.String]]'' studio]
| |
| * [''string'' mpaa]
| |
| * [''[[#Video.Cast|Video.Cast]]'' cast]
| |
| * [''integer'' episode]
| |
| * [''integer'' watchedepisodes]
| |
| * [''string'' imdbnumber]
| |
| * [''string'' premiered]
| |
| * [''string'' votes]
| |
| * [''string'' episodeguide]
| |
| * [''integer'' season]
| |
| * [''[[#Array.String|Array.String]]'' tag]
| |
| * [''integer'' userrating]
| |
| * [''Video.Ratings'' ratings]
| |
| * [''integer'' runtime]
| |
| * [''string'' status]
| |
| * [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
| |
| </div>
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "title",
| |
| "playcount",
| |
| "fanart",
| |
| "thumbnail",
| |
| "art",
| |
| "plot"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Video.Fields.MusicVideo ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "extends": "Item.Fields.Base",
| |
| "items": {
| |
| "type": "string",
| |
| "enum": [
| |
| "season",
| |
| "showtitle",
| |
| "playcount",
| |
| "episode",
| |
| "fanart",
| |
| "thumbnail",
| |
| "tvshowid",
| |
| "watchedepisodes",
| |
| "art",
| |
| "userrating",
| |
| "title"
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Video.Fields.TVShow ====
| |
| '''Extends:'''
| |
| * ''[[#Item.Fields.Base|Item.Fields.Base]]''
| |
| | |
| {
| |
| "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''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * ''number'' rating
| |
| * [''integer'' votes]
| |
| * [''boolean'' default]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "rating": {
| |
| "type": "number",
| |
| "required": true
| |
| },
| |
| "votes": {
| |
| "type": "integer"
| |
| },
| |
| "default": {
| |
| "type": "boolean"
| |
| }
| |
| }
| |
| }
| |
| | |
| ==== Video.Ratings ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| | |
| {
| |
| "type": "object",
| |
| "additionalProperties": {
| |
| "$ref": "Video.Rating"
| |
| }
| |
| }
| |
| | |
| ==== Video.Ratings.Set ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| | |
| {
| |
| "type": "object",
| |
| "additionalProperties": {
| |
| "type": [
| |
| "null",
| |
| {
| |
| "$ref": "Video.Rating",
| |
| "required": true
| |
| }
| |
| ]
| |
| }
| |
| }
| |
| | |
| ==== Video.Resume ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''number'' position]
| |
| * [''number'' total]
| |
| </div>
| |
| | |
| {
| |
| "type": "object",
| |
| "properties": {
| |
| "position": {
| |
| "type": "number",
| |
| "minimum": 0.0
| |
| },
| |
| "total": {
| |
| "type": "number",
| |
| "minimum": 0.0
| |
| }
| |
| },
| |
| "additionalProperties": false
| |
| }
| |
| | |
| ==== Video.Streams ====
| |
| '''Type:''' ''object''
| |
| <br />
| |
| '''Properties:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| * [''array'' audio]
| |
| * [''array'' video]
| |
| * [''array'' subtitle]
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''integer'' volume
| |
| #* ''boolean'' muted
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # [''object'' data]:
| |
| #* [''string'' file = ""]
| |
| #* [''integer'' failcount = 0]
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Library.Id|Library.Id]]'' id
| |
| #* ''[[#Notifications.Library.Audio.Type|Notifications.Library.Audio.Type]]'' type
| |
| #* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Library.Id|Library.Id]]'' id
| |
| #* ''string'' type
| |
| #* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
| |
| #* ''[[#Optional.Boolean|Optional.Boolean]]'' added
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''boolean'' shuttingdown
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''string'' type
| |
| #* ''string'' value
| |
| #* ''string'' title
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Player.Property.Value|Player.Property.Value]]'' property
| |
| #* ''[[#Player.Notifications.Player|Player.Notifications.Player]]'' player
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Notifications.Item|Notifications.Item]]'' item
| |
| #* ''[[#Player.Notifications.Player.Seek|Player.Notifications.Player.Seek]]'' player
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Notifications.Item|Notifications.Item]]'' item
| |
| #* ''boolean'' end
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Playlist.Id|Playlist.Id]]'' playlistid
| |
| #* ''[[#Notifications.Item|Notifications.Item]]'' item
| |
| #* ''[[#Playlist.Position|Playlist.Position]]'' position
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Playlist.Id|Playlist.Id]]'' playlistid
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Playlist.Id|Playlist.Id]]'' playlistid
| |
| #* ''[[#Playlist.Position|Playlist.Position]]'' position
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''integer'' exitcode
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # [''object'' data]:
| |
| #* [''string'' file = ""]
| |
| #* [''string'' root = ""]
| |
| #* [''integer'' failcount = 0]
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Library.Id|Library.Id]]'' id
| |
| #* ''[[#Notifications.Library.Video.Type|Notifications.Library.Video.Type]]'' type
| |
| #* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''string'' data
| |
| </div>
| |
| | |
| {
| |
| "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.<br />
| |
| '''Parameters:'''
| |
| <div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
| |
| # ''string'' sender
| |
| # ''object'' data:
| |
| #* ''[[#Library.Id|Library.Id]]'' id
| |
| #* ''string'' type
| |
| #* ''integer'' playcount = -1
| |
| #* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
| |
| #* ''[[#Optional.Boolean|Optional.Boolean]]'' added
| |
| </div>
| |
| | |
| {
| |
| "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 ==
| |
| * [[JSON-RPC API]]
| |
| * [[JSON-RPC API/v4|JSON-RPC API v4 (Eden)]]
| |
| * [[JSON-RPC API/v6|JSON-RPC API v6 (Frodo - Jarvis)]]
| |
| * [[JSON-RPC API/v8|JSON-RPC API v8 (Krypton)]]
| |
| * [[JSON-RPC API/v10|JSON-RPC API v10 (Leia)]]
| |
| | |
| == External links ==
| |
| * [http://jsonrpc.org/spec.html JSON-RPC 2.0 specification]
| |
| * [http://tools.ietf.org/html/draft-zyp-json-schema-03 A JSON Media Type for Describing the Structure and Meaning of JSON Documents (Draft 03)]
| |
| | |
| [[Category:Development]]
| |