JSON-RPC API/v10: Difference between revisions
DarrenHill (talk | contribs) (Created page with "{{mininav|Development|JSON-RPC API}} Version 10 is a stable version of Kodi's JSON-RPC API and is published with the release of v18 (Leia). As this API is self-docu...") |
mNo edit summary |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{JSON-RPC_API_nav}} | |||
{{mininav|[[Development]]|[[JSON-RPC API]]}} | {{mininav|[[Development]]|[[JSON-RPC API]]}} | ||
Version 10 is the stable version of Kodi's JSON-RPC API and is published with the release of v18 (Leia). | |||
This document has been updated to version 10.3.0. Recent changes are announced on the [https://forum.kodi.tv/forumdisplay.php?fid=174 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: | |||
{| class="prettytable" style="margin-right: 10;" | |||
!style="padding-left: 10px; padding-right: 10px;"|Namespace | |||
!style="padding-left: 10px; padding-right: 10px;"|Description | |||
|- | |||
|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. | |||
|- | |||
|PVR | |||
|Live TV control. | |||
|- | |||
|Player | |||
|Manages all available players. | |||
|- | |||
|Playlist | |||
|Playlist modification. | |||
|- | |||
|Profiles | |||
|Support for Profiles operations to Kodi. | |||
|- | |||
|Settings | |||
|Allows manipulation of Kodi settings. | |||
|- | |||
|System | |||
|System controls and information. | |||
|- | |||
|Textures | |||
|Supplies GetTextures and RemoveTexture. Textures are images. | |||
|- | |||
|VideoLibrary | |||
|Video Library information. | |||
|- | |||
|XBMC | |||
|Dumping ground for very Kodi specific operations. | |||
|} | |||
== Methods == | |||
=== Addons === | |||
==== Addons.ExecuteAddon ==== | |||
Executes the given addon with the given parameters (if possible)<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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "addonid" | |||
}, | |||
{ | |||
"default": "", | |||
"type": [ | |||
{ | |||
"additionalProperties": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"type": "object" | |||
}, | |||
{ | |||
"items": { | |||
"type": "string" | |||
}, | |||
"type": "array" | |||
}, | |||
{ | |||
"type": "string", | |||
"description": "URL path (must start with / or ?" | |||
} | |||
], | |||
"name": "params" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"name": "wait" | |||
} | |||
], | |||
"description": "Executes the given addon with the given parameters (if possible)", | |||
"permission": "ExecuteAddon" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"addon": { | |||
"required": true, | |||
"$ref": "Addon.Details" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "addonid" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Addon.Fields" | |||
} | |||
], | |||
"description": "Gets the details of a specific addon", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = unknown]<br /> | |||
# [''[[#Addon.Content|Addon.Content]]'' content = unknown] (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:''' | |||
# [''array[ [[#Addon.Details|Addon.Details]] ]'' addons]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"addons": { | |||
"items": { | |||
"$ref": "Addon.Details" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": "unknown", | |||
"name": "type", | |||
"$ref": "Addon.Types" | |||
}, | |||
{ | |||
"default": "unknown", | |||
"description": "Content provided by the addon. Only considered for plugins and scripts.", | |||
"name": "content", | |||
"$ref": "Addon.Content" | |||
}, | |||
{ | |||
"default": "all", | |||
"type": [ | |||
{ | |||
"type": "boolean" | |||
}, | |||
{ | |||
"enums": [ | |||
"all" | |||
], | |||
"type": "string" | |||
} | |||
], | |||
"name": "enabled" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Addon.Fields" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"default": true, | |||
"type": [ | |||
{ | |||
"type": "boolean" | |||
}, | |||
{ | |||
"enums": [ | |||
"all" | |||
], | |||
"type": "string" | |||
} | |||
], | |||
"name": "installed" | |||
} | |||
], | |||
"description": "Gets all available addons", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "addonid" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "enabled", | |||
"$ref": "Global.Toggle" | |||
} | |||
], | |||
"description": "Enables/Disables a specific addon", | |||
"permission": "ManageAddon" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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[ [[#Application.Property.Name|Application.Property.Name]] ]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "Application.Property.Value" | |||
}, | |||
"params": [ | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "Application.Property.Name" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves the values of the given properties", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Quit application", | |||
"permission": "ControlPower" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "boolean", | |||
"description": "Mute state" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "mute", | |||
"$ref": "Global.Toggle" | |||
} | |||
], | |||
"description": "Toggle mute/unmute", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "integer" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 100 | |||
}, | |||
{ | |||
"$ref": "Global.IncrementDecrement" | |||
} | |||
], | |||
"name": "volume" | |||
} | |||
], | |||
"description": "Set the current volume", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Whether or not to show the progress bar or any other GUI dialog", | |||
"name": "showdialogs" | |||
} | |||
], | |||
"description": "Cleans the audio library from non-existent items", | |||
"permission": "RemoveData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"path": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Path to the directory to where the data should be exported" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"images": { | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether to export thumbnails and fanart images" | |||
}, | |||
"overwrite": { | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether to overwrite existing exported files" | |||
} | |||
} | |||
} | |||
], | |||
"name": "options" | |||
} | |||
], | |||
"description": "Exports all items from the audio library", | |||
"permission": "WriteFile" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"albumdetails": { | |||
"$ref": "Audio.Details.Album" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "albumid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Album" | |||
} | |||
], | |||
"description": "Retrieve details about a specific album", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Audio.Details.Album|Audio.Details.Album]] ]'' albums]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"albums": { | |||
"items": { | |||
"$ref": "Audio.Details.Album" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Album" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"description": "Song genre. Filter for existence of songs with this genre", | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Song genre. Filter for existence of songs with this genre" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artist": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"artist": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"artist": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Albums" | |||
} | |||
], | |||
"name": "filter" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"name": "includesingles" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"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.", | |||
"name": "allroles" | |||
} | |||
], | |||
"description": "Retrieve all albums from specified artist (and role) or that has songs of the specified genre", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"artistdetails": { | |||
"$ref": "Audio.Details.Artist" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "artistid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Artist" | |||
} | |||
], | |||
"description": "Retrieve details about a specific artist", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None] (Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used)<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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"artists": { | |||
"items": { | |||
"$ref": "Audio.Details.Artist" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": null, | |||
"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": "albumartistsonly", | |||
"$ref": "Optional.Boolean" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Artist" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"description": "Deprecated, use songgenreid. Filter for existence of songs with this genre", | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"songgenreid": { | |||
"required": true, | |||
"description": "Song genreid. Filter for existence of songs with this genre", | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"songgenreid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"songgenreid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Deprecated, use songgenre. Filter for existence of songs with this genre" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"songgenre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Song genre. Filter for existence of songs with this genre" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"songgenre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"songgenre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"albumid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"album": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"songid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"songid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"songid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"description": "Role contributed by artist. Overridden by allroles parameter", | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Role contributed by artist. Overridden by allroles parameter" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Artists" | |||
} | |||
], | |||
"name": "filter" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.", | |||
"name": "allroles" | |||
} | |||
], | |||
"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", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#Library.Details.Genre|Library.Details.Genre]] ]'' genres<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"genres": { | |||
"items": { | |||
"$ref": "Library.Details.Genre" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Library.Fields.Genre" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all genres", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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[ [[#Audio.Property.Name|Audio.Property.Name]] ]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "Audio.Property.Value" | |||
}, | |||
"params": [ | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "Audio.Property.Name" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves the values of the music library properties", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Audio.Details.Album|Audio.Details.Album]] ]'' albums]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"albums": { | |||
"items": { | |||
"$ref": "Audio.Details.Album" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Album" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve recently added albums", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = -1] (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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"songs": { | |||
"items": { | |||
"$ref": "Audio.Details.Song" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": -1, | |||
"description": "The amount of recently added albums from which to return the songs", | |||
"name": "albumlimit", | |||
"$ref": "List.Amount" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Song" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve recently added songs", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Audio.Details.Album|Audio.Details.Album]] ]'' albums]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"albums": { | |||
"items": { | |||
"$ref": "Audio.Details.Album" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Album" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve recently played albums", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"songs": { | |||
"items": { | |||
"$ref": "Audio.Details.Song" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Song" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve recently played songs", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#Audio.Details.Role|Audio.Details.Role]] ]'' roles<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"roles": { | |||
"items": { | |||
"$ref": "Audio.Details.Role" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Role" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all contributor roles", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"songdetails": { | |||
"$ref": "Audio.Details.Song" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "songid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Song" | |||
} | |||
], | |||
"description": "Retrieve details about a specific song", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"songs": { | |||
"items": { | |||
"$ref": "Audio.Details.Song" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Audio.Fields.Song" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"description": "Song genre. Filter for existence of songs with this genre", | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Song genre. Filter for existence of songs with this genre" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artist": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"artist": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"role": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"artist": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"albumid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"album": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Songs" | |||
} | |||
], | |||
"name": "filter" | |||
}, | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Only songs from albums are returned when false, but overidden when singlesonly parameter is true", | |||
"name": "includesingles" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"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": "allroles" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Only singles are returned when true, and overides includesingles parameter", | |||
"name": "singlesonly" | |||
} | |||
], | |||
"description": "Retrieve all songs from specified album, artist or genre", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#Library.Details.Source|Library.Details.Source]] ]'' sources<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"sources": { | |||
"items": { | |||
"$ref": "Library.Details.Source" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Library.Fields.Source" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Get all music sources, including unique ID", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"default": "", | |||
"type": "string", | |||
"name": "directory" | |||
}, | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Whether or not to show the progress bar or any other GUI dialog", | |||
"name": "showdialogs" | |||
} | |||
], | |||
"description": "Scans the audio sources for new library items", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' artist = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' description = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' theme = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' mood = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' style = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' type = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' albumlabel = None]<br /> | |||
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' year = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' votes = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' musicbrainzalbumid = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' musicbrainzreleasegroupid = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' sortartist = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' displayartist = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' musicbrainzalbumartistid = None]<br /> | |||
# [''mixed: null|[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "albumid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "artist" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "description", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "genre" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "theme" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "mood" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "style" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "type", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "albumlabel", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "rating", | |||
"$ref": "Optional.Number" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "year", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "userrating", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "votes", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "musicbrainzalbumid", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "musicbrainzreleasegroupid", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "sortartist", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "displayartist", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "musicbrainzalbumartistid" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
} | |||
], | |||
"description": "Update the given album with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' instrument = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' style = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' mood = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' born = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' formed = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' description = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' died = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' disbanded = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' yearsactive = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' musicbrainzartistid = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' sortname = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' type = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' gender = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' disambiguation = None]<br /> | |||
# [''mixed: null|[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "artistid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "artist", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "instrument" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "style" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "mood" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "born", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "formed", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "description", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "genre" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "died", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "disbanded", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "yearsactive" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "musicbrainzartistid", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "sortname", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "type", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "gender", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "disambiguation", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
} | |||
], | |||
"description": "Update the given artist with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' artist = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' year = None]<br /> | |||
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' track = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' disc = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' duration = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' comment = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' musicbrainztrackid = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' musicbrainzartistid = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' votes = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' displayartist = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' sortartist = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' mood = None]<br /> | |||
# [''mixed: null|[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "songid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "artist" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "genre" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "year", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "rating", | |||
"$ref": "Optional.Number" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "track", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "disc", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "duration", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "comment", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "musicbrainztrackid", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "musicbrainzartistid", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "playcount", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "lastplayed", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "userrating", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "votes", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "displayartist", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "sortartist", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "mood", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
} | |||
], | |||
"description": "Update the given song with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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 = None] (Required for media and script favourites types)<br /> | |||
# [''[[#Optional.String|Optional.String]]'' window = None] (Required for window favourite type)<br /> | |||
# [''[[#Optional.String|Optional.String]]'' windowparameter = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' thumbnail = 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "title" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "type", | |||
"$ref": "Favourite.Type" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "Required for media and script favourites types", | |||
"name": "path", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "Required for window favourite type", | |||
"name": "window", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "windowparameter", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "thumbnail", | |||
"$ref": "Optional.String" | |||
} | |||
], | |||
"description": "Add a favourite with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: null|[[#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:''' | |||
# [''array[ [[#Favourite.Details.Favourite|Favourite.Details.Favourite]] ]'' favourites]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"favourites": { | |||
"items": { | |||
"$ref": "Favourite.Details.Favourite" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Favourite.Type" | |||
} | |||
], | |||
"name": "type" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Favourite.Fields.Favourite" | |||
} | |||
], | |||
"description": "Retrieve all favourites", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
=== Files === | |||
==== 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:''' | |||
# ''array[ [[#List.Item.File|List.Item.File]] ]'' files<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"files": { | |||
"items": { | |||
"$ref": "List.Item.File" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "directory" | |||
}, | |||
{ | |||
"default": "files", | |||
"name": "media", | |||
"$ref": "Files.Media" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "List.Fields.Files" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"description": "Limits are applied after getting the directory content thus retrieval is not faster when they are applied.", | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
} | |||
], | |||
"description": "Get the directories and files in the given directory", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"filedetails": { | |||
"required": true, | |||
"$ref": "List.Item.File" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"description": "Full path to the file", | |||
"name": "file" | |||
}, | |||
{ | |||
"default": "files", | |||
"name": "media", | |||
"$ref": "Files.Media" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "List.Fields.Files" | |||
} | |||
], | |||
"description": "Get details for a specific file", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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.Items.Sources|List.Items.Sources]]'' sources<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"sources": { | |||
"required": true, | |||
"$ref": "List.Items.Sources" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "media", | |||
"$ref": "Files.Media" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Get the sources of the media windows", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' lastplayed = None] (Setting a valid lastplayed without a playcount will force playcount to 1.)<br /> | |||
# [''mixed: null|[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"description": "Full path to the file", | |||
"name": "file" | |||
}, | |||
{ | |||
"required": true, | |||
"description": "File type to update correct database. Currently only \"video\" is supported.", | |||
"name": "media", | |||
"$ref": "Files.Media" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "playcount", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "Setting a valid lastplayed without a playcount will force playcount to 1.", | |||
"name": "lastplayed", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Video.Resume" | |||
} | |||
], | |||
"name": "resume" | |||
} | |||
], | |||
"description": "Update the given specific file with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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[string]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "window", | |||
"$ref": "GUI.Window" | |||
}, | |||
{ | |||
"minItems": 1, | |||
"items": { | |||
"minLength": 1, | |||
"type": "string" | |||
}, | |||
"type": "array", | |||
"name": "parameters" | |||
} | |||
], | |||
"description": "Activates the given window", | |||
"permission": "ControlGUI" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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[ [[#GUI.Property.Name|GUI.Property.Name]] ]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "GUI.Property.Value" | |||
}, | |||
"params": [ | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "GUI.Property.Name" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves the values of the given properties", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"stereoscopicmodes": { | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "GUI.Stereoscopy.Mode" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [], | |||
"description": "Returns the supported stereoscopic modes of the GUI", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "boolean", | |||
"description": "Fullscreen state" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "fullscreen", | |||
"$ref": "Global.Toggle" | |||
} | |||
], | |||
"description": "Toggle fullscreen/GUI", | |||
"permission": "ControlGUI" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"enums": [ | |||
"toggle", | |||
"tomono", | |||
"next", | |||
"previous", | |||
"select", | |||
"off", | |||
"split_vertical", | |||
"split_horizontal", | |||
"row_interleaved", | |||
"hardware_based", | |||
"anaglyph_cyan_red", | |||
"anaglyph_green_magenta", | |||
"monoscopic" | |||
], | |||
"type": "string", | |||
"name": "mode", | |||
"required": true | |||
} | |||
], | |||
"description": "Sets the stereoscopic mode of the GUI to the given mode", | |||
"permission": "ControlGUI" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "title" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "message" | |||
}, | |||
{ | |||
"default": "", | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"info", | |||
"warning", | |||
"error" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"type": "string" | |||
} | |||
], | |||
"name": "image" | |||
}, | |||
{ | |||
"default": 5000, | |||
"minimum": 1500, | |||
"type": "integer", | |||
"description": "The time in milliseconds the notification will be visible", | |||
"name": "displaytime" | |||
} | |||
], | |||
"description": "Shows a GUI notification", | |||
"permission": "ControlGUI" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Goes back in GUI", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Shows the context menu", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Navigate down in GUI", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "action", | |||
"$ref": "Input.Action" | |||
} | |||
], | |||
"description": "Execute a specific action", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Goes to home window in GUI", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Shows the information dialog", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Navigate left in GUI", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Navigate right in GUI", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Select current item in GUI", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"description": "Unicode text", | |||
"name": "text" | |||
}, | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Whether this is the whole input or not (closes an open input dialog if true).", | |||
"name": "done" | |||
} | |||
], | |||
"description": "Send a generic (unicode) text", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Show codec information of the playing item", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Show the on-screen display for the current player", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Navigate up in GUI", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
=== JSONRPC === | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"additionalProperties": false, | |||
"type": "object" | |||
}, | |||
"params": [ | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"name": "getdescriptions" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"name": "getmetadata" | |||
}, | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"name": "filterbytransport" | |||
}, | |||
{ | |||
"type": "object", | |||
"name": "filter", | |||
"properties": { | |||
"type": { | |||
"enums": [ | |||
"method", | |||
"namespace", | |||
"type", | |||
"notification" | |||
], | |||
"type": "string", | |||
"description": "Type of the given name", | |||
"required": true | |||
}, | |||
"id": { | |||
"required": true, | |||
"type": "string", | |||
"description": "Name of a namespace, method or type" | |||
}, | |||
"getreferences": { | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Whether or not to print the schema for referenced types" | |||
} | |||
} | |||
} | |||
], | |||
"description": "Enumerates all actions and descriptions", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "any" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "message" | |||
}, | |||
{ | |||
"default": null, | |||
"type": "any", | |||
"name": "data" | |||
} | |||
], | |||
"description": "Notify all other connected clients", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' controlsystem<br /> | |||
# ''boolean'' controlgui<br /> | |||
# ''boolean'' controlplayback<br /> | |||
# ''boolean'' readdata<br /> | |||
# ''boolean'' executeaddon<br /> | |||
# ''boolean'' writefile<br /> | |||
# ''boolean'' updatedata<br /> | |||
# ''boolean'' manageaddon<br /> | |||
# ''boolean'' controlpvr<br /> | |||
# ''boolean'' navigate<br /> | |||
# ''boolean'' controlnotify<br /> | |||
# ''boolean'' removedata<br /> | |||
# ''boolean'' controlpower<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"controlsystem": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"controlgui": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"controlplayback": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"readdata": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"executeaddon": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"writefile": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"updatedata": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"manageaddon": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"controlpvr": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"navigate": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"controlnotify": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"removedata": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"controlpower": { | |||
"required": true, | |||
"type": "boolean" | |||
} | |||
} | |||
}, | |||
"params": [], | |||
"description": "Retrieve the clients permissions", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Ping responder", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"version": { | |||
"required": true, | |||
"type": "object", | |||
"properties": { | |||
"major": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"description": "Bumped on backwards incompatible changes to the API definition", | |||
"required": true | |||
}, | |||
"minor": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"description": "Bumped on backwards compatible additions/changes to the API definition", | |||
"required": true | |||
}, | |||
"patch": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"description": "Bumped on any changes to the internal implementation but not to the API definition", | |||
"required": true | |||
} | |||
} | |||
} | |||
} | |||
}, | |||
"params": [], | |||
"description": "Retrieve the JSON-RPC protocol version.", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"description": "the broadcast id of the item to record", | |||
"name": "broadcastid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "controls whether to create a timer rule or a onetime timer", | |||
"name": "timerrule" | |||
} | |||
], | |||
"description": "Adds a timer to record the given show one times or a timer rule to record all showings of the given show", | |||
"permission": "ControlPVR" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"description": "the id of the onetime timer or timer rule to delete", | |||
"name": "timerid", | |||
"$ref": "Library.Id" | |||
} | |||
], | |||
"description": "Deletes a onetime timer or a timer rule", | |||
"permission": "ControlPVR" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"broadcastdetails": { | |||
"$ref": "PVR.Details.Broadcast" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "broadcastid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Broadcast" | |||
} | |||
], | |||
"description": "Retrieves the details of a specific broadcast", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#PVR.Details.Broadcast|PVR.Details.Broadcast]] ]'' broadcasts<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"broadcasts": { | |||
"items": { | |||
"$ref": "PVR.Details.Broadcast" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "channelid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Broadcast" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
} | |||
], | |||
"description": "Retrieves the program of a specific channel", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"channeldetails": { | |||
"$ref": "PVR.Details.Channel" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "channelid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Channel" | |||
} | |||
], | |||
"description": "Retrieves the details of a specific channel", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"channelgroupdetails": { | |||
"$ref": "PVR.Details.ChannelGroup.Extended" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "channelgroupid", | |||
"$ref": "PVR.ChannelGroup.Id" | |||
}, | |||
{ | |||
"type": "object", | |||
"name": "channels", | |||
"properties": { | |||
"properties": { | |||
"$ref": "PVR.Fields.Channel" | |||
}, | |||
"limits": { | |||
"$ref": "List.Limits" | |||
} | |||
} | |||
} | |||
], | |||
"description": "Retrieves the details of a specific channel group", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#PVR.Details.ChannelGroup|PVR.Details.ChannelGroup]] ]'' channelgroups<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"channelgroups": { | |||
"items": { | |||
"$ref": "PVR.Details.ChannelGroup" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "channeltype", | |||
"$ref": "PVR.Channel.Type" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
} | |||
], | |||
"description": "Retrieves the channel groups for the specified type", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#PVR.Details.Channel|PVR.Details.Channel]] ]'' channels<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"channels": { | |||
"items": { | |||
"$ref": "PVR.Details.Channel" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "channelgroupid", | |||
"$ref": "PVR.ChannelGroup.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Channel" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
} | |||
], | |||
"description": "Retrieves the channel list", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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[ [[#PVR.Property.Name|PVR.Property.Name]] ]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "PVR.Property.Value" | |||
}, | |||
"params": [ | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "PVR.Property.Name" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves the values of the given properties", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"recordingdetails": { | |||
"$ref": "PVR.Details.Recording" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "recordingid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Recording" | |||
} | |||
], | |||
"description": "Retrieves the details of a specific recording", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#PVR.Details.Recording|PVR.Details.Recording]] ]'' recordings<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"recordings": { | |||
"items": { | |||
"$ref": "PVR.Details.Recording" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Recording" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
} | |||
], | |||
"description": "Retrieves the recordings", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"timerdetails": { | |||
"$ref": "PVR.Details.Timer" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "timerid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Timer" | |||
} | |||
], | |||
"description": "Retrieves the details of a specific timer", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#PVR.Details.Timer|PVR.Details.Timer]] ]'' timers<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"timers": { | |||
"items": { | |||
"$ref": "PVR.Details.Timer" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "PVR.Fields.Timer" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
} | |||
], | |||
"description": "Retrieves the timers", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"default": "toggle", | |||
"name": "record", | |||
"$ref": "Global.Toggle" | |||
}, | |||
{ | |||
"default": "current", | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"current" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"$ref": "Library.Id" | |||
} | |||
], | |||
"name": "channel" | |||
} | |||
], | |||
"description": "Toggle recording of a channel", | |||
"permission": "ControlPVR" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Starts a channel scan", | |||
"permission": "ControlPVR" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"description": "the broadcast id of the item to toggle a onetime timer or time rule for", | |||
"name": "broadcastid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "controls whether to create / delete a timer rule or a onetime timer", | |||
"name": "timerrule" | |||
} | |||
], | |||
"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", | |||
"permission": "ControlPVR" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"uniqueItems": true, | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"playerid": { | |||
"required": true, | |||
"$ref": "Player.Id" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Player.Type" | |||
}, | |||
"playertype": { | |||
"enums": [ | |||
"internal", | |||
"external", | |||
"remote" | |||
], | |||
"type": "string", | |||
"required": true | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"params": [], | |||
"description": "Returns all active players", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"item": { | |||
"required": true, | |||
"$ref": "List.Item.All" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "List.Fields.All" | |||
} | |||
], | |||
"description": "Retrieves the currently played item", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"uniqueItems": true, | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"playsvideo": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"type": { | |||
"enums": [ | |||
"internal", | |||
"external", | |||
"remote" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"name": { | |||
"required": true, | |||
"$ref": "Global.String.NotEmpty" | |||
}, | |||
"playsaudio": { | |||
"required": true, | |||
"type": "boolean" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"params": [ | |||
{ | |||
"default": "all", | |||
"enums": [ | |||
"all", | |||
"video", | |||
"audio" | |||
], | |||
"type": "string", | |||
"name": "media" | |||
} | |||
], | |||
"description": "Get a list of available players", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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[ [[#Player.Property.Name|Player.Property.Name]] ]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "Player.Property.Value" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "Player.Property.Name" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves the values of the given properties", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''boolean'' nonlinearstretch<br /> | |||
# ''number'' verticalshift<br /> | |||
# ''number'' pixelratio<br /> | |||
# ''[[#Player.ViewMode|Player.ViewMode]]'' viewmode<br /> | |||
# ''number'' zoom<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"nonlinearstretch": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"verticalshift": { | |||
"required": true, | |||
"type": "number" | |||
}, | |||
"pixelratio": { | |||
"required": true, | |||
"type": "number" | |||
}, | |||
"viewmode": { | |||
"required": true, | |||
"$ref": "Player.ViewMode" | |||
}, | |||
"zoom": { | |||
"required": true, | |||
"type": "number" | |||
} | |||
} | |||
}, | |||
"params": [], | |||
"description": "Get view mode of video player", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"previous", | |||
"next" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"description": "position in playlist", | |||
"$ref": "Playlist.Position" | |||
} | |||
], | |||
"name": "to" | |||
} | |||
], | |||
"description": "Go to previous/next/specific item in the playlist", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"enums": [ | |||
"left", | |||
"right", | |||
"up", | |||
"down" | |||
], | |||
"type": "string", | |||
"name": "direction", | |||
"required": true | |||
} | |||
], | |||
"description": "If picture is zoomed move viewport left/right/up/down otherwise skip previous/next", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"position": { | |||
"default": 0, | |||
"$ref": "Playlist.Position" | |||
}, | |||
"playlistid": { | |||
"required": true, | |||
"$ref": "Playlist.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "Playlist.Item" | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"path": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"random": { | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Deprecated, use the shuffled property of the options parameter instead" | |||
}, | |||
"recursive": { | |||
"default": true, | |||
"type": "boolean" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"partymode": { | |||
"default": "", | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"music", | |||
"video" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"minLength": 5, | |||
"type": "string", | |||
"description": "Path to a smartplaylist (*.xsp) file" | |||
} | |||
] | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"channelid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"recordingid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
], | |||
"name": "item" | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"name": "options", | |||
"properties": { | |||
"playername": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"enums": [ | |||
"default" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"minLength": 1, | |||
"type": "string", | |||
"description": "name of player" | |||
} | |||
] | |||
}, | |||
"repeat": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Player.Repeat" | |||
} | |||
] | |||
}, | |||
"shuffled": { | |||
"default": null, | |||
"$ref": "Optional.Boolean" | |||
}, | |||
"resume": { | |||
"default": false, | |||
"type": [ | |||
{ | |||
"type": "boolean", | |||
"description": "Whether to resume from the resume point or not" | |||
}, | |||
{ | |||
"description": "Percentage value to start from", | |||
"$ref": "Player.Position.Percentage" | |||
}, | |||
{ | |||
"description": "Time to start from", | |||
"$ref": "Player.Position.Time" | |||
} | |||
] | |||
} | |||
} | |||
} | |||
], | |||
"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.", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "Player.Speed" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"default": "toggle", | |||
"name": "play", | |||
"$ref": "Global.Toggle" | |||
} | |||
], | |||
"description": "Pauses or unpause playback and returns the new state", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"default": "clockwise", | |||
"enums": [ | |||
"clockwise", | |||
"counterclockwise" | |||
], | |||
"type": "string", | |||
"name": "value" | |||
} | |||
], | |||
"description": "Rotates current picture", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: [[#Player.Position.Percentage|Player.Position.Percentage]]|[[#Player.Position.Time|Player.Position.Time]]|string|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:''' | |||
# [''[[#Global.Time|Global.Time]]'' totaltime]<br /> | |||
# [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage]<br /> | |||
# [''[[#Global.Time|Global.Time]]'' time]<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"totaltime": { | |||
"$ref": "Global.Time" | |||
}, | |||
"percentage": { | |||
"default": 0.0, | |||
"$ref": "Player.Position.Percentage" | |||
}, | |||
"time": { | |||
"$ref": "Global.Time" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"description": "Percentage value to seek to", | |||
"$ref": "Player.Position.Percentage" | |||
}, | |||
{ | |||
"description": "Time to seek to", | |||
"$ref": "Player.Position.Time" | |||
}, | |||
{ | |||
"enums": [ | |||
"smallforward", | |||
"smallbackward", | |||
"bigforward", | |||
"bigbackward" | |||
], | |||
"type": "string", | |||
"description": "Seek by predefined jumps" | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"percentage": { | |||
"required": true, | |||
"description": "Percentage value to seek to", | |||
"$ref": "Player.Position.Percentage" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"time": { | |||
"required": true, | |||
"description": "Time to seek to", | |||
"$ref": "Player.Position.Time" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"step": { | |||
"enums": [ | |||
"smallforward", | |||
"smallbackward", | |||
"bigforward", | |||
"bigbackward" | |||
], | |||
"type": "string", | |||
"description": "Seek by predefined jumps", | |||
"required": true | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"seconds": { | |||
"required": true, | |||
"type": "integer", | |||
"description": "Seek by the given number of seconds" | |||
} | |||
} | |||
} | |||
], | |||
"name": "value" | |||
} | |||
], | |||
"description": "Seek through the playing item", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"previous", | |||
"next" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"minimum": 0, | |||
"type": "integer", | |||
"description": "Index of the audio stream to play" | |||
} | |||
], | |||
"name": "stream" | |||
} | |||
], | |||
"description": "Set the audio stream played by the player", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "partymode", | |||
"$ref": "Global.Toggle" | |||
} | |||
], | |||
"description": "Turn partymode on or off", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"$ref": "Player.Repeat" | |||
}, | |||
{ | |||
"enums": [ | |||
"cycle" | |||
], | |||
"type": "string" | |||
} | |||
], | |||
"name": "repeat" | |||
} | |||
], | |||
"description": "Set the repeat mode of the player", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "shuffle", | |||
"$ref": "Global.Toggle" | |||
} | |||
], | |||
"description": "Shuffle/Unshuffle items in the player", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "Player.Speed" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
-32, | |||
-16, | |||
-8, | |||
-4, | |||
-2, | |||
-1, | |||
0, | |||
1, | |||
2, | |||
4, | |||
8, | |||
16, | |||
32 | |||
], | |||
"type": "integer" | |||
}, | |||
{ | |||
"$ref": "Global.IncrementDecrement" | |||
} | |||
], | |||
"name": "speed" | |||
} | |||
], | |||
"description": "Set the speed of the current playback", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"previous", | |||
"next", | |||
"off", | |||
"on" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"minimum": 0, | |||
"type": "integer", | |||
"description": "Index of the subtitle to display" | |||
} | |||
], | |||
"name": "subtitle" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether to enable subtitles to be displayed after setting the new subtitle", | |||
"name": "enable" | |||
} | |||
], | |||
"description": "Set the subtitle displayed by the player", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"previous", | |||
"next" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"minimum": 0, | |||
"type": "integer", | |||
"description": "Index of the video stream to play" | |||
} | |||
], | |||
"name": "stream" | |||
} | |||
], | |||
"description": "Set the video stream played by the player", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"description": "Custom view mode", | |||
"$ref": "Player.CustomViewMode" | |||
}, | |||
{ | |||
"$ref": "Player.ViewMode" | |||
} | |||
], | |||
"name": "viewmode" | |||
} | |||
], | |||
"description": "Set view mode of video player", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
} | |||
], | |||
"description": "Stops playback", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playerid", | |||
"$ref": "Player.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"in", | |||
"out" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"minimum": 1, | |||
"type": "integer", | |||
"description": "zoom level", | |||
"maximum": 10 | |||
} | |||
], | |||
"name": "zoom" | |||
} | |||
], | |||
"description": "Zoom current picture", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playlistid", | |||
"$ref": "Playlist.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"$ref": "Playlist.Item" | |||
}, | |||
{ | |||
"items": { | |||
"$ref": "Playlist.Item" | |||
}, | |||
"type": "array" | |||
} | |||
], | |||
"name": "item" | |||
} | |||
], | |||
"description": "Add item(s) to playlist", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playlistid", | |||
"$ref": "Playlist.Id" | |||
} | |||
], | |||
"description": "Clear playlist", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#List.Item.All|List.Item.All]] ]'' items<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"items": { | |||
"items": { | |||
"$ref": "List.Item.All" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playlistid", | |||
"$ref": "Playlist.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "List.Fields.All" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Get all items from playlist", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"uniqueItems": true, | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"playlistid": { | |||
"required": true, | |||
"$ref": "Playlist.Id" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Playlist.Type" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"params": [], | |||
"description": "Returns all existing playlists", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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[ [[#Playlist.Property.Name|Playlist.Property.Name]] ]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "Playlist.Property.Value" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playlistid", | |||
"$ref": "Playlist.Id" | |||
}, | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "Playlist.Property.Name" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves the values of the given properties", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playlistid", | |||
"$ref": "Playlist.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "position", | |||
"$ref": "Playlist.Position" | |||
}, | |||
{ | |||
"required": true, | |||
"type": [ | |||
{ | |||
"$ref": "Playlist.Item" | |||
}, | |||
{ | |||
"items": { | |||
"$ref": "Playlist.Item" | |||
}, | |||
"type": "array" | |||
} | |||
], | |||
"name": "item" | |||
} | |||
], | |||
"description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playlistid", | |||
"$ref": "Playlist.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "position", | |||
"$ref": "Playlist.Position" | |||
} | |||
], | |||
"description": "Remove item from playlist. Does not work for picture playlists (aka slideshows).", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "playlistid", | |||
"$ref": "Playlist.Id" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "position1", | |||
"$ref": "Playlist.Position" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "position2", | |||
"$ref": "Playlist.Position" | |||
} | |||
], | |||
"description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows).", | |||
"permission": "ControlPlayback" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "Profiles.Details.Profile" | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Profiles.Fields.Profile" | |||
} | |||
], | |||
"description": "Retrieve the current profile", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#Profiles.Details.Profile|Profiles.Details.Profile]] ]'' profiles<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"profiles": { | |||
"items": { | |||
"$ref": "Profiles.Details.Profile" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Profiles.Fields.Profile" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all profiles", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = False] (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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"description": "Profile name", | |||
"name": "profile" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Prompt for password", | |||
"name": "prompt" | |||
}, | |||
{ | |||
"name": "password", | |||
"$ref": "Profiles.Password" | |||
} | |||
], | |||
"description": "Load the specified profile", | |||
"permission": "Navigate" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"categories": { | |||
"items": { | |||
"$ref": "Setting.Details.Category" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": "standard", | |||
"name": "level", | |||
"$ref": "Setting.Level" | |||
}, | |||
{ | |||
"default": "", | |||
"type": "string", | |||
"name": "section" | |||
}, | |||
{ | |||
"items": { | |||
"enums": [ | |||
"settings" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves all setting categories", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"sections": { | |||
"items": { | |||
"$ref": "Setting.Details.Section" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": "standard", | |||
"name": "level", | |||
"$ref": "Setting.Level" | |||
}, | |||
{ | |||
"items": { | |||
"enums": [ | |||
"categories" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves all setting sections", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"value": { | |||
"required": true, | |||
"$ref": "Setting.Value.Extended" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"name": "setting" | |||
} | |||
], | |||
"description": "Retrieves the value of a setting", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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]<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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"settings": { | |||
"items": { | |||
"$ref": "Setting.Details.Setting" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": "standard", | |||
"name": "level", | |||
"$ref": "Setting.Level" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"category": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"section": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
], | |||
"name": "filter" | |||
} | |||
], | |||
"description": "Retrieves all settings", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== Settings.ResetSettingValue ==== | |||
Resets 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:''' ''string''<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"name": "setting" | |||
} | |||
], | |||
"description": "Resets the value of a setting", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== Settings.SetSettingValue ==== | |||
Changes 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 /> | |||
# ''[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "boolean" | |||
}, | |||
"params": [ | |||
{ | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"name": "setting" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "value", | |||
"$ref": "Setting.Value.Extended" | |||
} | |||
], | |||
"description": "Changes the value of a setting", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Ejects or closes the optical disc drive (if available)", | |||
"permission": "ControlSystem" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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[ [[#System.Property.Name|System.Property.Name]] ]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"$ref": "System.Property.Value" | |||
}, | |||
"params": [ | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "System.Property.Name" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "properties" | |||
} | |||
], | |||
"description": "Retrieves the values of the given properties", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Puts the system running Kodi into hibernate mode", | |||
"permission": "ControlPower" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Reboots the system running Kodi", | |||
"permission": "ControlPower" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Shuts the system running Kodi down", | |||
"permission": "ControlPower" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [], | |||
"description": "Suspends the system running Kodi", | |||
"permission": "ControlPower" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"textures": { | |||
"items": { | |||
"$ref": "Textures.Details.Texture" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Textures.Fields.Texture" | |||
}, | |||
{ | |||
"name": "filter", | |||
"$ref": "List.Filter.Textures" | |||
} | |||
], | |||
"description": "Retrieve all textures", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"description": "Texture database identifier", | |||
"name": "textureid", | |||
"$ref": "Library.Id" | |||
} | |||
], | |||
"description": "Remove the specified texture", | |||
"permission": "RemoveData" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Whether or not to show the progress bar or any other GUI dialog", | |||
"name": "showdialogs" | |||
}, | |||
{ | |||
"default": "video", | |||
"enums": [ | |||
"video", | |||
"movies", | |||
"tvshows", | |||
"musicvideos" | |||
], | |||
"type": "string", | |||
"description": "Content type to clean for", | |||
"name": "content" | |||
} | |||
], | |||
"description": "Cleans the video library for non-existent items", | |||
"permission": "RemoveData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"path": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Path to the directory to where the data should be exported" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"images": { | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether to export thumbnails and fanart images" | |||
}, | |||
"overwrite": { | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether to overwrite existing exported files" | |||
}, | |||
"actorthumbs": { | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether to export actor thumbnails" | |||
} | |||
} | |||
} | |||
], | |||
"name": "options" | |||
} | |||
], | |||
"description": "Exports all items from the video library", | |||
"permission": "WriteFile" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"episodedetails": { | |||
"$ref": "Video.Details.Episode" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "episodeid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Episode" | |||
} | |||
], | |||
"description": "Retrieve details about a specific tv show episode", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = -1]<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:''' | |||
# [''array[ [[#Video.Details.Episode|Video.Details.Episode]] ]'' episodes]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"episodes": { | |||
"items": { | |||
"$ref": "Video.Details.Episode" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": -1, | |||
"name": "tvshowid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": -1, | |||
"minimum": 0, | |||
"type": "integer", | |||
"name": "season" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Episode" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"description": "Requires tvshowid to be set", | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Requires tvshowid to be set" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"year": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"actor": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string", | |||
"description": "Requires tvshowid to be set" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"director": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Episodes" | |||
} | |||
], | |||
"name": "filter" | |||
} | |||
], | |||
"description": "Retrieve all tv show episodes", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# ''array[ [[#Library.Details.Genre|Library.Details.Genre]] ]'' genres<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"genres": { | |||
"items": { | |||
"$ref": "Library.Details.Genre" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"enums": [ | |||
"movie", | |||
"tvshow", | |||
"musicvideo" | |||
], | |||
"type": "string", | |||
"name": "type", | |||
"required": true | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Library.Fields.Genre" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all genres", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"tvshows": { | |||
"items": { | |||
"$ref": "Video.Details.TVShow" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.TVShow" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all in progress tvshows", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"moviedetails": { | |||
"$ref": "Video.Details.Movie" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "movieid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Movie" | |||
} | |||
], | |||
"description": "Retrieve details about a specific movie", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"setdetails": { | |||
"$ref": "Video.Details.MovieSet.Extended" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "setid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.MovieSet" | |||
}, | |||
{ | |||
"type": "object", | |||
"name": "movies", | |||
"properties": { | |||
"sort": { | |||
"$ref": "List.Sort" | |||
}, | |||
"properties": { | |||
"$ref": "Video.Fields.Movie" | |||
}, | |||
"limits": { | |||
"$ref": "List.Limits" | |||
} | |||
} | |||
} | |||
], | |||
"description": "Retrieve details about a specific movie set", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"sets": { | |||
"items": { | |||
"$ref": "Video.Details.MovieSet" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.MovieSet" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all movie sets", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Video.Details.Movie|Video.Details.Movie]] ]'' movies]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"movies": { | |||
"items": { | |||
"$ref": "Video.Details.Movie" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Movie" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"year": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"actor": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"director": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"studio": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"country": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"setid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"set": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"tag": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Movies" | |||
} | |||
], | |||
"name": "filter" | |||
} | |||
], | |||
"description": "Retrieve all movies", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"musicvideodetails": { | |||
"$ref": "Video.Details.MusicVideo" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "musicvideoid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.MusicVideo" | |||
} | |||
], | |||
"description": "Retrieve details about a specific music video", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Video.Details.MusicVideo|Video.Details.MusicVideo]] ]'' musicvideos]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"musicvideos": { | |||
"items": { | |||
"$ref": "Video.Details.MusicVideo" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.MusicVideo" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artist": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"year": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"director": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"studio": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"tag": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.MusicVideos" | |||
} | |||
], | |||
"name": "filter" | |||
} | |||
], | |||
"description": "Retrieve all music videos", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Video.Details.Episode|Video.Details.Episode]] ]'' episodes]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"episodes": { | |||
"items": { | |||
"$ref": "Video.Details.Episode" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Episode" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all recently added tv episodes", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Video.Details.Movie|Video.Details.Movie]] ]'' movies]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"movies": { | |||
"items": { | |||
"$ref": "Video.Details.Movie" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Movie" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all recently added movies", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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:''' | |||
# [''array[ [[#Video.Details.MusicVideo|Video.Details.MusicVideo]] ]'' musicvideos]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"musicvideos": { | |||
"items": { | |||
"$ref": "Video.Details.MusicVideo" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.MusicVideo" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all recently added music videos", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"seasondetails": { | |||
"$ref": "Video.Details.Season" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "seasonid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Season" | |||
} | |||
], | |||
"description": "Retrieve details about a specific tv show season", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = -1]<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:''' | |||
# [''array[ [[#Video.Details.Season|Video.Details.Season]] ]'' seasons]<br /> | |||
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br /> | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"seasons": { | |||
"items": { | |||
"$ref": "Video.Details.Season" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"default": -1, | |||
"name": "tvshowid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.Season" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all tv seasons", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"tvshowdetails": { | |||
"$ref": "Video.Details.TVShow" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "tvshowid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.TVShow" | |||
} | |||
], | |||
"description": "Retrieve details about a specific tv show", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"tvshows": { | |||
"items": { | |||
"$ref": "Video.Details.TVShow" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"name": "properties", | |||
"$ref": "Video.Fields.TVShow" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
}, | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genre": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"year": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"actor": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"studio": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"tag": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.TVShows" | |||
} | |||
], | |||
"name": "filter" | |||
} | |||
], | |||
"description": "Retrieve all tv shows", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "object", | |||
"properties": { | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
}, | |||
"tags": { | |||
"items": { | |||
"$ref": "Library.Details.Tag" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
"params": [ | |||
{ | |||
"enums": [ | |||
"movie", | |||
"tvshow", | |||
"musicvideo" | |||
], | |||
"type": "string", | |||
"name": "type", | |||
"required": true | |||
}, | |||
{ | |||
"name": "properties", | |||
"$ref": "Library.Fields.Tag" | |||
}, | |||
{ | |||
"name": "limits", | |||
"$ref": "List.Limits" | |||
}, | |||
{ | |||
"name": "sort", | |||
"$ref": "List.Sort" | |||
} | |||
], | |||
"description": "Retrieve all tags", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "episodeid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether or not to ignore a local NFO if present.", | |||
"name": "ignorenfo" | |||
}, | |||
{ | |||
"default": "", | |||
"type": "string", | |||
"description": "Title to use for searching (instead of determining it from the item's filename/path).", | |||
"name": "title" | |||
} | |||
], | |||
"description": "Refresh the given episode in the library", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "movieid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether or not to ignore a local NFO if present.", | |||
"name": "ignorenfo" | |||
}, | |||
{ | |||
"default": "", | |||
"type": "string", | |||
"description": "Title to use for searching (instead of determining it from the item's filename/path).", | |||
"name": "title" | |||
} | |||
], | |||
"description": "Refresh the given movie in the library", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "musicvideoid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether or not to ignore a local NFO if present.", | |||
"name": "ignorenfo" | |||
}, | |||
{ | |||
"default": "", | |||
"type": "string", | |||
"description": "Title to use for searching (instead of determining it from the item's filename/path).", | |||
"name": "title" | |||
} | |||
], | |||
"description": "Refresh the given music video in the library", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "tvshowid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether or not to ignore a local NFO if present.", | |||
"name": "ignorenfo" | |||
}, | |||
{ | |||
"default": false, | |||
"type": "boolean", | |||
"description": "Whether or not to refresh all episodes belonging to the TV show.", | |||
"name": "refreshepisodes" | |||
}, | |||
{ | |||
"default": "", | |||
"type": "string", | |||
"description": "Title to use for searching (instead of determining it from the item's filename/path).", | |||
"name": "title" | |||
} | |||
], | |||
"description": "Refresh the given tv show in the library", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "episodeid", | |||
"$ref": "Library.Id" | |||
} | |||
], | |||
"description": "Removes the given episode from the library", | |||
"permission": "RemoveData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "movieid", | |||
"$ref": "Library.Id" | |||
} | |||
], | |||
"description": "Removes the given movie from the library", | |||
"permission": "RemoveData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "musicvideoid", | |||
"$ref": "Library.Id" | |||
} | |||
], | |||
"description": "Removes the given music video from the library", | |||
"permission": "RemoveData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "tvshowid", | |||
"$ref": "Library.Id" | |||
} | |||
], | |||
"description": "Removes the given tv show from the library", | |||
"permission": "RemoveData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"default": "", | |||
"type": "string", | |||
"name": "directory" | |||
}, | |||
{ | |||
"default": true, | |||
"type": "boolean", | |||
"description": "Whether or not to show the progress bar or any other GUI dialog", | |||
"name": "showdialogs" | |||
} | |||
], | |||
"description": "Scans the video sources for new library items", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' director = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' plot = None]<br /> | |||
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' votes = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' writer = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' firstaired = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' productioncode = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' season = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' episode = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' originaltitle = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br /> | |||
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br /> | |||
# [''mixed: null|[[#Video.Resume|Video.Resume]]'' resume = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br /> | |||
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br /> | |||
# [''mixed: null|[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "episodeid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "playcount", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "Runtime in seconds", | |||
"name": "runtime", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "director" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "plot", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "rating", | |||
"$ref": "Optional.Number" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "votes", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "lastplayed", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "writer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "firstaired", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "productioncode", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "season", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "episode", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "originaltitle", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "thumbnail", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "fanart", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Video.Resume" | |||
} | |||
], | |||
"name": "resume" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "userrating", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"name": "ratings", | |||
"$ref": "Video.Ratings.Set" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "dateadded", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.UniqueID.Set" | |||
} | |||
], | |||
"name": "uniqueid" | |||
} | |||
], | |||
"description": "Update the given episode with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' director = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' studio = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' year = None] (linked with premiered. Overridden by premiered parameter)<br /> | |||
# [''[[#Optional.String|Optional.String]]'' plot = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br /> | |||
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' mpaa = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' imdbnumber = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' votes = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' originaltitle = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' trailer = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' tagline = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' plotoutline = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' writer = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' country = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' top250 = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' sorttitle = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' set = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' showlink = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' tag = None]<br /> | |||
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br /> | |||
# [''mixed: null|[[#Video.Resume|Video.Resume]]'' resume = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br /> | |||
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' premiered = None] (linked with year. Overrides year)<br /> | |||
# [''mixed: null|[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "movieid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "playcount", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "Runtime in seconds", | |||
"name": "runtime", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "director" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "studio" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "linked with premiered. Overridden by premiered parameter", | |||
"name": "year", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "plot", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "genre" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "rating", | |||
"$ref": "Optional.Number" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "mpaa", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "imdbnumber", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "votes", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "lastplayed", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "originaltitle", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "trailer", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "tagline", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "plotoutline", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "writer" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "country" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "top250", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "sorttitle", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "set", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "showlink" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "thumbnail", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "fanart", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "tag" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Video.Resume" | |||
} | |||
], | |||
"name": "resume" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "userrating", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"name": "ratings", | |||
"$ref": "Video.Ratings.Set" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "dateadded", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "linked with year. Overrides year", | |||
"name": "premiered", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.UniqueID.Set" | |||
} | |||
], | |||
"name": "uniqueid" | |||
} | |||
], | |||
"description": "Update the given movie with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' plot = 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "setid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "plot", | |||
"$ref": "Optional.String" | |||
} | |||
], | |||
"description": "Update the given movie set with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' director = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' studio = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' year = None] (linked with premiered. Overridden by premiered parameter)<br /> | |||
# [''[[#Optional.String|Optional.String]]'' plot = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' album = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' artist = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' track = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' tag = None]<br /> | |||
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br /> | |||
# [''mixed: null|[[#Video.Resume|Video.Resume]]'' resume = None]<br /> | |||
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' premiered = None] (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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "musicvideoid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "playcount", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "Runtime in seconds", | |||
"name": "runtime", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "director" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "studio" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "linked with premiered. Overridden by premiered parameter", | |||
"name": "year", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "plot", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "album", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "artist" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "genre" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "track", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "lastplayed", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "thumbnail", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "fanart", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "tag" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Video.Resume" | |||
} | |||
], | |||
"name": "resume" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "rating", | |||
"$ref": "Optional.Number" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "userrating", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "dateadded", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "linked with year. Overrides year", | |||
"name": "premiered", | |||
"$ref": "Optional.String" | |||
} | |||
], | |||
"description": "Update the given music video with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' title = 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "seasonid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "userrating", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
} | |||
], | |||
"description": "Update the given season with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' studio = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' plot = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br /> | |||
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' mpaa = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' imdbnumber = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' premiered = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' votes = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' originaltitle = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' sorttitle = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' episodeguide = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br /> | |||
# [''mixed: null|[[#Array.String|Array.String]]'' tag = None]<br /> | |||
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br /> | |||
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br /> | |||
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br /> | |||
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br /> | |||
# [''[[#Optional.String|Optional.String]]'' status = None]<br /> | |||
# [''mixed: null|[[#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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"type": "string" | |||
}, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"name": "tvshowid", | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "title", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "playcount", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "studio" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "plot", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "genre" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "rating", | |||
"$ref": "Optional.Number" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "mpaa", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "imdbnumber", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "premiered", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "votes", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "lastplayed", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "originaltitle", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "sorttitle", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "episodeguide", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "thumbnail", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "fanart", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Array.String" | |||
} | |||
], | |||
"name": "tag" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.Artwork.Set" | |||
} | |||
], | |||
"name": "art" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "userrating", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"name": "ratings", | |||
"$ref": "Video.Ratings.Set" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "dateadded", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"description": "Runtime in seconds", | |||
"name": "runtime", | |||
"$ref": "Optional.Integer" | |||
}, | |||
{ | |||
"default": null, | |||
"name": "status", | |||
"$ref": "Optional.String" | |||
}, | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Media.UniqueID.Set" | |||
} | |||
], | |||
"name": "uniqueid" | |||
} | |||
], | |||
"description": "Update the given tvshow with the given details", | |||
"permission": "UpdateData" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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[string]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"additionalProperties": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"type": "object", | |||
"description": "Object containing key-value pairs of the retrieved info booleans" | |||
}, | |||
"params": [ | |||
{ | |||
"minItems": 1, | |||
"items": { | |||
"type": "string" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "booleans" | |||
} | |||
], | |||
"description": "Retrieve info booleans about Kodi and the system", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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[string]'' 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "method", | |||
"returns": { | |||
"additionalProperties": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"type": "object", | |||
"description": "Object containing key-value pairs of the retrieved info labels" | |||
}, | |||
"params": [ | |||
{ | |||
"description": "See http://kodi.wiki/view/InfoLabels for a list of possible info labels", | |||
"minItems": 1, | |||
"items": { | |||
"type": "string" | |||
}, | |||
"required": true, | |||
"type": "array", | |||
"name": "labels" | |||
} | |||
], | |||
"description": "Retrieve info labels about Kodi and the system", | |||
"permission": "ReadData" | |||
} | |||
</syntaxhighlight>}} | |||
== Global Types == | |||
=== Addon === | |||
==== Addon.Content ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "unknown", | |||
"enums": [ | |||
"unknown", | |||
"video", | |||
"audio", | |||
"image", | |||
"executable" | |||
], | |||
"type": "string", | |||
"id": "Addon.Content" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''integer'' rating] | |||
* [''string'' description] | |||
* [''string'' name] | |||
* [''string'' author] | |||
* [''string'' fanart] | |||
* [''array'' extrainfo] | |||
* [''boolean'' enabled] | |||
* [''boolean'' installed] | |||
* [''mixed: boolean|string'' broken] | |||
* [''array'' dependencies] | |||
* [''string'' version] | |||
* ''string'' addonid | |||
* [''string'' path] | |||
* [''string'' summary] | |||
* ''[[#Addon.Types|Addon.Types]]'' type | |||
* [''string'' thumbnail] | |||
* [''string'' disclaimer] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "Addon.Details", | |||
"properties": { | |||
"rating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"description": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"name": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"author": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"fanart": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"extrainfo": { | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"value": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"key": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"enabled": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"installed": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"broken": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "boolean" | |||
}, | |||
{ | |||
"type": "string" | |||
} | |||
] | |||
}, | |||
"dependencies": { | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"version": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"optional": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"addonid": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"version": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"addonid": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"path": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"summary": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Addon.Types" | |||
}, | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"disclaimer": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Addon.Fields ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"name", | |||
"version", | |||
"summary", | |||
"description", | |||
"path", | |||
"author", | |||
"thumbnail", | |||
"disclaimer", | |||
"fanart", | |||
"dependencies", | |||
"broken", | |||
"extrainfo", | |||
"rating", | |||
"enabled", | |||
"installed" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Addon.Fields" | |||
} | |||
</syntaxhighlight>}} | |||
==== Addon.Types ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "unknown", | |||
"enums": [ | |||
"unknown", | |||
"xbmc.player.musicviz", | |||
"xbmc.gui.skin", | |||
"xbmc.pvrclient", | |||
"kodi.inputstream", | |||
"kodi.gameclient", | |||
"kodi.peripheral", | |||
"xbmc.python.script", | |||
"xbmc.python.weather", | |||
"xbmc.subtitle.module", | |||
"xbmc.python.lyrics", | |||
"xbmc.metadata.scraper.albums", | |||
"xbmc.metadata.scraper.artists", | |||
"xbmc.metadata.scraper.movies", | |||
"xbmc.metadata.scraper.musicvideos", | |||
"xbmc.metadata.scraper.tvshows", | |||
"xbmc.ui.screensaver", | |||
"xbmc.python.pluginsource", | |||
"xbmc.addon.repository", | |||
"xbmc.webinterface", | |||
"xbmc.service", | |||
"kodi.audioencoder", | |||
"kodi.context.item", | |||
"kodi.audiodecoder", | |||
"kodi.resource.images", | |||
"kodi.resource.language", | |||
"kodi.resource.uisounds", | |||
"kodi.resource.games", | |||
"kodi.resource.font", | |||
"kodi.vfs", | |||
"kodi.imagedecoder", | |||
"xbmc.metadata.scraper.library", | |||
"xbmc.python.library", | |||
"xbmc.python.module", | |||
"kodi.game.controller", | |||
"", | |||
"xbmc.addon.video", | |||
"xbmc.addon.audio", | |||
"xbmc.addon.image", | |||
"xbmc.addon.executable", | |||
"kodi.addon.game" | |||
], | |||
"type": "string", | |||
"id": "Addon.Types" | |||
} | |||
</syntaxhighlight>}} | |||
=== Application === | |||
==== Application.Property.Name ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "volume", | |||
"enums": [ | |||
"volume", | |||
"muted", | |||
"name", | |||
"version", | |||
"sorttokens", | |||
"language" | |||
], | |||
"type": "string", | |||
"id": "Application.Property.Name" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''[[#Array.String|Array.String]]'' sorttokens] | |||
* [''string'' name] | |||
* [''string'' language] | |||
* [''boolean'' muted] | |||
* [''integer'' volume] | |||
* [''object'' version] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Application.Property.Value", | |||
"properties": { | |||
"sorttokens": { | |||
"description": "Articles ignored during sorting when ignorearticle is enabled.", | |||
"$ref": "Array.String" | |||
}, | |||
"name": { | |||
"default": "", | |||
"minLength": 1, | |||
"type": "string" | |||
}, | |||
"language": { | |||
"default": "", | |||
"minLength": 1, | |||
"type": "string", | |||
"description": "Current language code and region e.g. en_GB" | |||
}, | |||
"muted": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"volume": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 100 | |||
}, | |||
"version": { | |||
"type": "object", | |||
"properties": { | |||
"major": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
}, | |||
"tag": { | |||
"enums": [ | |||
"prealpha", | |||
"alpha", | |||
"beta", | |||
"releasecandidate", | |||
"stable" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"tagversion": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"minor": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
}, | |||
"revision": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "string" | |||
}, | |||
{ | |||
"type": "integer" | |||
} | |||
] | |||
} | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
=== Array === | |||
==== Array.Integer ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"type": "integer" | |||
}, | |||
"type": "array", | |||
"id": "Array.Integer" | |||
} | |||
</syntaxhighlight>}} | |||
==== Array.String ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"minLength": 1, | |||
"type": "string" | |||
}, | |||
"type": "array", | |||
"id": "Array.String" | |||
} | |||
</syntaxhighlight>}} | |||
=== Audio === | |||
==== Audio.Album.ReleaseType ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "album", | |||
"enums": [ | |||
"album", | |||
"single" | |||
], | |||
"type": "string", | |||
"id": "Audio.Album.ReleaseType" | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Artist.Roles ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"additionalProperties": false, | |||
"type": "object", | |||
"description": "The various roles contributed by an artist to one or more songs", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"role": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array", | |||
"id": "Audio.Artist.Roles" | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Contributors ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"additionalProperties": false, | |||
"type": "object", | |||
"description": "The artist and the role they contribute to a song", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"role": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"name": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array", | |||
"id": "Audio.Contributors" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' musicbrainzreleasegroupid] | |||
* [''[[#Array.String|Array.String]]'' style] | |||
* [''[[#Array.String|Array.String]]'' mood] | |||
* [''string'' albumlabel] | |||
* [''[[#Array.Integer|Array.Integer]]'' sourceid] | |||
* [''boolean'' compilation] | |||
* [''string'' lastplayed] | |||
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype = album] | |||
* [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres] | |||
* ''[[#Library.Id|Library.Id]]'' albumid | |||
* [''[[#Array.String|Array.String]]'' theme] | |||
* [''integer'' playcount] | |||
* [''string'' type] | |||
* [''string'' musicbrainzalbumid] | |||
* [''string'' description] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Audio.Details.Media", | |||
"id": "Audio.Details.Album", | |||
"properties": { | |||
"musicbrainzreleasegroupid": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"style": { | |||
"$ref": "Array.String" | |||
}, | |||
"mood": { | |||
"$ref": "Array.String" | |||
}, | |||
"albumlabel": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"sourceid": { | |||
"$ref": "Array.Integer" | |||
}, | |||
"compilation": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"lastplayed": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"releasetype": { | |||
"default": "album", | |||
"$ref": "Audio.Album.ReleaseType" | |||
}, | |||
"songgenres": { | |||
"$ref": "Audio.Details.Genres" | |||
}, | |||
"albumid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"theme": { | |||
"$ref": "Array.String" | |||
}, | |||
"playcount": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"type": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"musicbrainzalbumid": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"description": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''[[#Array.Integer|Array.Integer]]'' sourceid] | |||
* [''[[#Array.String|Array.String]]'' mood] | |||
* [''string'' description] | |||
* [''[[#Array.String|Array.String]]'' musicbrainzartistid] | |||
* ''string'' artist | |||
* [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres] | |||
* [''string'' gender] | |||
* [''string'' disambiguation] | |||
* [''string'' formed] | |||
* [''boolean'' isalbumartist] | |||
* [''string'' disbanded] | |||
* [''string'' born] | |||
* ''[[#Library.Id|Library.Id]]'' artistid | |||
* [''[[#Array.String|Array.String]]'' style] | |||
* [''[[#Array.String|Array.String]]'' instrument] | |||
* [''string'' sortname] | |||
* [''[[#Array.String|Array.String]]'' yearsactive] | |||
* [''[[#Audio.Artist.Roles|Audio.Artist.Roles]]'' roles] | |||
* [''string'' type] | |||
* [''string'' died] | |||
* [''boolean'' compilationartist] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Audio.Details.Base", | |||
"id": "Audio.Details.Artist", | |||
"properties": { | |||
"sourceid": { | |||
"$ref": "Array.Integer" | |||
}, | |||
"mood": { | |||
"$ref": "Array.String" | |||
}, | |||
"description": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"musicbrainzartistid": { | |||
"$ref": "Array.String" | |||
}, | |||
"artist": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"songgenres": { | |||
"$ref": "Audio.Details.Genres" | |||
}, | |||
"gender": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"disambiguation": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"formed": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"isalbumartist": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"disbanded": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"born": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"style": { | |||
"$ref": "Array.String" | |||
}, | |||
"instrument": { | |||
"$ref": "Array.String" | |||
}, | |||
"sortname": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"yearsactive": { | |||
"$ref": "Array.String" | |||
}, | |||
"roles": { | |||
"$ref": "Audio.Artist.Roles" | |||
}, | |||
"type": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"died": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"compilationartist": { | |||
"default": false, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Media.Details.Base", | |||
"id": "Audio.Details.Base", | |||
"properties": { | |||
"genre": { | |||
"$ref": "Array.String" | |||
}, | |||
"dateadded": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"art": { | |||
"$ref": "Media.Artwork" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Details.Genres ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array", | |||
"id": "Audio.Details.Genres" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''number'' rating] | |||
* [''integer'' votes] | |||
* [''[[#Array.String|Array.String]]'' artist] | |||
* [''string'' title] | |||
* [''[[#Array.String|Array.String]]'' musicbrainzalbumartistid] | |||
* [''[[#Array.Integer|Array.Integer]]'' artistid] | |||
* [''integer'' userrating] | |||
* [''string'' displayartist] | |||
* [''integer'' year] | |||
* [''string'' sortartist] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Audio.Details.Base", | |||
"id": "Audio.Details.Media", | |||
"properties": { | |||
"rating": { | |||
"default": 0.0, | |||
"type": "number" | |||
}, | |||
"votes": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"artist": { | |||
"$ref": "Array.String" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"musicbrainzalbumartistid": { | |||
"$ref": "Array.String" | |||
}, | |||
"artistid": { | |||
"$ref": "Array.Integer" | |||
}, | |||
"userrating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"displayartist": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"year": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"sortartist": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "Audio.Details.Role", | |||
"properties": { | |||
"roleid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' comment] | |||
* [''[[#Audio.Contributors|Audio.Contributors]]'' contributors] | |||
* [''string'' displayorchestra] | |||
* [''[[#Array.String|Array.String]]'' albumartist] | |||
* [''string'' file] | |||
* [''integer'' duration] | |||
* [''string'' album] | |||
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype = album] | |||
* [''string'' lyrics] | |||
* [''[[#Library.Id|Library.Id]]'' albumid = -1] | |||
* [''integer'' disc] | |||
* ''[[#Library.Id|Library.Id]]'' songid | |||
* [''string'' displayconductor] | |||
* [''[[#Array.Integer|Array.Integer]]'' sourceid] | |||
* [''[[#Array.Integer|Array.Integer]]'' albumartistid] | |||
* [''string'' musicbrainztrackid] | |||
* [''integer'' track] | |||
* [''[[#Array.Integer|Array.Integer]]'' genreid] | |||
* [''string'' mood] | |||
* [''string'' displaylyricist] | |||
* [''[[#Array.String|Array.String]]'' musicbrainzartistid] | |||
* [''string'' lastplayed] | |||
* [''string'' displaycomposer] | |||
* [''integer'' playcount] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Audio.Details.Media", | |||
"id": "Audio.Details.Song", | |||
"properties": { | |||
"comment": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"contributors": { | |||
"$ref": "Audio.Contributors" | |||
}, | |||
"displayorchestra": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"albumartist": { | |||
"$ref": "Array.String" | |||
}, | |||
"file": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"duration": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"album": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"albumreleasetype": { | |||
"default": "album", | |||
"$ref": "Audio.Album.ReleaseType" | |||
}, | |||
"lyrics": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"albumid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"disc": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"songid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"displayconductor": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"sourceid": { | |||
"$ref": "Array.Integer" | |||
}, | |||
"albumartistid": { | |||
"$ref": "Array.Integer" | |||
}, | |||
"musicbrainztrackid": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"track": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"genreid": { | |||
"$ref": "Array.Integer" | |||
}, | |||
"mood": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"displaylyricist": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"musicbrainzartistid": { | |||
"$ref": "Array.String" | |||
}, | |||
"lastplayed": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"displaycomposer": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"playcount": { | |||
"default": 0, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Fields.Album ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string", | |||
"description": "Requesting the songgenres, artistid and/or sourceid fields will result in increased response times" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Audio.Fields.Album" | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Fields.Artist ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"instrument", | |||
"style", | |||
"mood", | |||
"born", | |||
"formed", | |||
"description", | |||
"genre", | |||
"died", | |||
"disbanded", | |||
"yearsactive", | |||
"musicbrainzartistid", | |||
"fanart", | |||
"thumbnail", | |||
"compilationartist", | |||
"dateadded", | |||
"roles", | |||
"songgenres", | |||
"isalbumartist", | |||
"sortname", | |||
"type", | |||
"gender", | |||
"disambiguation", | |||
"art", | |||
"sourceid" | |||
], | |||
"type": "string", | |||
"description": "Requesting the (song)genreid/genre, roleid/role or sourceid fields will result in increased response times" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Audio.Fields.Artist" | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Fields.Role ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"title" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Audio.Fields.Role" | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Fields.Song ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string", | |||
"description": "Requesting the genreid, artistid, albumartistid and/or sourceid fields will result in increased response times" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Audio.Fields.Song" | |||
} | |||
</syntaxhighlight>}} | |||
==== Audio.Property.Name ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "missingartistid", | |||
"enums": [ | |||
"missingartistid", | |||
"librarylastupdated" | |||
], | |||
"type": "string", | |||
"id": "Audio.Property.Name" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' librarylastupdated] | |||
* [''[[#Library.Id|Library.Id]]'' missingartistid = -1] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Audio.Property.Value", | |||
"properties": { | |||
"librarylastupdated": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"missingartistid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"id": "Configuration", | |||
"properties": { | |||
"notifications": { | |||
"required": true, | |||
"$ref": "Configuration.Notifications" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' playlist | |||
* ''boolean'' pvr | |||
* ''boolean'' application | |||
* ''boolean'' gui | |||
* ''boolean'' system | |||
* ''boolean'' player | |||
* ''boolean'' audiolibrary | |||
* ''boolean'' input | |||
* ''boolean'' other | |||
* ''boolean'' videolibrary | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "Configuration.Notifications", | |||
"properties": { | |||
"playlist": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"pvr": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"application": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"gui": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"system": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"player": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"audiolibrary": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"input": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"other": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"videolibrary": { | |||
"required": true, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
=== 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 | |||
* [''string'' window] | |||
* [''string'' path] | |||
* ''[[#Favourite.Type|Favourite.Type]]'' type | |||
* [''string'' thumbnail] | |||
* [''string'' windowparameter] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "Favourite.Details.Favourite", | |||
"properties": { | |||
"title": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"window": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"path": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Favourite.Type" | |||
}, | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"windowparameter": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Favourite.Fields.Favourite ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"window", | |||
"windowparameter", | |||
"thumbnail", | |||
"path" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Favourite.Fields.Favourite" | |||
} | |||
</syntaxhighlight>}} | |||
==== Favourite.Type ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "media", | |||
"enums": [ | |||
"media", | |||
"window", | |||
"script", | |||
"unknown" | |||
], | |||
"type": "string", | |||
"id": "Favourite.Type" | |||
} | |||
</syntaxhighlight>}} | |||
=== Files === | |||
==== Files.Media ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "video", | |||
"enums": [ | |||
"video", | |||
"music", | |||
"pictures", | |||
"files", | |||
"programs" | |||
], | |||
"type": "string", | |||
"id": "Files.Media" | |||
} | |||
</syntaxhighlight>}} | |||
=== GUI === | |||
==== GUI.Property.Name ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "currentwindow", | |||
"enums": [ | |||
"currentwindow", | |||
"currentcontrol", | |||
"skin", | |||
"fullscreen", | |||
"stereoscopicmode" | |||
], | |||
"type": "string", | |||
"id": "GUI.Property.Name" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''boolean'' fullscreen] | |||
* [''object'' currentwindow] | |||
* [''object'' currentcontrol] | |||
* [''[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]'' stereoscopicmode] | |||
* [''object'' skin] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "GUI.Property.Value", | |||
"properties": { | |||
"fullscreen": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"currentwindow": { | |||
"type": "object", | |||
"properties": { | |||
"id": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"label": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"currentcontrol": { | |||
"type": "object", | |||
"properties": { | |||
"label": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"stereoscopicmode": { | |||
"$ref": "GUI.Stereoscopy.Mode" | |||
}, | |||
"skin": { | |||
"type": "object", | |||
"properties": { | |||
"id": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"name": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "GUI.Stereoscopy.Mode", | |||
"properties": { | |||
"mode": { | |||
"enums": [ | |||
"off", | |||
"split_vertical", | |||
"split_horizontal", | |||
"row_interleaved", | |||
"hardware_based", | |||
"anaglyph_cyan_red", | |||
"anaglyph_green_magenta", | |||
"anaglyph_yellow_blue", | |||
"monoscopic" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"label": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== GUI.Window ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "accesspoints", | |||
"enums": [ | |||
"accesspoints", | |||
"addon", | |||
"addonbrowser", | |||
"addoninformation", | |||
"addonsettings", | |||
"appearancesettings", | |||
"busydialog", | |||
"busydialognocancel", | |||
"contentsettings", | |||
"contextmenu", | |||
"eventlog", | |||
"extendedprogressdialog", | |||
"favourites", | |||
"filebrowser", | |||
"filemanager", | |||
"fullscreengame", | |||
"fullscreeninfo", | |||
"fullscreenlivetv", | |||
"fullscreenlivetvinput", | |||
"fullscreenlivetvpreview", | |||
"fullscreenradio", | |||
"fullscreenradioinput", | |||
"fullscreenradiopreview", | |||
"fullscreenvideo", | |||
"gameadvancedsettings", | |||
"gamecontrollers", | |||
"gameosd", | |||
"gamepadinput", | |||
"games", | |||
"gamesettings", | |||
"gamestretchmode", | |||
"gamevideofilter", | |||
"gamevideorotation", | |||
"gamevolume", | |||
"home", | |||
"infoprovidersettings", | |||
"interfacesettings", | |||
"libexportsettings", | |||
"locksettings", | |||
"loginscreen", | |||
"mediafilter", | |||
"mediasettings", | |||
"mediasource", | |||
"movieinformation", | |||
"music", | |||
"musicinformation", | |||
"musicosd", | |||
"musicplaylist", | |||
"musicplaylisteditor", | |||
"networksetup", | |||
"notification", | |||
"numericinput", | |||
"okdialog", | |||
"osdaudiosettings", | |||
"osdcmssettings", | |||
"osdsubtitlesettings", | |||
"osdvideosettings", | |||
"peripheralsettings", | |||
"pictureinfo", | |||
"pictures", | |||
"playercontrols", | |||
"playerprocessinfo", | |||
"playersettings", | |||
"profiles", | |||
"profilesettings", | |||
"programs", | |||
"progressdialog", | |||
"pvrchannelguide", | |||
"pvrchannelmanager", | |||
"pvrchannelscan", | |||
"pvrgroupmanager", | |||
"pvrguideinfo", | |||
"pvrguidesearch", | |||
"pvrosdchannels", | |||
"pvrosdguide", | |||
"pvrosdteletext", | |||
"pvrradiordsinfo", | |||
"pvrrecordinginfo", | |||
"pvrsettings", | |||
"pvrtimersetting", | |||
"pvrupdateprogress", | |||
"radiochannels", | |||
"radioguide", | |||
"radiorecordings", | |||
"radiosearch", | |||
"radiotimerrules", | |||
"radiotimers", | |||
"screencalibration", | |||
"screensaver", | |||
"seekbar", | |||
"selectdialog", | |||
"servicesettings", | |||
"settings", | |||
"shutdownmenu", | |||
"skinsettings", | |||
"sliderdialog", | |||
"slideshow", | |||
"smartplaylisteditor", | |||
"smartplaylistrule", | |||
"songinformation", | |||
"splash", | |||
"startup", | |||
"startwindow", | |||
"submenu", | |||
"subtitlesearch", | |||
"systeminfo", | |||
"systemsettings", | |||
"teletext", | |||
"textviewer", | |||
"tvchannels", | |||
"tvguide", | |||
"tvrecordings", | |||
"tvsearch", | |||
"tvtimerrules", | |||
"tvtimers", | |||
"videobookmarks", | |||
"videomenu", | |||
"videoosd", | |||
"videoplaylist", | |||
"videos", | |||
"videotimeseek", | |||
"virtualkeyboard", | |||
"visualisation", | |||
"visualisationpresetlist", | |||
"volumebar", | |||
"weather", | |||
"yesnodialog" | |||
], | |||
"type": "string", | |||
"id": "GUI.Window" | |||
} | |||
</syntaxhighlight>}} | |||
=== Global === | |||
==== Global.IncrementDecrement ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "increment", | |||
"enums": [ | |||
"increment", | |||
"decrement" | |||
], | |||
"type": "string", | |||
"id": "Global.IncrementDecrement" | |||
} | |||
</syntaxhighlight>}} | |||
==== Global.String.NotEmpty ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "", | |||
"minLength": 1, | |||
"type": "string", | |||
"id": "Global.String.NotEmpty" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' seconds | |||
* ''integer'' minutes | |||
* ''integer'' milliseconds | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "Global.Time", | |||
"properties": { | |||
"hours": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 23, | |||
"required": true | |||
}, | |||
"seconds": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 59, | |||
"required": true | |||
}, | |||
"minutes": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 59, | |||
"required": true | |||
}, | |||
"milliseconds": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 999, | |||
"required": true | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Global.Toggle ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "boolean" | |||
}, | |||
{ | |||
"enums": [ | |||
"toggle" | |||
], | |||
"type": "string" | |||
} | |||
], | |||
"id": "Global.Toggle" | |||
} | |||
</syntaxhighlight>}} | |||
==== Global.Weekday ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "monday", | |||
"enums": [ | |||
"monday", | |||
"tuesday", | |||
"wednesday", | |||
"thursday", | |||
"friday", | |||
"saturday", | |||
"sunday" | |||
], | |||
"type": "string", | |||
"id": "Global.Weekday" | |||
} | |||
</syntaxhighlight>}} | |||
=== Input === | |||
==== Input.Action ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "analogfastforward", | |||
"enums": [ | |||
"analogfastforward", | |||
"analogmove", | |||
"analogmovexleft", | |||
"analogmovexright", | |||
"analogmoveydown", | |||
"analogmoveyup", | |||
"analogrewind", | |||
"analogseekback", | |||
"analogseekforward", | |||
"aspectratio", | |||
"audiodelay", | |||
"audiodelayminus", | |||
"audiodelayplus", | |||
"audionextlanguage", | |||
"audiotoggledigital", | |||
"back", | |||
"backspace", | |||
"bigstepback", | |||
"bigstepforward", | |||
"blue", | |||
"browsesubtitle", | |||
"channeldown", | |||
"channelnumberseparator", | |||
"channelup", | |||
"chapterorbigstepback", | |||
"chapterorbigstepforward", | |||
"close", | |||
"codecinfo", | |||
"contextmenu", | |||
"copy", | |||
"createbookmark", | |||
"createepisodebookmark", | |||
"cursorleft", | |||
"cursorright", | |||
"cyclesubtitle", | |||
"decreasepar", | |||
"decreaserating", | |||
"decreasevisrating", | |||
"delete", | |||
"doubleclick", | |||
"down", | |||
"enter", | |||
"error", | |||
"fastforward", | |||
"filter", | |||
"filterclear", | |||
"filtersms2", | |||
"filtersms3", | |||
"filtersms4", | |||
"filtersms5", | |||
"filtersms6", | |||
"filtersms7", | |||
"filtersms8", | |||
"filtersms9", | |||
"firstpage", | |||
"fullscreen", | |||
"green", | |||
"guiprofile", | |||
"highlight", | |||
"increasepar", | |||
"increaserating", | |||
"increasevisrating", | |||
"info", | |||
"jumpsms2", | |||
"jumpsms3", | |||
"jumpsms4", | |||
"jumpsms5", | |||
"jumpsms6", | |||
"jumpsms7", | |||
"jumpsms8", | |||
"jumpsms9", | |||
"lastpage", | |||
"left", | |||
"leftclick", | |||
"lockpreset", | |||
"longclick", | |||
"longpress", | |||
"menu", | |||
"middleclick", | |||
"mousedrag", | |||
"mousemove", | |||
"move", | |||
"moveitemdown", | |||
"moveitemup", | |||
"mute", | |||
"nextcalibration", | |||
"nextchannelgroup", | |||
"nextletter", | |||
"nextpicture", | |||
"nextpreset", | |||
"nextresolution", | |||
"nextscene", | |||
"nextstereomode", | |||
"nextsubtitle", | |||
"noop", | |||
"number0", | |||
"number1", | |||
"number2", | |||
"number3", | |||
"number4", | |||
"number5", | |||
"number6", | |||
"number7", | |||
"number8", | |||
"number9", | |||
"osd", | |||
"pagedown", | |||
"pageup", | |||
"pangesture", | |||
"parentdir", | |||
"parentfolder", | |||
"pause", | |||
"play", | |||
"playerdebug", | |||
"playerprocessinfo", | |||
"playerprogramselect", | |||
"playerresolutionselect", | |||
"playlist", | |||
"playnext", | |||
"playpause", | |||
"playpvr", | |||
"playpvrradio", | |||
"playpvrtv", | |||
"previouschannelgroup", | |||
"previousmenu", | |||
"previouspicture", | |||
"previouspreset", | |||
"previousscene", | |||
"previousstereomode", | |||
"prevletter", | |||
"queue", | |||
"randompreset", | |||
"record", | |||
"red", | |||
"reloadkeymaps", | |||
"rename", | |||
"resetcalibration", | |||
"rewind", | |||
"right", | |||
"rightclick", | |||
"rotate", | |||
"rotateccw", | |||
"rotategesture", | |||
"scanitem", | |||
"screenshot", | |||
"scrolldown", | |||
"scrollup", | |||
"select", | |||
"setrating", | |||
"settingslevelchange", | |||
"settingsreset", | |||
"shift", | |||
"showpreset", | |||
"showsubtitles", | |||
"showtime", | |||
"showtimerrule", | |||
"showvideomenu", | |||
"skipnext", | |||
"skipprevious", | |||
"smallstepback", | |||
"stepback", | |||
"stepforward", | |||
"stereomode", | |||
"stereomodetomono", | |||
"stop", | |||
"subtitlealign", | |||
"subtitledelay", | |||
"subtitledelayminus", | |||
"subtitledelayplus", | |||
"subtitleshiftdown", | |||
"subtitleshiftup", | |||
"swipedown", | |||
"swipeleft", | |||
"swiperight", | |||
"swipeup", | |||
"switchplayer", | |||
"symbols", | |||
"tap", | |||
"togglecommskip", | |||
"togglefont", | |||
"togglefullscreen", | |||
"togglestereomode", | |||
"togglewatched", | |||
"up", | |||
"verticalshiftdown", | |||
"verticalshiftup", | |||
"videonextstream", | |||
"voicerecognizer", | |||
"volampdown", | |||
"volampup", | |||
"volumeamplification", | |||
"volumedown", | |||
"volumeup", | |||
"wheeldown", | |||
"wheelup", | |||
"yellow", | |||
"zoomgesture", | |||
"zoomin", | |||
"zoomlevel1", | |||
"zoomlevel2", | |||
"zoomlevel3", | |||
"zoomlevel4", | |||
"zoomlevel5", | |||
"zoomlevel6", | |||
"zoomlevel7", | |||
"zoomlevel8", | |||
"zoomlevel9", | |||
"zoomnormal", | |||
"zoomout" | |||
], | |||
"type": "string", | |||
"id": "Input.Action" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Item.Details.Base", | |||
"properties": { | |||
"label": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Item.Fields.Base ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"uniqueItems": true, | |||
"items": { | |||
"type": "string" | |||
}, | |||
"type": "array", | |||
"id": "Item.Fields.Base" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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"> | |||
* [''[[#Array.Integer|Array.Integer]]'' sourceid] | |||
* ''[[#Library.Id|Library.Id]]'' genreid | |||
* [''string'' thumbnail] | |||
* [''string'' title] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "Library.Details.Genre", | |||
"properties": { | |||
"sourceid": { | |||
"description": "The ids of sources with songs of the genre", | |||
"$ref": "Array.Integer" | |||
}, | |||
"genreid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 | |||
* [''[[#Array.String|Array.String]]'' paths] | |||
* ''string'' file | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "Library.Details.Source", | |||
"properties": { | |||
"sourceid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"paths": { | |||
"description": "The individual paths of the media source", | |||
"$ref": "Array.String" | |||
}, | |||
"file": { | |||
"required": true, | |||
"type": "string", | |||
"description": "The url encoded multipath string combining all paths of the source " | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "Library.Details.Tag", | |||
"properties": { | |||
"tagid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Library.Fields.Genre ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"title", | |||
"thumbnail", | |||
"sourceid" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Library.Fields.Genre" | |||
} | |||
</syntaxhighlight>}} | |||
==== Library.Fields.Source ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"file", | |||
"paths" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Library.Fields.Source" | |||
} | |||
</syntaxhighlight>}} | |||
==== Library.Fields.Tag ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"title" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Library.Fields.Tag" | |||
} | |||
</syntaxhighlight>}} | |||
==== Library.Id ==== | |||
'''Type:''' ''integer'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": -1, | |||
"minimum": 1, | |||
"type": "integer", | |||
"id": "Library.Id" | |||
} | |||
</syntaxhighlight>}} | |||
=== List === | |||
==== List.Amount ==== | |||
'''Type:''' ''integer'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": -1, | |||
"minimum": 0, | |||
"type": "integer", | |||
"id": "List.Amount" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Fields.All ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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", | |||
"sortartist", | |||
"musicbrainzreleasegroupid", | |||
"mediapath", | |||
"dynpath" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "List.Fields.All" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Fields.Files ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "List.Fields.Files" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Albums ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Albums" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Albums" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.Albums" | |||
} | |||
], | |||
"id": "List.Filter.Albums" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Artists ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Artists" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Artists" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.Artists" | |||
} | |||
], | |||
"id": "List.Filter.Artists" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Episodes ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Episodes" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Episodes" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.Episodes" | |||
} | |||
], | |||
"id": "List.Filter.Episodes" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.Albums ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "genre", | |||
"enums": [ | |||
"genre", | |||
"source", | |||
"album", | |||
"artist", | |||
"albumartist", | |||
"year", | |||
"review", | |||
"themes", | |||
"moods", | |||
"styles", | |||
"compilation", | |||
"type", | |||
"label", | |||
"rating", | |||
"userrating", | |||
"playcount", | |||
"lastplayed", | |||
"path", | |||
"playlist", | |||
"virtualfolder" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.Albums" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.Artists ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "artist", | |||
"enums": [ | |||
"artist", | |||
"source", | |||
"genre", | |||
"moods", | |||
"styles", | |||
"instruments", | |||
"biography", | |||
"artisttype", | |||
"gender", | |||
"disambiguation", | |||
"born", | |||
"bandformed", | |||
"disbanded", | |||
"died", | |||
"role", | |||
"path", | |||
"playlist", | |||
"virtualfolder" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.Artists" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.Episodes ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "title", | |||
"enums": [ | |||
"title", | |||
"tvshow", | |||
"originaltitle", | |||
"plot", | |||
"votes", | |||
"rating", | |||
"userrating", | |||
"time", | |||
"writers", | |||
"airdate", | |||
"playcount", | |||
"lastplayed", | |||
"inprogress", | |||
"genre", | |||
"year", | |||
"director", | |||
"actor", | |||
"episode", | |||
"season", | |||
"filename", | |||
"path", | |||
"studio", | |||
"mpaarating", | |||
"dateadded", | |||
"tag", | |||
"videoresolution", | |||
"audiochannels", | |||
"audiocount", | |||
"subtitlecount", | |||
"videocodec", | |||
"audiocodec", | |||
"audiolanguage", | |||
"subtitlelanguage", | |||
"videoaspect", | |||
"playlist", | |||
"virtualfolder" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.Episodes" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.Movies ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "title", | |||
"enums": [ | |||
"title", | |||
"originaltitle", | |||
"plot", | |||
"plotoutline", | |||
"tagline", | |||
"votes", | |||
"rating", | |||
"userrating", | |||
"time", | |||
"writers", | |||
"playcount", | |||
"lastplayed", | |||
"inprogress", | |||
"genre", | |||
"country", | |||
"year", | |||
"director", | |||
"actor", | |||
"mpaarating", | |||
"top250", | |||
"studio", | |||
"hastrailer", | |||
"filename", | |||
"path", | |||
"set", | |||
"tag", | |||
"dateadded", | |||
"videoresolution", | |||
"audiochannels", | |||
"audiocount", | |||
"subtitlecount", | |||
"videocodec", | |||
"audiocodec", | |||
"audiolanguage", | |||
"subtitlelanguage", | |||
"videoaspect", | |||
"playlist", | |||
"virtualfolder" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.Movies" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.MusicVideos ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "title", | |||
"enums": [ | |||
"title", | |||
"genre", | |||
"album", | |||
"year", | |||
"artist", | |||
"filename", | |||
"path", | |||
"playcount", | |||
"lastplayed", | |||
"rating", | |||
"userrating", | |||
"time", | |||
"director", | |||
"studio", | |||
"plot", | |||
"tag", | |||
"dateadded", | |||
"videoresolution", | |||
"audiochannels", | |||
"audiocount", | |||
"subtitlecount", | |||
"videocodec", | |||
"audiocodec", | |||
"audiolanguage", | |||
"subtitlelanguage", | |||
"videoaspect", | |||
"playlist", | |||
"virtualfolder" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.MusicVideos" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.Songs ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "genre", | |||
"enums": [ | |||
"genre", | |||
"source", | |||
"album", | |||
"artist", | |||
"albumartist", | |||
"title", | |||
"year", | |||
"time", | |||
"tracknumber", | |||
"filename", | |||
"path", | |||
"playcount", | |||
"lastplayed", | |||
"rating", | |||
"userrating", | |||
"comment", | |||
"moods", | |||
"playlist", | |||
"virtualfolder" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.Songs" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.TVShows ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "title", | |||
"enums": [ | |||
"title", | |||
"originaltitle", | |||
"plot", | |||
"status", | |||
"votes", | |||
"rating", | |||
"userrating", | |||
"year", | |||
"genre", | |||
"director", | |||
"actor", | |||
"numepisodes", | |||
"numwatched", | |||
"playcount", | |||
"path", | |||
"studio", | |||
"mpaarating", | |||
"dateadded", | |||
"lastplayed", | |||
"inprogress", | |||
"tag", | |||
"playlist", | |||
"virtualfolder" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.TVShows" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Fields.Textures ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "textureid", | |||
"enums": [ | |||
"textureid", | |||
"url", | |||
"cachedurl", | |||
"lasthashcheck", | |||
"imagehash", | |||
"width", | |||
"height", | |||
"usecount", | |||
"lastused" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Fields.Textures" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Movies ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Movies" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Movies" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.Movies" | |||
} | |||
], | |||
"id": "List.Filter.Movies" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.MusicVideos ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.MusicVideos" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.MusicVideos" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.MusicVideos" | |||
} | |||
], | |||
"id": "List.Filter.MusicVideos" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Operators ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "contains", | |||
"enums": [ | |||
"contains", | |||
"doesnotcontain", | |||
"is", | |||
"isnot", | |||
"startswith", | |||
"endswith", | |||
"greaterthan", | |||
"lessthan", | |||
"after", | |||
"before", | |||
"inthelast", | |||
"notinthelast", | |||
"true", | |||
"false", | |||
"between" | |||
], | |||
"type": "string", | |||
"id": "List.Filter.Operators" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "List.Filter.Rule", | |||
"properties": { | |||
"operator": { | |||
"required": true, | |||
"$ref": "List.Filter.Operators" | |||
}, | |||
"value": { | |||
"required": true, | |||
"type": [ | |||
{ | |||
"type": "string" | |||
}, | |||
{ | |||
"items": { | |||
"type": "string" | |||
}, | |||
"type": "array" | |||
} | |||
] | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.Albums", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.Albums" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.Artists", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.Artists" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.Episodes", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.Episodes" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.Movies", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.Movies" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.MusicVideos", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.MusicVideos" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.Songs", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.Songs" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.TVShows", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.TVShows" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Filter.Rule", | |||
"id": "List.Filter.Rule.Textures", | |||
"properties": { | |||
"field": { | |||
"required": true, | |||
"$ref": "List.Filter.Fields.Textures" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Songs ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Songs" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Songs" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.Songs" | |||
} | |||
], | |||
"id": "List.Filter.Songs" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.TVShows ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.TVShows" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.TVShows" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.TVShows" | |||
} | |||
], | |||
"id": "List.Filter.TVShows" | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Filter.Textures ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"and": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Textures" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"properties": { | |||
"or": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "List.Filter.Textures" | |||
}, | |||
"required": true, | |||
"type": "array" | |||
} | |||
} | |||
}, | |||
{ | |||
"$ref": "List.Filter.Rule.Textures" | |||
} | |||
], | |||
"id": "List.Filter.Textures" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''boolean'' locked] | |||
* [''integer'' channelnumber] | |||
* [''string'' starttime] | |||
* [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype = tv] | |||
* [''string'' endtime] | |||
* [''boolean'' hidden] | |||
* [''string'' channel] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Item.Base", | |||
"id": "List.Item.All", | |||
"properties": { | |||
"locked": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"channelnumber": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"starttime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"channeltype": { | |||
"default": "tv", | |||
"$ref": "PVR.Channel.Type" | |||
}, | |||
"endtime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"hidden": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"channel": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' comment] | |||
* [''string'' episodeguide] | |||
* [''[[#Library.Id|Library.Id]]'' tvshowid = -1] | |||
* [''string'' set] | |||
* [''string'' tagline] | |||
* [''[[#Audio.Contributors|Audio.Contributors]]'' contributors] | |||
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype = album] | |||
* [''string'' dynpath] | |||
* [''[[#Array.String|Array.String]]'' tag] | |||
* [''string'' displayorchestra] | |||
* [''integer'' disc] | |||
* [''integer'' duration] | |||
* [''[[#Library.Id|Library.Id]]'' setid = -1] | |||
* [''[[#Library.Id|Library.Id]]'' id = -1] | |||
* [''string'' displayconductor] | |||
* [''string'' album] | |||
* [''[[#Array.String|Array.String]]'' style] | |||
* [''integer'' specialsortseason] | |||
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype = album] | |||
* [''string'' lyrics] | |||
* [''integer'' specialsortepisode] | |||
* [''string'' mediapath] | |||
* [''string'' mpaa] | |||
* [''[[#Array.String|Array.String]]'' writer] | |||
* [''[[#Library.Id|Library.Id]]'' albumid = -1] | |||
* [''[[#Array.String|Array.String]]'' theme] | |||
* [''string'' displaycomposer] | |||
* [''string'' type = unknown] | |||
* [''boolean'' compilation] | |||
* [''string'' plotoutline] | |||
* [''string'' description] | |||
* [''integer'' track] | |||
* [''integer'' season] | |||
* [''[[#Array.Integer|Array.Integer]]'' albumartistid] | |||
* [''integer'' watchedepisodes] | |||
* [''string'' musicbrainztrackid] | |||
* [''string'' imdbnumber] | |||
* [''[[#Array.String|Array.String]]'' studio] | |||
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid] | |||
* [''[[#Array.String|Array.String]]'' showlink] | |||
* [''string'' showtitle] | |||
* [''[[#Array.String|Array.String]]'' mood] | |||
* [''integer'' episode] | |||
* [''[[#Array.String|Array.String]]'' musicbrainzartistid] | |||
* [''string'' displaylyricist] | |||
* [''string'' albumlabel] | |||
* [''string'' productioncode] | |||
* [''[[#Array.String|Array.String]]'' country] | |||
* [''[[#Array.String|Array.String]]'' albumartist] | |||
* [''string'' premiered] | |||
* [''string'' originaltitle] | |||
* [''[[#Video.Cast|Video.Cast]]'' cast] | |||
* [''string'' firstaired] | |||
* [''string'' sorttitle] | |||
* [''string'' votes] | |||
* [''integer'' top250] | |||
* [''string'' trailer] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": [ | |||
"Video.Details.File", | |||
"Audio.Details.Media" | |||
], | |||
"id": "List.Item.Base", | |||
"properties": { | |||
"comment": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"episodeguide": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"tvshowid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"set": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"tagline": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"contributors": { | |||
"$ref": "Audio.Contributors" | |||
}, | |||
"releasetype": { | |||
"default": "album", | |||
"$ref": "Audio.Album.ReleaseType" | |||
}, | |||
"dynpath": { | |||
"default": "", | |||
"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" | |||
}, | |||
"tag": { | |||
"$ref": "Array.String" | |||
}, | |||
"displayorchestra": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"disc": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"duration": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"setid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"id": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"displayconductor": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"album": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"style": { | |||
"$ref": "Array.String" | |||
}, | |||
"specialsortseason": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"albumreleasetype": { | |||
"default": "album", | |||
"$ref": "Audio.Album.ReleaseType" | |||
}, | |||
"lyrics": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"specialsortepisode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"mediapath": { | |||
"default": "", | |||
"type": "string", | |||
"description": "Media source path that identifies the item" | |||
}, | |||
"mpaa": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"writer": { | |||
"$ref": "Array.String" | |||
}, | |||
"albumid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"theme": { | |||
"$ref": "Array.String" | |||
}, | |||
"displaycomposer": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"type": { | |||
"default": "unknown", | |||
"enums": [ | |||
"unknown", | |||
"movie", | |||
"episode", | |||
"musicvideo", | |||
"song", | |||
"picture", | |||
"channel" | |||
], | |||
"type": "string" | |||
}, | |||
"compilation": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"plotoutline": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"description": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"track": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"season": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"albumartistid": { | |||
"$ref": "Array.Integer" | |||
}, | |||
"watchedepisodes": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"musicbrainztrackid": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"imdbnumber": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"studio": { | |||
"$ref": "Array.String" | |||
}, | |||
"uniqueid": { | |||
"$ref": "Media.UniqueID" | |||
}, | |||
"showlink": { | |||
"$ref": "Array.String" | |||
}, | |||
"showtitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"mood": { | |||
"$ref": "Array.String" | |||
}, | |||
"episode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"musicbrainzartistid": { | |||
"$ref": "Array.String" | |||
}, | |||
"displaylyricist": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"albumlabel": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"productioncode": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"country": { | |||
"$ref": "Array.String" | |||
}, | |||
"albumartist": { | |||
"$ref": "Array.String" | |||
}, | |||
"premiered": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"originaltitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"cast": { | |||
"$ref": "Video.Cast" | |||
}, | |||
"firstaired": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"sorttitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"votes": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"top250": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"trailer": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' mimetype] | |||
* [''string'' lastmodified] | |||
* ''string'' filetype | |||
* ''string'' file | |||
* [''integer'' size] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "List.Item.Base", | |||
"id": "List.Item.File", | |||
"properties": { | |||
"mimetype": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"lastmodified": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"filetype": { | |||
"enums": [ | |||
"file", | |||
"directory" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"file": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"size": { | |||
"default": 0, | |||
"type": "integer", | |||
"description": "Size of the file in bytes" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== List.Items.Sources ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"extends": "Item.Details.Base", | |||
"properties": { | |||
"file": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array", | |||
"id": "List.Items.Sources" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = -1] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "List.Limits", | |||
"properties": { | |||
"start": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"description": "Index of the first item to return" | |||
}, | |||
"end": { | |||
"default": -1, | |||
"description": "Index of the last item to return", | |||
"$ref": "List.Amount" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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] | |||
* ''integer'' total | |||
* [''[[#List.Amount|List.Amount]]'' end = -1] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "List.LimitsReturned", | |||
"properties": { | |||
"start": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer" | |||
}, | |||
"total": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
}, | |||
"end": { | |||
"default": -1, | |||
"$ref": "List.Amount" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''boolean'' useartistsortname] | |||
* [''string'' order = ascending] | |||
* [''boolean'' ignorearticle] | |||
* [''string'' method = none] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "List.Sort", | |||
"properties": { | |||
"useartistsortname": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"order": { | |||
"default": "ascending", | |||
"enums": [ | |||
"ascending", | |||
"descending" | |||
], | |||
"type": "string" | |||
}, | |||
"ignorearticle": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"method": { | |||
"default": "none", | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
=== 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]]'' fanart] | |||
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster] | |||
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner] | |||
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": { | |||
"default": "", | |||
"$ref": "Global.String.NotEmpty" | |||
}, | |||
"type": "object", | |||
"id": "Media.Artwork", | |||
"properties": { | |||
"fanart": { | |||
"default": "", | |||
"$ref": "Global.String.NotEmpty" | |||
}, | |||
"poster": { | |||
"default": "", | |||
"$ref": "Global.String.NotEmpty" | |||
}, | |||
"banner": { | |||
"default": "", | |||
"$ref": "Global.String.NotEmpty" | |||
}, | |||
"thumb": { | |||
"default": "", | |||
"$ref": "Global.String.NotEmpty" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' fanart] | |||
* [''mixed: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster] | |||
* [''mixed: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner] | |||
* [''mixed: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Global.String.NotEmpty" | |||
} | |||
] | |||
}, | |||
"type": "object", | |||
"id": "Media.Artwork.Set", | |||
"properties": { | |||
"fanart": { | |||
"default": "", | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Global.String.NotEmpty" | |||
} | |||
] | |||
}, | |||
"poster": { | |||
"default": "", | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Global.String.NotEmpty" | |||
} | |||
] | |||
}, | |||
"banner": { | |||
"default": "", | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Global.String.NotEmpty" | |||
} | |||
] | |||
}, | |||
"thumb": { | |||
"default": "", | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Global.String.NotEmpty" | |||
} | |||
] | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "Media.Details.Base", | |||
"properties": { | |||
"fanart": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Media.UniqueID ==== | |||
'''Type:''' ''object'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": { | |||
"default": "", | |||
"$ref": "Global.String.NotEmpty" | |||
}, | |||
"type": "object", | |||
"id": "Media.UniqueID" | |||
} | |||
</syntaxhighlight>}} | |||
==== Media.UniqueID.Set ==== | |||
'''Type:''' ''object'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Global.String.NotEmpty" | |||
} | |||
] | |||
}, | |||
"type": "object", | |||
"id": "Media.UniqueID.Set" | |||
} | |||
</syntaxhighlight>}} | |||
=== Notifications === | |||
==== Notifications.Item ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"type": "object", | |||
"description": "An unknown item does not have any additional information.", | |||
"properties": { | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"description": "An item known to the database has an identification.", | |||
"properties": { | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
}, | |||
"id": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"description": "A movie item has a title and may have a release year.", | |||
"properties": { | |||
"year": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
}, | |||
"title": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"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": { | |||
"season": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
}, | |||
"episode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"showtitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"title": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"description": "A music video has a title and may have an album and an artist.", | |||
"properties": { | |||
"album": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"title": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
}, | |||
"artist": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"description": "A song has a title and may have an album, an artist and a track number.", | |||
"properties": { | |||
"album": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"track": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"title": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
}, | |||
"artist": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"description": "A picture has a file path.", | |||
"properties": { | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
}, | |||
"file": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
{ | |||
"type": "object", | |||
"description": "A PVR channel is either a radio or tv channel and has a title.", | |||
"properties": { | |||
"channeltype": { | |||
"required": true, | |||
"$ref": "PVR.Channel.Type" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Item.Type" | |||
}, | |||
"id": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"title": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
], | |||
"id": "Notifications.Item" | |||
} | |||
</syntaxhighlight>}} | |||
==== Notifications.Item.Type ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "unknown", | |||
"enums": [ | |||
"unknown", | |||
"movie", | |||
"episode", | |||
"musicvideo", | |||
"song", | |||
"picture", | |||
"channel" | |||
], | |||
"type": "string", | |||
"id": "Notifications.Item.Type" | |||
} | |||
</syntaxhighlight>}} | |||
=== Optional === | |||
==== Optional.Boolean ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"type": "boolean" | |||
} | |||
], | |||
"id": "Optional.Boolean" | |||
} | |||
</syntaxhighlight>}} | |||
==== Optional.Integer ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"type": "integer" | |||
} | |||
], | |||
"id": "Optional.Integer" | |||
} | |||
</syntaxhighlight>}} | |||
==== Optional.Number ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"type": "number" | |||
} | |||
], | |||
"id": "Optional.Number" | |||
} | |||
</syntaxhighlight>}} | |||
==== Optional.String ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"type": "string" | |||
} | |||
], | |||
"id": "Optional.String" | |||
} | |||
</syntaxhighlight>}} | |||
=== PVR === | |||
==== PVR.Channel.Type ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "tv", | |||
"enums": [ | |||
"tv", | |||
"radio" | |||
], | |||
"type": "string", | |||
"id": "PVR.Channel.Type" | |||
} | |||
</syntaxhighlight>}} | |||
==== PVR.ChannelGroup.Id ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"$ref": "Library.Id" | |||
}, | |||
{ | |||
"enums": [ | |||
"alltv", | |||
"allradio" | |||
], | |||
"type": "string" | |||
} | |||
], | |||
"id": "PVR.ChannelGroup.Id" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''integer'' rating] | |||
* [''integer'' episodenum] | |||
* ''[[#Library.Id|Library.Id]]'' broadcastid | |||
* [''boolean'' isseries] | |||
* [''integer'' year] | |||
* [''integer'' episodepart] | |||
* [''string'' plot] | |||
* [''string'' title] | |||
* [''string'' writer] | |||
* [''integer'' progress] | |||
* [''number'' progresspercentage] | |||
* [''string'' thumbnail] | |||
* [''string'' recording] | |||
* [''string'' plotoutline] | |||
* [''boolean'' wasactive] | |||
* [''string'' director] | |||
* [''integer'' imdbnumber] | |||
* [''integer'' parentalrating] | |||
* [''string'' genre] | |||
* [''string'' endtime] | |||
* [''integer'' runtime] | |||
* [''string'' episodename] | |||
* [''string'' originaltitle] | |||
* [''string'' cast] | |||
* [''string'' firstaired] | |||
* [''string'' starttime] | |||
* [''boolean'' hastimerrule] | |||
* [''boolean'' hastimer] | |||
* [''boolean'' hasrecording] | |||
* [''boolean'' isactive] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "PVR.Details.Broadcast", | |||
"properties": { | |||
"rating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"episodenum": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"broadcastid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"isseries": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"year": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"episodepart": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"plot": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"writer": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"progress": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"progresspercentage": { | |||
"default": 0.0, | |||
"type": "number" | |||
}, | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"recording": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"plotoutline": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"wasactive": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"director": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"imdbnumber": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"parentalrating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"genre": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"endtime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"runtime": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"episodename": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"originaltitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"cast": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"firstaired": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"starttime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"hastimerrule": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"hastimer": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"hasrecording": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"isactive": { | |||
"default": false, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' lastplayed] | |||
* ''[[#Library.Id|Library.Id]]'' channelid | |||
* [''boolean'' locked] | |||
* [''boolean'' isrecording] | |||
* [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnext] | |||
* [''string'' thumbnail] | |||
* [''integer'' subchannelnumber] | |||
* [''integer'' channelnumber] | |||
* ''integer'' uniqueid | |||
* [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype = tv] | |||
* [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnow] | |||
* [''boolean'' hidden] | |||
* [''string'' channel] | |||
* [''string'' icon] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "PVR.Details.Channel", | |||
"properties": { | |||
"lastplayed": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"channelid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"locked": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"isrecording": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"broadcastnext": { | |||
"$ref": "PVR.Details.Broadcast" | |||
}, | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"subchannelnumber": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"channelnumber": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"uniqueid": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"channeltype": { | |||
"default": "tv", | |||
"$ref": "PVR.Channel.Type" | |||
}, | |||
"broadcastnow": { | |||
"$ref": "PVR.Details.Broadcast" | |||
}, | |||
"hidden": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"channel": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"icon": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* ''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype | |||
* ''[[#Library.Id|Library.Id]]'' channelgroupid | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "PVR.Details.ChannelGroup", | |||
"properties": { | |||
"channeltype": { | |||
"required": true, | |||
"$ref": "PVR.Channel.Type" | |||
}, | |||
"channelgroupid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''array'' channels] | |||
* ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "PVR.Details.ChannelGroup", | |||
"id": "PVR.Details.ChannelGroup.Extended", | |||
"properties": { | |||
"channels": { | |||
"items": { | |||
"$ref": "PVR.Details.Channel" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' plot] | |||
* [''string'' plotoutline] | |||
* [''integer'' runtime] | |||
* [''[[#Media.Artwork|Media.Artwork]]'' art] | |||
* [''string'' starttime] | |||
* [''[[#Video.Resume|Video.Resume]]'' resume] | |||
* ''[[#Library.Id|Library.Id]]'' recordingid | |||
* [''integer'' channeluid] | |||
* [''string'' title] | |||
* [''string'' streamurl] | |||
* [''string'' genre] | |||
* [''boolean'' radio] | |||
* [''boolean'' isdeleted] | |||
* [''string'' file] | |||
* [''integer'' epgeventid] | |||
* [''string'' directory] | |||
* [''integer'' lifetime] | |||
* [''integer'' playcount] | |||
* [''string'' endtime] | |||
* [''string'' channel] | |||
* [''string'' icon] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "PVR.Details.Recording", | |||
"properties": { | |||
"plot": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"plotoutline": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"runtime": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"art": { | |||
"$ref": "Media.Artwork" | |||
}, | |||
"starttime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"resume": { | |||
"$ref": "Video.Resume" | |||
}, | |||
"recordingid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"channeluid": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"streamurl": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"genre": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"radio": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"isdeleted": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"file": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"epgeventid": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"directory": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"lifetime": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"playcount": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"endtime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"channel": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"icon": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''integer'' epguid] | |||
* [''boolean'' endanytime] | |||
* [''string'' file] | |||
* [''integer'' lifetime] | |||
* [''integer'' endmargin] | |||
* ''[[#Library.Id|Library.Id]]'' timerid | |||
* [''string'' title] | |||
* [''boolean'' isreadonly] | |||
* [''boolean'' startanytime] | |||
* [''array'' weekdays] | |||
* [''boolean'' istimerrule] | |||
* [''integer'' priority] | |||
* [''[[#PVR.TimerState|PVR.TimerState]]'' state = unknown] | |||
* [''boolean'' ismanual] | |||
* [''integer'' maxrecordings] | |||
* [''string'' firstday] | |||
* [''string'' epgsearchstring] | |||
* [''string'' endtime] | |||
* [''integer'' preventduplicateepisodes] | |||
* [''integer'' recordinggroup] | |||
* [''[[#Library.Id|Library.Id]]'' channelid = -1] | |||
* [''boolean'' isradio] | |||
* [''string'' summary] | |||
* [''boolean'' fulltextepgsearch] | |||
* [''string'' starttime] | |||
* [''string'' directory] | |||
* [''integer'' runtime] | |||
* [''integer'' startmargin] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "PVR.Details.Timer", | |||
"properties": { | |||
"epguid": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"endanytime": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"file": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"lifetime": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"endmargin": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"timerid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"isreadonly": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"startanytime": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"weekdays": { | |||
"uniqueItems": true, | |||
"items": { | |||
"$ref": "Global.Weekday" | |||
}, | |||
"type": "array" | |||
}, | |||
"istimerrule": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"priority": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"state": { | |||
"default": "unknown", | |||
"$ref": "PVR.TimerState" | |||
}, | |||
"ismanual": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"maxrecordings": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"firstday": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"epgsearchstring": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"endtime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"preventduplicateepisodes": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"recordinggroup": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"channelid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"isradio": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"summary": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"fulltextepgsearch": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"starttime": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"directory": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"runtime": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"startmargin": { | |||
"default": 0, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== PVR.Fields.Broadcast ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "PVR.Fields.Broadcast" | |||
} | |||
</syntaxhighlight>}} | |||
==== PVR.Fields.Channel ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"thumbnail", | |||
"channeltype", | |||
"hidden", | |||
"locked", | |||
"channel", | |||
"lastplayed", | |||
"broadcastnow", | |||
"broadcastnext", | |||
"uniqueid", | |||
"icon", | |||
"channelnumber", | |||
"subchannelnumber", | |||
"isrecording" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "PVR.Fields.Channel" | |||
} | |||
</syntaxhighlight>}} | |||
==== PVR.Fields.Recording ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"title", | |||
"plot", | |||
"plotoutline", | |||
"genre", | |||
"playcount", | |||
"resume", | |||
"channel", | |||
"starttime", | |||
"endtime", | |||
"runtime", | |||
"lifetime", | |||
"icon", | |||
"art", | |||
"streamurl", | |||
"file", | |||
"directory", | |||
"radio", | |||
"isdeleted", | |||
"epgeventid", | |||
"channeluid" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "PVR.Fields.Recording" | |||
} | |||
</syntaxhighlight>}} | |||
==== PVR.Fields.Timer ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "PVR.Fields.Timer" | |||
} | |||
</syntaxhighlight>}} | |||
==== PVR.Property.Name ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "available", | |||
"enums": [ | |||
"available", | |||
"recording", | |||
"scanning" | |||
], | |||
"type": "string", | |||
"id": "PVR.Property.Name" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "PVR.Property.Value", | |||
"properties": { | |||
"available": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"recording": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"scanning": { | |||
"default": false, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== PVR.TimerState ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "unknown", | |||
"enums": [ | |||
"unknown", | |||
"new", | |||
"scheduled", | |||
"recording", | |||
"completed", | |||
"aborted", | |||
"cancelled", | |||
"conflict_ok", | |||
"conflict_notok", | |||
"error", | |||
"disabled" | |||
], | |||
"type": "string", | |||
"id": "PVR.TimerState" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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 | |||
* ''integer'' channels | |||
* ''string'' codec | |||
* ''integer'' bitrate | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Player.Audio.Stream", | |||
"properties": { | |||
"index": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
}, | |||
"name": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"language": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"channels": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"codec": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"bitrate": { | |||
"required": true, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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.Boolean|Optional.Boolean]]'' nonlinearstretch] | |||
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' verticalshift] | |||
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' pixelratio] | |||
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' zoom] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"id": "Player.CustomViewMode", | |||
"properties": { | |||
"nonlinearstretch": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"increase", | |||
"decrease" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"description": "Flag to enable nonlinear stretch", | |||
"$ref": "Optional.Boolean" | |||
} | |||
] | |||
}, | |||
"verticalshift": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"increase", | |||
"decrease" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"description": "Vertical shift 1.0 means shift to bottom", | |||
"$ref": "Optional.Number" | |||
} | |||
] | |||
}, | |||
"pixelratio": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"increase", | |||
"decrease" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"description": "Pixel aspect ratio where 1.0 means square pixel", | |||
"$ref": "Optional.Number" | |||
} | |||
] | |||
}, | |||
"zoom": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"enums": [ | |||
"increase", | |||
"decrease" | |||
], | |||
"type": "string" | |||
}, | |||
{ | |||
"description": "Zoom where 1.0 means 100%", | |||
"$ref": "Optional.Number" | |||
} | |||
] | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Player.Id ==== | |||
'''Type:''' ''integer'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": -1, | |||
"minimum": 0, | |||
"type": "integer", | |||
"id": "Player.Id", | |||
"maximum": 2 | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Player.Notifications.Data", | |||
"properties": { | |||
"item": { | |||
"required": true, | |||
"$ref": "Notifications.Item" | |||
}, | |||
"player": { | |||
"required": true, | |||
"$ref": "Player.Notifications.Player" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Player.Notifications.Player", | |||
"properties": { | |||
"playerid": { | |||
"required": true, | |||
"$ref": "Player.Id" | |||
}, | |||
"speed": { | |||
"default": 0, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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]]'' seekoffset] | |||
* [''[[#Global.Time|Global.Time]]'' time] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Player.Notifications.Player", | |||
"id": "Player.Notifications.Player.Seek", | |||
"properties": { | |||
"seekoffset": { | |||
"$ref": "Global.Time" | |||
}, | |||
"time": { | |||
"$ref": "Global.Time" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Player.Position.Percentage ==== | |||
'''Type:''' ''number'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": 0.0, | |||
"minimum": 0.0, | |||
"type": "number", | |||
"id": "Player.Position.Percentage", | |||
"maximum": 100.0 | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' seconds] | |||
* [''integer'' minutes] | |||
* [''integer'' milliseconds] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "Player.Position.Time", | |||
"properties": { | |||
"hours": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 23 | |||
}, | |||
"seconds": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 59 | |||
}, | |||
"minutes": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 59 | |||
}, | |||
"milliseconds": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 999 | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Player.Property.Name ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "type", | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string", | |||
"id": "Player.Property.Name" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''boolean'' canrotate] | |||
* [''boolean'' canrepeat] | |||
* [''integer'' speed] | |||
* [''boolean'' canshuffle] | |||
* [''boolean'' shuffled] | |||
* [''boolean'' canmove] | |||
* [''boolean'' live] | |||
* [''boolean'' subtitleenabled] | |||
* [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage] | |||
* [''[[#Player.Type|Player.Type]]'' type = video] | |||
* [''[[#Player.Repeat|Player.Repeat]]'' repeat = off] | |||
* [''array'' videostreams] | |||
* [''boolean'' canseek] | |||
* [''[[#Player.Subtitle|Player.Subtitle]]'' currentsubtitle] | |||
* [''array'' subtitles] | |||
* [''[[#Global.Time|Global.Time]]'' totaltime] | |||
* [''boolean'' canzoom] | |||
* [''[[#Player.Audio.Stream|Player.Audio.Stream]]'' currentaudiostream] | |||
* [''[[#Playlist.Id|Playlist.Id]]'' playlistid = -1] | |||
* [''[[#Player.Video.Stream|Player.Video.Stream]]'' currentvideostream] | |||
* [''array'' audiostreams] | |||
* [''boolean'' partymode] | |||
* [''[[#Global.Time|Global.Time]]'' time] | |||
* [''[[#Playlist.Position|Playlist.Position]]'' position = -1] | |||
* [''boolean'' canchangespeed] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Player.Property.Value", | |||
"properties": { | |||
"canrotate": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"canrepeat": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"speed": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"canshuffle": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"shuffled": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"canmove": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"live": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"subtitleenabled": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"percentage": { | |||
"default": 0.0, | |||
"$ref": "Player.Position.Percentage" | |||
}, | |||
"type": { | |||
"default": "video", | |||
"$ref": "Player.Type" | |||
}, | |||
"repeat": { | |||
"default": "off", | |||
"$ref": "Player.Repeat" | |||
}, | |||
"videostreams": { | |||
"items": { | |||
"$ref": "Player.Video.Stream" | |||
}, | |||
"type": "array" | |||
}, | |||
"canseek": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"currentsubtitle": { | |||
"$ref": "Player.Subtitle" | |||
}, | |||
"subtitles": { | |||
"items": { | |||
"$ref": "Player.Subtitle" | |||
}, | |||
"type": "array" | |||
}, | |||
"totaltime": { | |||
"$ref": "Global.Time" | |||
}, | |||
"canzoom": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"currentaudiostream": { | |||
"$ref": "Player.Audio.Stream" | |||
}, | |||
"playlistid": { | |||
"default": -1, | |||
"$ref": "Playlist.Id" | |||
}, | |||
"currentvideostream": { | |||
"$ref": "Player.Video.Stream" | |||
}, | |||
"audiostreams": { | |||
"items": { | |||
"$ref": "Player.Audio.Stream" | |||
}, | |||
"type": "array" | |||
}, | |||
"partymode": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"time": { | |||
"$ref": "Global.Time" | |||
}, | |||
"position": { | |||
"default": -1, | |||
"$ref": "Playlist.Position" | |||
}, | |||
"canchangespeed": { | |||
"default": false, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Player.Repeat ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "off", | |||
"enums": [ | |||
"off", | |||
"one", | |||
"all" | |||
], | |||
"type": "string", | |||
"id": "Player.Repeat" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"id": "Player.Speed", | |||
"properties": { | |||
"speed": { | |||
"default": 0, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Player.Subtitle", | |||
"properties": { | |||
"index": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
}, | |||
"name": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"language": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Player.Type ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "video", | |||
"enums": [ | |||
"video", | |||
"audio", | |||
"picture" | |||
], | |||
"type": "string", | |||
"id": "Player.Type" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 | |||
* ''integer'' height | |||
* ''integer'' width | |||
* ''string'' codec | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Player.Video.Stream", | |||
"properties": { | |||
"index": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
}, | |||
"name": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"language": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"height": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"width": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"codec": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Player.ViewMode ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "normal", | |||
"enums": [ | |||
"normal", | |||
"zoom", | |||
"stretch4x3", | |||
"widezoom", | |||
"stretch16x9", | |||
"original", | |||
"stretch16x9nonlin", | |||
"zoom120width", | |||
"zoom110width" | |||
], | |||
"type": "string", | |||
"id": "Player.ViewMode" | |||
} | |||
</syntaxhighlight>}} | |||
=== Playlist === | |||
==== Playlist.Id ==== | |||
'''Type:''' ''integer'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": -1, | |||
"minimum": 0, | |||
"type": "integer", | |||
"id": "Playlist.Id", | |||
"maximum": 2 | |||
} | |||
</syntaxhighlight>}} | |||
==== Playlist.Item ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"file": { | |||
"required": true, | |||
"type": "string", | |||
"description": "Path to a file (not a directory) to be added to the playlist" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"directory": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"media": { | |||
"default": "files", | |||
"$ref": "Files.Media" | |||
}, | |||
"recursive": { | |||
"default": false, | |||
"type": "boolean" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"movieid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"episodeid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"musicvideoid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"artistid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"albumid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"songid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
}, | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"genreid": { | |||
"required": true, | |||
"description": "Identification of a genre from the AudioLibrary", | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
], | |||
"id": "Playlist.Item" | |||
} | |||
</syntaxhighlight>}} | |||
==== Playlist.Position ==== | |||
'''Type:''' ''integer'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": -1, | |||
"minimum": 0, | |||
"type": "integer", | |||
"id": "Playlist.Position" | |||
} | |||
</syntaxhighlight>}} | |||
==== Playlist.Property.Name ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "type", | |||
"enums": [ | |||
"type", | |||
"size" | |||
], | |||
"type": "string", | |||
"id": "Playlist.Property.Name" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 = unknown] | |||
* [''integer'' size] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Playlist.Property.Value", | |||
"properties": { | |||
"type": { | |||
"default": "unknown", | |||
"$ref": "Playlist.Type" | |||
}, | |||
"size": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Playlist.Type ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "unknown", | |||
"enums": [ | |||
"unknown", | |||
"video", | |||
"audio", | |||
"picture", | |||
"mixed" | |||
], | |||
"type": "string", | |||
"id": "Playlist.Type" | |||
} | |||
</syntaxhighlight>}} | |||
=== 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"> | |||
* [''integer'' lockmode] | |||
* [''string'' thumbnail] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Item.Details.Base", | |||
"id": "Profiles.Details.Profile", | |||
"properties": { | |||
"lockmode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Profiles.Fields.Profile ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"thumbnail", | |||
"lockmode" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Profiles.Fields.Profile" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' encryption = md5] | |||
* ''string'' value | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Profiles.Password", | |||
"properties": { | |||
"encryption": { | |||
"default": "md5", | |||
"enums": [ | |||
"none", | |||
"md5" | |||
], | |||
"type": "string", | |||
"description": "Password Encryption" | |||
}, | |||
"value": { | |||
"required": true, | |||
"type": "string", | |||
"description": "Password" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
=== 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'' label | |||
* [''string'' help] | |||
* ''string'' id | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Setting.Details.Base", | |||
"properties": { | |||
"label": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"help": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"id": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.Base", | |||
"id": "Setting.Details.Category", | |||
"properties": { | |||
"groups": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "Setting.Details.Group" | |||
}, | |||
"uniqueItems": true, | |||
"type": "array" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Details.Control ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"$ref": "Setting.Details.ControlCheckmark" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.ControlSpinner" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.ControlEdit" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.ControlButton" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.ControlList" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.ControlSlider" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.ControlRange" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.ControlLabel" | |||
} | |||
], | |||
"id": "Setting.Details.Control" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 | |||
* ''boolean'' delayed | |||
* ''string'' format | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Setting.Details.ControlBase", | |||
"properties": { | |||
"type": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"delayed": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"format": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlHeading", | |||
"id": "Setting.Details.ControlButton", | |||
"properties": { | |||
"type": { | |||
"enums": [ | |||
"button" | |||
], | |||
"type": "string", | |||
"required": true | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlBase", | |||
"id": "Setting.Details.ControlCheckmark", | |||
"properties": { | |||
"type": { | |||
"enums": [ | |||
"toggle" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"format": { | |||
"enums": [ | |||
"boolean" | |||
], | |||
"type": "string", | |||
"required": true | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* ''boolean'' verifynewvalue | |||
* ''boolean'' hidden | |||
* ''string'' type | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlHeading", | |||
"id": "Setting.Details.ControlEdit", | |||
"properties": { | |||
"verifynewvalue": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"hidden": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"type": { | |||
"enums": [ | |||
"edit" | |||
], | |||
"type": "string", | |||
"required": true | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlBase", | |||
"id": "Setting.Details.ControlHeading", | |||
"properties": { | |||
"heading": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlBase", | |||
"id": "Setting.Details.ControlLabel", | |||
"properties": { | |||
"type": { | |||
"enums": [ | |||
"label" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"format": { | |||
"enums": [ | |||
"string" | |||
], | |||
"type": "string", | |||
"required": true | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlHeading", | |||
"id": "Setting.Details.ControlList", | |||
"properties": { | |||
"type": { | |||
"enums": [ | |||
"list" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"multiselect": { | |||
"required": true, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' formatlabel | |||
* ''string'' formatvalue | |||
* ''string'' type | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlBase", | |||
"id": "Setting.Details.ControlRange", | |||
"properties": { | |||
"formatlabel": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"formatvalue": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"type": { | |||
"enums": [ | |||
"range" | |||
], | |||
"type": "string", | |||
"required": true | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' formatlabel | |||
* ''boolean'' popup | |||
* ''string'' type | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlHeading", | |||
"id": "Setting.Details.ControlSlider", | |||
"properties": { | |||
"formatlabel": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"popup": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"type": { | |||
"enums": [ | |||
"slider" | |||
], | |||
"type": "string", | |||
"required": true | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' formatlabel] | |||
* ''string'' type | |||
* [''string'' minimumlabel] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.ControlBase", | |||
"id": "Setting.Details.ControlSpinner", | |||
"properties": { | |||
"formatlabel": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"type": { | |||
"enums": [ | |||
"spinner" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"minimumlabel": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "Setting.Details.Group", | |||
"properties": { | |||
"id": { | |||
"minLength": 1, | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"settings": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "Setting.Details.Setting" | |||
}, | |||
"uniqueItems": true, | |||
"type": "array" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.Base", | |||
"id": "Setting.Details.Section", | |||
"properties": { | |||
"categories": { | |||
"minItems": 1, | |||
"items": { | |||
"$ref": "Setting.Details.Category" | |||
}, | |||
"uniqueItems": true, | |||
"type": "array" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Details.Setting ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": [ | |||
{ | |||
"$ref": "Setting.Details.SettingBool" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingInt" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingNumber" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingString" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingAction" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingList" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingPath" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingAddon" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingDate" | |||
}, | |||
{ | |||
"$ref": "Setting.Details.SettingTime" | |||
} | |||
], | |||
"id": "Setting.Details.Setting" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingBase", | |||
"id": "Setting.Details.SettingAction", | |||
"properties": { | |||
"data": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingString", | |||
"id": "Setting.Details.SettingAddon", | |||
"properties": { | |||
"addontype": { | |||
"required": true, | |||
"$ref": "Addon.Types" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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.Details.Control|Setting.Details.Control]]'' control] | |||
* ''[[#Setting.Type|Setting.Type]]'' type | |||
* ''boolean'' enabled | |||
* [''string'' parent] | |||
* ''[[#Setting.Level|Setting.Level]]'' level | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.Base", | |||
"id": "Setting.Details.SettingBase", | |||
"properties": { | |||
"control": { | |||
"$ref": "Setting.Details.Control" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Setting.Type" | |||
}, | |||
"enabled": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"parent": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"level": { | |||
"required": true, | |||
"$ref": "Setting.Level" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' default | |||
* ''boolean'' value | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingBase", | |||
"id": "Setting.Details.SettingBool", | |||
"properties": { | |||
"default": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"value": { | |||
"required": true, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Details.SettingDate ==== | |||
'''Extends:''' | |||
* ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingString", | |||
"id": "Setting.Details.SettingDate" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' default | |||
* [''integer'' maximum] | |||
* ''integer'' value | |||
* [''integer'' step] | |||
* [''integer'' minimum] | |||
* [''array'' options] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingBase", | |||
"id": "Setting.Details.SettingInt", | |||
"properties": { | |||
"default": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"maximum": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"value": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"step": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"minimum": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"options": { | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"value": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"label": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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.Details.Setting|Setting.Details.Setting]]'' definition | |||
* ''[[#Setting.Value.List|Setting.Value.List]]'' default | |||
* [''integer'' maximumitems] | |||
* ''[[#Setting.Value.List|Setting.Value.List]]'' value | |||
* ''string'' delimiter | |||
* ''[[#Setting.Type|Setting.Type]]'' elementtype | |||
* [''integer'' minimumitems] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingBase", | |||
"id": "Setting.Details.SettingList", | |||
"properties": { | |||
"definition": { | |||
"required": true, | |||
"$ref": "Setting.Details.Setting" | |||
}, | |||
"default": { | |||
"required": true, | |||
"$ref": "Setting.Value.List" | |||
}, | |||
"maximumitems": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"value": { | |||
"required": true, | |||
"$ref": "Setting.Value.List" | |||
}, | |||
"delimiter": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"elementtype": { | |||
"required": true, | |||
"$ref": "Setting.Type" | |||
}, | |||
"minimumitems": { | |||
"default": 0, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' default | |||
* ''number'' step | |||
* ''number'' minimum | |||
* ''number'' maximum | |||
* ''number'' value | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingBase", | |||
"id": "Setting.Details.SettingNumber", | |||
"properties": { | |||
"default": { | |||
"required": true, | |||
"type": "number" | |||
}, | |||
"step": { | |||
"required": true, | |||
"type": "number" | |||
}, | |||
"minimum": { | |||
"required": true, | |||
"type": "number" | |||
}, | |||
"maximum": { | |||
"required": true, | |||
"type": "number" | |||
}, | |||
"value": { | |||
"required": true, | |||
"type": "number" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingString", | |||
"id": "Setting.Details.SettingPath", | |||
"properties": { | |||
"writable": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"sources": { | |||
"items": { | |||
"type": "string" | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' default | |||
* ''boolean'' allowempty | |||
* [''array'' options] | |||
* ''string'' value | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Setting.Details.SettingBase", | |||
"id": "Setting.Details.SettingString", | |||
"properties": { | |||
"default": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"allowempty": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"options": { | |||
"items": { | |||
"type": "object", | |||
"properties": { | |||
"value": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"label": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"value": { | |||
"required": true, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Details.SettingTime ==== | |||
'''Extends:''' | |||
* ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"extends": "Setting.Details.SettingString", | |||
"id": "Setting.Details.SettingTime" | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Level ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "basic", | |||
"enums": [ | |||
"basic", | |||
"standard", | |||
"advanced", | |||
"expert" | |||
], | |||
"type": "string", | |||
"id": "Setting.Level" | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Type ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "boolean", | |||
"enums": [ | |||
"boolean", | |||
"integer", | |||
"number", | |||
"string", | |||
"action", | |||
"list", | |||
"path", | |||
"addon", | |||
"date", | |||
"time" | |||
], | |||
"type": "string", | |||
"id": "Setting.Type" | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Value ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "boolean" | |||
}, | |||
{ | |||
"type": "integer" | |||
}, | |||
{ | |||
"type": "number" | |||
}, | |||
{ | |||
"type": "string" | |||
} | |||
], | |||
"id": "Setting.Value" | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Value.Extended ==== | |||
'''Type:''' ''mixed'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "boolean" | |||
}, | |||
{ | |||
"type": "integer" | |||
}, | |||
{ | |||
"type": "number" | |||
}, | |||
{ | |||
"type": "string" | |||
}, | |||
{ | |||
"$ref": "Setting.Value.List" | |||
} | |||
], | |||
"id": "Setting.Value.Extended" | |||
} | |||
</syntaxhighlight>}} | |||
==== Setting.Value.List ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"$ref": "Setting.Value" | |||
}, | |||
"type": "array", | |||
"id": "Setting.Value.List" | |||
} | |||
</syntaxhighlight>}} | |||
=== System === | |||
==== System.Property.Name ==== | |||
'''Type:''' ''string'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"default": "canshutdown", | |||
"enums": [ | |||
"canshutdown", | |||
"cansuspend", | |||
"canhibernate", | |||
"canreboot" | |||
], | |||
"type": "string", | |||
"id": "System.Property.Name" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' canreboot] | |||
* [''boolean'' cansuspend] | |||
* [''boolean'' canhibernate] | |||
* [''boolean'' canshutdown] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "System.Property.Value", | |||
"properties": { | |||
"canreboot": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"cansuspend": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"canhibernate": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"canshutdown": { | |||
"default": false, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
=== 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] | |||
* [''string'' lastused] | |||
* [''integer'' usecount] | |||
* [''integer'' height] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Textures.Details.Size", | |||
"properties": { | |||
"size": { | |||
"default": 0, | |||
"type": "integer", | |||
"description": "Size of the texture (1 == largest)" | |||
}, | |||
"width": { | |||
"default": 0, | |||
"type": "integer", | |||
"description": "Width of texture" | |||
}, | |||
"lastused": { | |||
"default": "", | |||
"type": "string", | |||
"description": "Date of last use" | |||
}, | |||
"usecount": { | |||
"default": 0, | |||
"type": "integer", | |||
"description": "Number of uses" | |||
}, | |||
"height": { | |||
"default": 0, | |||
"type": "integer", | |||
"description": "Height of texture" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''array'' sizes] | |||
* [''string'' cachedurl] | |||
* [''string'' imagehash] | |||
* [''string'' url] | |||
* [''string'' lasthashcheck] | |||
* [''[[#Library.Id|Library.Id]]'' textureid = -1] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Textures.Details.Texture", | |||
"properties": { | |||
"sizes": { | |||
"items": { | |||
"$ref": "Textures.Details.Size" | |||
}, | |||
"type": "array" | |||
}, | |||
"cachedurl": { | |||
"default": "", | |||
"type": "string", | |||
"description": "Cached URL on disk" | |||
}, | |||
"imagehash": { | |||
"default": "", | |||
"type": "string", | |||
"description": "Hash of image" | |||
}, | |||
"url": { | |||
"default": "", | |||
"type": "string", | |||
"description": "Original source URL" | |||
}, | |||
"lasthashcheck": { | |||
"default": "", | |||
"type": "string", | |||
"description": "Last time source was checked for changes" | |||
}, | |||
"textureid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Textures.Fields.Texture ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"url", | |||
"cachedurl", | |||
"lasthashcheck", | |||
"imagehash", | |||
"sizes" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Textures.Fields.Texture" | |||
} | |||
</syntaxhighlight>}} | |||
=== Video === | |||
==== Video.Cast ==== | |||
'''Type:''' ''array'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"thumbnail": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"role": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"name": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"order": { | |||
"required": true, | |||
"type": "integer" | |||
} | |||
} | |||
}, | |||
"type": "array", | |||
"id": "Video.Cast" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Media.Details.Base", | |||
"id": "Video.Details.Base", | |||
"properties": { | |||
"playcount": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"art": { | |||
"$ref": "Media.Artwork" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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]]'' seasonid = -1] | |||
* [''number'' rating] | |||
* [''[[#Library.Id|Library.Id]]'' tvshowid = -1] | |||
* [''integer'' specialsortseason] | |||
* [''integer'' episode] | |||
* [''integer'' specialsortepisode] | |||
* [''any'' ratings] | |||
* [''string'' productioncode] | |||
* [''integer'' season] | |||
* [''[[#Array.String|Array.String]]'' writer] | |||
* ''[[#Library.Id|Library.Id]]'' episodeid | |||
* [''string'' originaltitle] | |||
* [''[[#Video.Cast|Video.Cast]]'' cast] | |||
* [''string'' firstaired] | |||
* [''integer'' userrating] | |||
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid] | |||
* [''string'' votes] | |||
* [''string'' showtitle] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.File", | |||
"id": "Video.Details.Episode", | |||
"properties": { | |||
"seasonid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"rating": { | |||
"default": 0.0, | |||
"type": "number" | |||
}, | |||
"tvshowid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"specialsortseason": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"episode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"specialsortepisode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"ratings": { | |||
"default": null, | |||
"type": "any" | |||
}, | |||
"productioncode": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"season": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"writer": { | |||
"$ref": "Array.String" | |||
}, | |||
"episodeid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"originaltitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"cast": { | |||
"$ref": "Video.Cast" | |||
}, | |||
"firstaired": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"userrating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"uniqueid": { | |||
"$ref": "Media.UniqueID" | |||
}, | |||
"votes": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"showtitle": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''[[#Array.String|Array.String]]'' director] | |||
* [''[[#Video.Streams|Video.Streams]]'' streamdetails] | |||
* [''integer'' runtime] | |||
* [''[[#Video.Resume|Video.Resume]]'' resume] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.Item", | |||
"id": "Video.Details.File", | |||
"properties": { | |||
"director": { | |||
"$ref": "Array.String" | |||
}, | |||
"streamdetails": { | |||
"$ref": "Video.Streams" | |||
}, | |||
"runtime": { | |||
"default": 0, | |||
"type": "integer", | |||
"description": "Runtime in seconds" | |||
}, | |||
"resume": { | |||
"$ref": "Video.Resume" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' lastplayed] | |||
* [''string'' dateadded] | |||
* [''string'' file] | |||
* [''string'' plot] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.Media", | |||
"id": "Video.Details.Item", | |||
"properties": { | |||
"lastplayed": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"dateadded": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"file": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"plot": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.Base", | |||
"id": "Video.Details.Media", | |||
"properties": { | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''number'' rating] | |||
* [''string'' set] | |||
* [''[[#Array.String|Array.String]]'' tag] | |||
* [''integer'' year] | |||
* [''[[#Library.Id|Library.Id]]'' setid = -1] | |||
* [''any'' ratings] | |||
* [''string'' votes] | |||
* [''string'' tagline] | |||
* [''[[#Array.String|Array.String]]'' writer] | |||
* [''string'' plotoutline] | |||
* [''string'' sorttitle] | |||
* [''string'' imdbnumber] | |||
* [''[[#Array.String|Array.String]]'' studio] | |||
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid] | |||
* [''[[#Array.String|Array.String]]'' showlink] | |||
* [''[[#Array.String|Array.String]]'' genre] | |||
* ''[[#Library.Id|Library.Id]]'' movieid | |||
* [''[[#Array.String|Array.String]]'' country] | |||
* [''string'' premiered] | |||
* [''string'' originaltitle] | |||
* [''[[#Video.Cast|Video.Cast]]'' cast] | |||
* [''integer'' userrating] | |||
* [''string'' mpaa] | |||
* [''integer'' top250] | |||
* [''string'' trailer] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.File", | |||
"id": "Video.Details.Movie", | |||
"properties": { | |||
"rating": { | |||
"default": 0.0, | |||
"type": "number" | |||
}, | |||
"set": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"tag": { | |||
"$ref": "Array.String" | |||
}, | |||
"year": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"setid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"ratings": { | |||
"default": null, | |||
"type": "any" | |||
}, | |||
"votes": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"tagline": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"writer": { | |||
"$ref": "Array.String" | |||
}, | |||
"plotoutline": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"sorttitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"imdbnumber": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"studio": { | |||
"$ref": "Array.String" | |||
}, | |||
"uniqueid": { | |||
"$ref": "Media.UniqueID" | |||
}, | |||
"showlink": { | |||
"$ref": "Array.String" | |||
}, | |||
"genre": { | |||
"$ref": "Array.String" | |||
}, | |||
"movieid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"country": { | |||
"$ref": "Array.String" | |||
}, | |||
"premiered": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"originaltitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"cast": { | |||
"$ref": "Video.Cast" | |||
}, | |||
"userrating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"mpaa": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"top250": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"trailer": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' plot] | |||
* ''[[#Library.Id|Library.Id]]'' setid | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.Media", | |||
"id": "Video.Details.MovieSet", | |||
"properties": { | |||
"plot": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"setid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''array'' movies] | |||
* ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.MovieSet", | |||
"id": "Video.Details.MovieSet.Extended", | |||
"properties": { | |||
"movies": { | |||
"items": { | |||
"$ref": "Video.Details.Movie" | |||
}, | |||
"type": "array" | |||
}, | |||
"limits": { | |||
"required": true, | |||
"$ref": "List.LimitsReturned" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' album] | |||
* [''number'' rating] | |||
* [''[[#Array.String|Array.String]]'' artist] | |||
* [''integer'' track] | |||
* [''string'' premiered] | |||
* [''[[#Array.String|Array.String]]'' tag] | |||
* [''[[#Array.String|Array.String]]'' studio] | |||
* [''integer'' year] | |||
* [''[[#Array.String|Array.String]]'' genre] | |||
* [''integer'' userrating] | |||
* ''[[#Library.Id|Library.Id]]'' musicvideoid | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.File", | |||
"id": "Video.Details.MusicVideo", | |||
"properties": { | |||
"album": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"rating": { | |||
"default": 0.0, | |||
"type": "number" | |||
}, | |||
"artist": { | |||
"$ref": "Array.String" | |||
}, | |||
"track": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"premiered": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"tag": { | |||
"$ref": "Array.String" | |||
}, | |||
"studio": { | |||
"$ref": "Array.String" | |||
}, | |||
"year": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"genre": { | |||
"$ref": "Array.String" | |||
}, | |||
"userrating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"musicvideoid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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 | |||
* [''[[#Library.Id|Library.Id]]'' tvshowid = -1] | |||
* [''integer'' episode] | |||
* [''string'' title] | |||
* ''integer'' season | |||
* [''integer'' watchedepisodes] | |||
* [''integer'' userrating] | |||
* [''string'' showtitle] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.Base", | |||
"id": "Video.Details.Season", | |||
"properties": { | |||
"seasonid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"tvshowid": { | |||
"default": -1, | |||
"$ref": "Library.Id" | |||
}, | |||
"episode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"title": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"season": { | |||
"required": true, | |||
"type": "integer" | |||
}, | |||
"watchedepisodes": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"userrating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"showtitle": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''string'' episodeguide] | |||
* ''[[#Library.Id|Library.Id]]'' tvshowid | |||
* [''integer'' watchedepisodes] | |||
* [''integer'' episode] | |||
* [''string'' imdbnumber] | |||
* [''number'' rating] | |||
* [''string'' mpaa] | |||
* [''string'' sorttitle] | |||
* [''integer'' year] | |||
* [''string'' votes] | |||
* [''string'' premiered] | |||
* [''string'' originaltitle] | |||
* [''[[#Video.Cast|Video.Cast]]'' cast] | |||
* [''any'' ratings] | |||
* [''[[#Array.String|Array.String]]'' tag] | |||
* [''[[#Array.String|Array.String]]'' studio] | |||
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid] | |||
* [''integer'' season] | |||
* [''[[#Array.String|Array.String]]'' genre] | |||
* [''integer'' userrating] | |||
* [''integer'' runtime] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"extends": "Video.Details.Item", | |||
"id": "Video.Details.TVShow", | |||
"properties": { | |||
"episodeguide": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"tvshowid": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"watchedepisodes": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"episode": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"imdbnumber": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"rating": { | |||
"default": 0.0, | |||
"type": "number" | |||
}, | |||
"mpaa": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"sorttitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"year": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"votes": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"premiered": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"originaltitle": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"cast": { | |||
"$ref": "Video.Cast" | |||
}, | |||
"ratings": { | |||
"default": null, | |||
"type": "any" | |||
}, | |||
"tag": { | |||
"$ref": "Array.String" | |||
}, | |||
"studio": { | |||
"$ref": "Array.String" | |||
}, | |||
"uniqueid": { | |||
"$ref": "Media.UniqueID" | |||
}, | |||
"season": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"genre": { | |||
"$ref": "Array.String" | |||
}, | |||
"userrating": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"runtime": { | |||
"default": 0, | |||
"type": "integer", | |||
"description": "Runtime in seconds" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Fields.Episode ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string", | |||
"description": "Requesting the cast, ratings, streamdetails, uniqueid and/or tag field will result in increased response times" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Video.Fields.Episode" | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Fields.Movie ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string", | |||
"description": "Requesting the cast, ratings, showlink, streamdetails, uniqueid and/or tag field will result in increased response times" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Video.Fields.Movie" | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Fields.MovieSet ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"title", | |||
"playcount", | |||
"fanart", | |||
"thumbnail", | |||
"art", | |||
"plot" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Video.Fields.MovieSet" | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Fields.MusicVideo ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"title", | |||
"playcount", | |||
"runtime", | |||
"director", | |||
"studio", | |||
"year", | |||
"plot", | |||
"album", | |||
"artist", | |||
"genre", | |||
"track", | |||
"streamdetails", | |||
"lastplayed", | |||
"fanart", | |||
"thumbnail", | |||
"file", | |||
"resume", | |||
"dateadded", | |||
"tag", | |||
"art", | |||
"rating", | |||
"userrating", | |||
"premiered" | |||
], | |||
"type": "string", | |||
"description": "Requesting the streamdetails and/or tag field will result in increased response times" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Video.Fields.MusicVideo" | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Fields.Season ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"season", | |||
"showtitle", | |||
"playcount", | |||
"episode", | |||
"fanart", | |||
"thumbnail", | |||
"tvshowid", | |||
"watchedepisodes", | |||
"art", | |||
"userrating", | |||
"title" | |||
], | |||
"type": "string" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Video.Fields.Season" | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Fields.TVShow ==== | |||
'''Extends:''' | |||
* ''[[#Item.Fields.Base|Item.Fields.Base]]'' | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"items": { | |||
"enums": [ | |||
"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" | |||
], | |||
"type": "string", | |||
"description": "Requesting the cast, ratings, uniqueid and/or tag field will result in increased response times" | |||
}, | |||
"extends": "Item.Fields.Base", | |||
"id": "Video.Fields.TVShow" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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"> | |||
* [''boolean'' default] | |||
* ''number'' rating | |||
* [''integer'' votes] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "object", | |||
"id": "Video.Rating", | |||
"properties": { | |||
"default": { | |||
"default": false, | |||
"type": "boolean" | |||
}, | |||
"rating": { | |||
"required": true, | |||
"type": "number" | |||
}, | |||
"votes": { | |||
"default": 0, | |||
"type": "integer" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Ratings ==== | |||
'''Type:''' ''object'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": { | |||
"$ref": "Video.Rating" | |||
}, | |||
"type": "object", | |||
"id": "Video.Ratings" | |||
} | |||
</syntaxhighlight>}} | |||
==== Video.Ratings.Set ==== | |||
'''Type:''' ''object'' | |||
<br /> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": { | |||
"default": null, | |||
"type": [ | |||
{ | |||
"type": "null" | |||
}, | |||
{ | |||
"$ref": "Video.Rating" | |||
} | |||
] | |||
}, | |||
"type": "object", | |||
"id": "Video.Ratings.Set" | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "Video.Resume", | |||
"properties": { | |||
"position": { | |||
"default": 0.0, | |||
"minimum": 0.0, | |||
"type": "number" | |||
}, | |||
"total": { | |||
"default": 0.0, | |||
"minimum": 0.0, | |||
"type": "number" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
==== 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'' video] | |||
* [''array'' audio] | |||
* [''array'' subtitle] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"additionalProperties": false, | |||
"type": "object", | |||
"id": "Video.Streams", | |||
"properties": { | |||
"video": { | |||
"minItems": 1, | |||
"items": { | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"duration": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"width": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"codec": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"aspect": { | |||
"default": 0.0, | |||
"type": "number" | |||
}, | |||
"height": { | |||
"default": 0, | |||
"type": "integer" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"audio": { | |||
"minItems": 1, | |||
"items": { | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"channels": { | |||
"default": 0, | |||
"type": "integer" | |||
}, | |||
"codec": { | |||
"default": "", | |||
"type": "string" | |||
}, | |||
"language": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
}, | |||
"subtitle": { | |||
"minItems": 1, | |||
"items": { | |||
"additionalProperties": false, | |||
"type": "object", | |||
"properties": { | |||
"language": { | |||
"default": "", | |||
"type": "string" | |||
} | |||
} | |||
}, | |||
"type": "array" | |||
} | |||
} | |||
} | |||
</syntaxhighlight>}} | |||
== 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: | |||
#* ''boolean'' muted | |||
#* ''integer'' volume | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"muted": { | |||
"required": true, | |||
"type": "boolean" | |||
}, | |||
"volume": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"maximum": 100, | |||
"required": true | |||
} | |||
} | |||
} | |||
], | |||
"description": "The volume of the application has changed." | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The audio library has been cleaned." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "An audio library clean operation has started." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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]: | |||
#* [''integer'' failcount = 0] | |||
#* [''string'' file = ""] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": false, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"failcount": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": false | |||
}, | |||
"file": { | |||
"default": "", | |||
"required": false, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
], | |||
"description": "An audio library export has finished." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: | |||
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction | |||
#* ''[[#Notifications.Library.Audio.Type|Notifications.Library.Audio.Type]]'' type | |||
#* ''[[#Library.Id|Library.Id]]'' id | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"transaction": { | |||
"description": "True if the removal is being performed within a transaction.", | |||
"$ref": "Optional.Boolean" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Library.Audio.Type" | |||
}, | |||
"id": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
], | |||
"description": "An audio item has been removed." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "Scanning the audio library has been finished." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "An audio library scan has started." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: | |||
#* ''[[#Optional.Boolean|Optional.Boolean]]'' added | |||
#* ''string'' type | |||
#* ''[[#Library.Id|Library.Id]]'' id | |||
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"added": { | |||
"description": "True if the update is for a newly added item.", | |||
"$ref": "Optional.Boolean" | |||
}, | |||
"type": { | |||
"enum": [ | |||
"song" | |||
], | |||
"type": "string", | |||
"id": "Notifications.Library.Audio.Type", | |||
"required": true | |||
}, | |||
"id": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"transaction": { | |||
"description": "True if the update is being performed within a transaction.", | |||
"$ref": "Optional.Boolean" | |||
} | |||
} | |||
} | |||
], | |||
"description": "An audio item has been updated." | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "Energy saving/DPMS has been activated." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "Energy saving/DPMS has been deactivated." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The screensaver has been activated." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"shuttingdown": { | |||
"required": true, | |||
"type": "boolean" | |||
} | |||
} | |||
} | |||
], | |||
"description": "The screensaver has been deactivated." | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The user has provided the requested input." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"type": { | |||
"enum": [ | |||
"keyboard", | |||
"time", | |||
"date", | |||
"ip", | |||
"password", | |||
"numericpassword", | |||
"number", | |||
"seconds" | |||
], | |||
"type": "string", | |||
"required": true | |||
}, | |||
"value": { | |||
"required": true, | |||
"type": "string" | |||
}, | |||
"title": { | |||
"type": "string" | |||
} | |||
} | |||
} | |||
], | |||
"description": "The user is requested to provide some information." | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "data", | |||
"$ref": "Player.Notifications.Data" | |||
} | |||
], | |||
"description": "Audio- or videostream has changed. If there is no ID available extra information will be provided." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "data", | |||
"$ref": "Player.Notifications.Data" | |||
} | |||
], | |||
"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." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "data", | |||
"$ref": "Player.Notifications.Data" | |||
} | |||
], | |||
"description": "Playback of a media item has been paused. If there is no ID available extra information will be provided." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "data", | |||
"$ref": "Player.Notifications.Data" | |||
} | |||
], | |||
"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." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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.Notifications.Player|Player.Notifications.Player]]'' player | |||
#* ''[[#Player.Property.Value|Player.Property.Value]]'' property | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"player": { | |||
"required": true, | |||
"$ref": "Player.Notifications.Player" | |||
}, | |||
"property": { | |||
"$ref": "Player.Property.Value" | |||
} | |||
} | |||
} | |||
], | |||
"description": "A property of the playing items has changed." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "data", | |||
"$ref": "Player.Notifications.Data" | |||
} | |||
], | |||
"description": "Playback of a media item has been resumed. If there is no ID available extra information will be provided." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"item": { | |||
"$ref": "Notifications.Item" | |||
}, | |||
"player": { | |||
"required": true, | |||
"$ref": "Player.Notifications.Player.Seek" | |||
} | |||
} | |||
} | |||
], | |||
"description": "The playback position has been changed. If there is no ID available extra information will be provided." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"name": "data", | |||
"$ref": "Player.Notifications.Data" | |||
} | |||
], | |||
"description": "Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"item": { | |||
"$ref": "Notifications.Item" | |||
}, | |||
"end": { | |||
"required": true, | |||
"type": "boolean", | |||
"description": "Whether the player has reached the end of the playable item(s) or not" | |||
} | |||
} | |||
} | |||
], | |||
"description": "Playback of a media item has been stopped. If there is no ID available extra information will be provided." | |||
} | |||
</syntaxhighlight>}} | |||
=== 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: | |||
#* ''[[#Notifications.Item|Notifications.Item]]'' item | |||
#* ''[[#Playlist.Id|Playlist.Id]]'' playlistid | |||
#* ''[[#Playlist.Position|Playlist.Position]]'' position | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"item": { | |||
"$ref": "Notifications.Item" | |||
}, | |||
"playlistid": { | |||
"required": true, | |||
"$ref": "Playlist.Id" | |||
}, | |||
"position": { | |||
"$ref": "Playlist.Position" | |||
} | |||
} | |||
} | |||
], | |||
"description": "A playlist item has been added." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"playlistid": { | |||
"required": true, | |||
"$ref": "Playlist.Id" | |||
} | |||
} | |||
} | |||
], | |||
"description": "A playlist item has been cleared." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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.Position|Playlist.Position]]'' position | |||
#* ''[[#Playlist.Id|Playlist.Id]]'' playlistid | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"position": { | |||
"$ref": "Playlist.Position" | |||
}, | |||
"playlistid": { | |||
"required": true, | |||
"$ref": "Playlist.Id" | |||
} | |||
} | |||
} | |||
], | |||
"description": "A playlist item has been removed." | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The system is on low battery." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"exitcode": { | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": true | |||
} | |||
} | |||
} | |||
], | |||
"description": "Kodi will be closed." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The system will be restarted." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The system will be suspended." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The system woke up from suspension." | |||
} | |||
</syntaxhighlight>}} | |||
=== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The video library has been cleaned." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "A video library clean operation has started." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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]: | |||
#* [''integer'' failcount = 0] | |||
#* [''string'' root = ""] | |||
#* [''string'' file = ""] | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": false, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"failcount": { | |||
"default": 0, | |||
"minimum": 0, | |||
"type": "integer", | |||
"required": false | |||
}, | |||
"root": { | |||
"default": "", | |||
"required": false, | |||
"type": "string" | |||
}, | |||
"file": { | |||
"default": "", | |||
"required": false, | |||
"type": "string" | |||
} | |||
} | |||
} | |||
], | |||
"description": "A video library export has finished." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "The video library has been refreshed and a home screen reload might be necessary." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: | |||
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction | |||
#* ''[[#Notifications.Library.Video.Type|Notifications.Library.Video.Type]]'' type | |||
#* ''[[#Library.Id|Library.Id]]'' id | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"transaction": { | |||
"description": "True if the removal is being performed within a transaction.", | |||
"$ref": "Optional.Boolean" | |||
}, | |||
"type": { | |||
"required": true, | |||
"$ref": "Notifications.Library.Video.Type" | |||
}, | |||
"id": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
} | |||
} | |||
} | |||
], | |||
"description": "A video item has been removed." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "Scanning the video library has been finished." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "null", | |||
"name": "data" | |||
} | |||
], | |||
"description": "A video library scan has started." | |||
} | |||
</syntaxhighlight>}} | |||
==== 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: | |||
#* ''integer'' playcount = -1 | |||
#* ''[[#Optional.Boolean|Optional.Boolean]]'' added | |||
#* ''string'' type | |||
#* ''[[#Library.Id|Library.Id]]'' id | |||
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction | |||
</div> | |||
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div"> | |||
{ | |||
"type": "notification", | |||
"returns": null, | |||
"params": [ | |||
{ | |||
"required": true, | |||
"type": "string", | |||
"name": "sender" | |||
}, | |||
{ | |||
"required": true, | |||
"type": "object", | |||
"name": "data", | |||
"properties": { | |||
"playcount": { | |||
"default": -1, | |||
"minimum": 0, | |||
"type": "integer" | |||
}, | |||
"added": { | |||
"description": "True if the update is for a newly added item.", | |||
"$ref": "Optional.Boolean" | |||
}, | |||
"type": { | |||
"enum": [ | |||
"movie", | |||
"tvshow", | |||
"episode", | |||
"musicvideo" | |||
], | |||
"type": "string", | |||
"id": "Notifications.Library.Video.Type", | |||
"required": true | |||
}, | |||
"id": { | |||
"required": true, | |||
"$ref": "Library.Id" | |||
}, | |||
"transaction": { | |||
"description": "True if the update is being performed within a transaction.", | |||
"$ref": "Optional.Boolean" | |||
} | |||
} | |||
} | |||
], | |||
"description": "A video item has been updated." | |||
} | |||
</syntaxhighlight>}} | |||
== External links == | == External links == | ||
Line 19: | Line 18,217: | ||
* [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)] | * [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: | {{updated|18}} | ||
[[Category:JSON-RPC]] |
Latest revision as of 01:21, 20 September 2020
JSON-RPC Pages |
---|
Main JSON-RPC Page |
- v8 (Krypton) |
- v10 (Leia) |
- v12 (Matrix) |
- v13 (Nexus) |
- v14 (Omega) |
Examples |
All JSON-RPC Pages |
Development | JSON-RPC API | v10 |
Version 10 is the stable version of Kodi's JSON-RPC API and is published with the release of v18 (Leia). This document has been updated to version 10.3.0. Recent changes are announced on the forum
It comes with support for WebSockets as an alternative transport for third party clients. Using WebSockets will allow webinterfaces (which are currently restricted to the HTTP transport only) to get access to a bidirectional transport with Kodi's JSON-RPC API and can therefore also profit from additional features like notifications.
JSON-RPC 2.0 compatibility
Version | Method calls | Notifications (server-side) |
Notifications (client-side) |
Parameters by-name |
Parameters by-position |
Batch requests |
---|---|---|---|---|---|---|
Version 6 | Yes | Yes | Yes | Yes | Yes | Yes |
Documentation (JSON Schema)
Supported features of JSON Schema
Schema | IETF Draft 03 |
---|---|
type | Yes |
properties | Yes |
patternProperties | No |
additionalProperties | Yes |
items | Yes |
additionalItems | Yes |
required | Yes |
dependencies | No |
minimum | Yes |
maximum | Yes |
Schema | IETF Draft 03 |
---|---|
exclusiveMinimum | Yes |
exclusiveMaximum | Yes |
minItems | Yes |
maxItems | Yes |
uniqueItems | Yes |
pattern | No |
minLength | Yes |
maxLength | Yes |
enum | Yes |
default | Yes |
Schema | IETF Draft 03 |
---|---|
title | No |
description | Yes |
format | No |
divisibleBy | Yes |
disallow | No |
extends | Yes |
id | Yes |
$ref | Yes |
$schema | No |
Hyper Schema | No |
Error message
If Kodi detects a bad or missing parameter in a JSON-RPC request it returns an error object. The JSON schema description of that error object is
{ "type": "object", "properties": { "code": { "type": "integer", "required": true }, "message": { "type": "string", "required": true }, "data": { "type": "object", "properties": { "method": { "type": "string", "required": true }, "stack": { "type": "object", "id": "Error.Stack", "properties": { "name": { "type": "string", "required": true }, "type": { "type": "string", "required": true }, "message": { "type": "string", "required": true }, "property": { "$ref": "Error.Stack" } } } } } } } |
Namespaces
The Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:
Namespace | Description |
---|---|
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. |
PVR | Live TV control. |
Player | Manages all available players. |
Playlist | Playlist modification. |
Profiles | Support for Profiles operations to Kodi. |
Settings | Allows manipulation of Kodi settings. |
System | System controls and information. |
Textures | Supplies GetTextures and RemoveTexture. Textures are images. |
VideoLibrary | Video Library information. |
XBMC | Dumping ground for very Kodi specific operations. |
Methods
Addons
Addons.ExecuteAddon
Executes the given addon with the given parameters (if possible)
Permissions:
- ExecuteAddon
Parameters:
- string addonid
- [mixed: object|array|string params = ""]
- [boolean wait = False]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": "string", "name": "addonid" }, { "default": "", "type": [ { "additionalProperties": { "default": "", "type": "string" }, "type": "object" }, { "items": { "type": "string" }, "type": "array" }, { "type": "string", "description": "URL path (must start with / or ?" } ], "name": "params" }, { "default": false, "type": "boolean", "name": "wait" } ], "description": "Executes the given addon with the given parameters (if possible)", "permission": "ExecuteAddon" } |
Addons.GetAddonDetails
Gets the details of a specific addon
Permissions:
- ReadData
Parameters:
- string addonid
- [Addon.Fields properties]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- Addon.Details addon
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "addon": { "required": true, "$ref": "Addon.Details" } } }, "params": [ { "required": true, "type": "string", "name": "addonid" }, { "name": "properties", "$ref": "Addon.Fields" } ], "description": "Gets the details of a specific addon", "permission": "ReadData" } |
Addons.GetAddons
Gets all available addons
Permissions:
- ReadData
Parameters:
- [Addon.Types type = unknown]
- [Addon.Content content = unknown] (Content provided by the addon. Only considered for plugins and scripts.)
- [mixed: boolean|string enabled = all]
- [Addon.Fields properties]
- [List.Limits limits]
- [mixed: boolean|string installed = True]
Returns:
Type: object
Properties:
- [array[ Addon.Details ] addons]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "addons": { "items": { "$ref": "Addon.Details" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "default": "unknown", "name": "type", "$ref": "Addon.Types" }, { "default": "unknown", "description": "Content provided by the addon. Only considered for plugins and scripts.", "name": "content", "$ref": "Addon.Content" }, { "default": "all", "type": [ { "type": "boolean" }, { "enums": [ "all" ], "type": "string" } ], "name": "enabled" }, { "name": "properties", "$ref": "Addon.Fields" }, { "name": "limits", "$ref": "List.Limits" }, { "default": true, "type": [ { "type": "boolean" }, { "enums": [ "all" ], "type": "string" } ], "name": "installed" } ], "description": "Gets all available addons", "permission": "ReadData" } |
Addons.SetAddonEnabled
Enables/Disables a specific addon
Permissions:
- ManageAddon
Parameters:
- string addonid
- Global.Toggle enabled
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": "string", "name": "addonid" }, { "required": true, "name": "enabled", "$ref": "Global.Toggle" } ], "description": "Enables/Disables a specific addon", "permission": "ManageAddon" } |
Application
Application.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- array[ Application.Property.Name ] properties
Returns:
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "Application.Property.Value" }, "params": [ { "uniqueItems": true, "items": { "$ref": "Application.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties", "permission": "ReadData" } |
Application.Quit
Quit application
Permissions:
- ControlPower
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Quit application", "permission": "ControlPower" } |
Application.SetMute
Toggle mute/unmute
Permissions:
- ControlPlayback
Parameters:
- Global.Toggle mute
Returns:
Type: boolean (Mute state)
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "boolean", "description": "Mute state" }, "params": [ { "required": true, "name": "mute", "$ref": "Global.Toggle" } ], "description": "Toggle mute/unmute", "permission": "ControlPlayback" } |
Application.SetVolume
Set the current volume
Permissions:
- ControlPlayback
Parameters:
- mixed: integer|Global.IncrementDecrement volume
Returns:
Type: integer
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "integer" }, "params": [ { "required": true, "type": [ { "minimum": 0, "type": "integer", "maximum": 100 }, { "$ref": "Global.IncrementDecrement" } ], "name": "volume" } ], "description": "Set the current volume", "permission": "ControlPlayback" } |
AudioLibrary
AudioLibrary.Clean
Cleans the audio library from non-existent items
Permissions:
- RemoveData
Parameters:
- [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "default": true, "type": "boolean", "description": "Whether or not to show the progress bar or any other GUI dialog", "name": "showdialogs" } ], "description": "Cleans the audio library from non-existent items", "permission": "RemoveData" } |
AudioLibrary.Export
Exports all items from the audio library
Permissions:
- WriteFile
Parameters:
- [mixed: object|object options]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "type": [ { "additionalProperties": false, "type": "object", "properties": { "path": { "minLength": 1, "required": true, "type": "string", "description": "Path to the directory to where the data should be exported" } } }, { "additionalProperties": false, "type": "object", "properties": { "images": { "default": false, "type": "boolean", "description": "Whether to export thumbnails and fanart images" }, "overwrite": { "default": false, "type": "boolean", "description": "Whether to overwrite existing exported files" } } } ], "name": "options" } ], "description": "Exports all items from the audio library", "permission": "WriteFile" } |
AudioLibrary.GetAlbumDetails
Retrieve details about a specific album
Permissions:
- ReadData
Parameters:
- Library.Id albumid
- [Audio.Fields.Album properties]
Returns:
Type: object
Properties:
- [Audio.Details.Album albumdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "albumdetails": { "$ref": "Audio.Details.Album" } } }, "params": [ { "required": true, "name": "albumid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Album" } ], "description": "Retrieve details about a specific album", "permission": "ReadData" } |
AudioLibrary.GetAlbums
Retrieve all albums from specified artist (and role) or that has songs of the specified genre
Permissions:
- ReadData
Parameters:
- [Audio.Fields.Album properties]
- [List.Limits limits]
- [List.Sort sort]
- [mixed: object|object|object|object|object|object|object|object|List.Filter.Albums filter]
- [boolean includesingles = False]
- [boolean allroles = False] (Whether or not to include all roles when filtering by artist, rather than the default of excluding other contributions. When true it overrides any role filter value.)
Returns:
Type: object
Properties:
- [array[ Audio.Details.Album ] albums]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "albums": { "items": { "$ref": "Audio.Details.Album" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Audio.Fields.Album" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "description": "Song genre. Filter for existence of songs with this genre", "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genre": { "minLength": 1, "required": true, "type": "string", "description": "Song genre. Filter for existence of songs with this genre" } } }, { "additionalProperties": false, "type": "object", "properties": { "artistid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "artistid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "artistid": { "required": true, "$ref": "Library.Id" }, "role": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "artist": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "artist": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "role": { "minLength": 1, "required": true, "type": "string" }, "artist": { "minLength": 1, "required": true, "type": "string" } } }, { "$ref": "List.Filter.Albums" } ], "name": "filter" }, { "default": false, "type": "boolean", "name": "includesingles" }, { "default": false, "type": "boolean", "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.", "name": "allroles" } ], "description": "Retrieve all albums from specified artist (and role) or that has songs of the specified genre", "permission": "ReadData" } |
AudioLibrary.GetArtistDetails
Retrieve details about a specific artist
Permissions:
- ReadData
Parameters:
- Library.Id artistid
- [Audio.Fields.Artist properties]
Returns:
Type: object
Properties:
- [Audio.Details.Artist artistdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "artistdetails": { "$ref": "Audio.Details.Artist" } } }, "params": [ { "required": true, "name": "artistid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Artist" } ], "description": "Retrieve details about a specific artist", "permission": "ReadData" } |
AudioLibrary.GetArtists
Retrieve all artists. For backward compatibility by default this implicity does not include those that only contribute other roles, however absolutely all artists can be returned using allroles=true
Permissions:
- ReadData
Parameters:
- [Optional.Boolean albumartistsonly = None] (Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used)
- [Audio.Fields.Artist properties]
- [List.Limits limits]
- [List.Sort sort]
- [mixed: object|object|object|object|object|object|object|object|object|object|object|object|object|object|object|List.Filter.Artists filter]
- [boolean allroles = False] (Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.)
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [array[ Audio.Details.Artist ] artists]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "artists": { "items": { "$ref": "Audio.Details.Artist" }, "type": "array" } } }, "params": [ { "default": null, "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": "albumartistsonly", "$ref": "Optional.Boolean" }, { "name": "properties", "$ref": "Audio.Fields.Artist" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "description": "Deprecated, use songgenreid. Filter for existence of songs with this genre", "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "songgenreid": { "required": true, "description": "Song genreid. Filter for existence of songs with this genre", "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "songgenreid": { "required": true, "$ref": "Library.Id" }, "roleid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "songgenreid": { "required": true, "$ref": "Library.Id" }, "role": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "genre": { "minLength": 1, "required": true, "type": "string", "description": "Deprecated, use songgenre. Filter for existence of songs with this genre" } } }, { "additionalProperties": false, "type": "object", "properties": { "songgenre": { "minLength": 1, "required": true, "type": "string", "description": "Song genre. Filter for existence of songs with this genre" } } }, { "additionalProperties": false, "type": "object", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "songgenre": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "role": { "minLength": 1, "required": true, "type": "string" }, "songgenre": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "albumid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "album": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "songid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "songid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "songid": { "required": true, "$ref": "Library.Id" }, "role": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "roleid": { "required": true, "description": "Role contributed by artist. Overridden by allroles parameter", "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "role": { "minLength": 1, "required": true, "type": "string", "description": "Role contributed by artist. Overridden by allroles parameter" } } }, { "$ref": "List.Filter.Artists" } ], "name": "filter" }, { "default": false, "type": "boolean", "description": "Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.", "name": "allroles" } ], "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", "permission": "ReadData" } |
AudioLibrary.GetGenres
Retrieve all genres
Permissions:
- ReadData
Parameters:
- [Library.Fields.Genre properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- array[ Library.Details.Genre ] genres
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "genres": { "items": { "$ref": "Library.Details.Genre" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Library.Fields.Genre" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all genres", "permission": "ReadData" } |
AudioLibrary.GetProperties
Retrieves the values of the music library properties
Permissions:
- ReadData
Parameters:
- array[ Audio.Property.Name ] properties
Returns:
Type: Audio.Property.Value
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "Audio.Property.Value" }, "params": [ { "uniqueItems": true, "items": { "$ref": "Audio.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the music library properties", "permission": "ReadData" } |
AudioLibrary.GetRecentlyAddedAlbums
Retrieve recently added albums
Permissions:
- ReadData
Parameters:
- [Audio.Fields.Album properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- [array[ Audio.Details.Album ] albums]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "albums": { "items": { "$ref": "Audio.Details.Album" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Audio.Fields.Album" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve recently added albums", "permission": "ReadData" } |
AudioLibrary.GetRecentlyAddedSongs
Retrieve recently added songs
Permissions:
- ReadData
Parameters:
- [List.Amount albumlimit = -1] (The amount of recently added albums from which to return the songs)
- [Audio.Fields.Song properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [array[ Audio.Details.Song ] songs]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "songs": { "items": { "$ref": "Audio.Details.Song" }, "type": "array" } } }, "params": [ { "default": -1, "description": "The amount of recently added albums from which to return the songs", "name": "albumlimit", "$ref": "List.Amount" }, { "name": "properties", "$ref": "Audio.Fields.Song" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve recently added songs", "permission": "ReadData" } |
AudioLibrary.GetRecentlyPlayedAlbums
Retrieve recently played albums
Permissions:
- ReadData
Parameters:
- [Audio.Fields.Album properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- [array[ Audio.Details.Album ] albums]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "albums": { "items": { "$ref": "Audio.Details.Album" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Audio.Fields.Album" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve recently played albums", "permission": "ReadData" } |
AudioLibrary.GetRecentlyPlayedSongs
Retrieve recently played songs
Permissions:
- ReadData
Parameters:
- [Audio.Fields.Song properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [array[ Audio.Details.Song ] songs]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "songs": { "items": { "$ref": "Audio.Details.Song" }, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Audio.Fields.Song" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve recently played songs", "permission": "ReadData" } |
AudioLibrary.GetRoles
Retrieve all contributor roles
Permissions:
- ReadData
Parameters:
- [Audio.Fields.Role properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- array[ Audio.Details.Role ] roles
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "roles": { "items": { "$ref": "Audio.Details.Role" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Audio.Fields.Role" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all contributor roles", "permission": "ReadData" } |
AudioLibrary.GetSongDetails
Retrieve details about a specific song
Permissions:
- ReadData
Parameters:
- Library.Id songid
- [Audio.Fields.Song properties]
Returns:
Type: object
Properties:
- [Audio.Details.Song songdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "songdetails": { "$ref": "Audio.Details.Song" } } }, "params": [ { "required": true, "name": "songid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Audio.Fields.Song" } ], "description": "Retrieve details about a specific song", "permission": "ReadData" } |
AudioLibrary.GetSongs
Retrieve all songs from specified album, artist or genre
Permissions:
- ReadData
Parameters:
- [Audio.Fields.Song properties]
- [List.Limits limits]
- [List.Sort sort]
- [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Songs filter]
- [boolean includesingles = True] (Only songs from albums are returned when false, but overidden when singlesonly parameter is true)
- [boolean allroles = False] (Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value.)
- [boolean singlesonly = False] (Only singles are returned when true, and overides includesingles parameter)
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [array[ Audio.Details.Song ] songs]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "songs": { "items": { "$ref": "Audio.Details.Song" }, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Audio.Fields.Song" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "description": "Song genre. Filter for existence of songs with this genre", "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genre": { "minLength": 1, "required": true, "type": "string", "description": "Song genre. Filter for existence of songs with this genre" } } }, { "additionalProperties": false, "type": "object", "properties": { "artistid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "artistid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "artistid": { "required": true, "$ref": "Library.Id" }, "role": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "artist": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "artist": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "role": { "minLength": 1, "required": true, "type": "string" }, "artist": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "albumid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "album": { "minLength": 1, "required": true, "type": "string" } } }, { "$ref": "List.Filter.Songs" } ], "name": "filter" }, { "default": true, "type": "boolean", "description": "Only songs from albums are returned when false, but overidden when singlesonly parameter is true", "name": "includesingles" }, { "default": false, "type": "boolean", "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": "allroles" }, { "default": false, "type": "boolean", "description": "Only singles are returned when true, and overides includesingles parameter", "name": "singlesonly" } ], "description": "Retrieve all songs from specified album, artist or genre", "permission": "ReadData" } |
AudioLibrary.GetSources
Get all music sources, including unique ID
Permissions:
- ReadData
Parameters:
- [Library.Fields.Source properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- array[ Library.Details.Source ] sources
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "sources": { "items": { "$ref": "Library.Details.Source" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Library.Fields.Source" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Get all music sources, including unique ID", "permission": "ReadData" } |
AudioLibrary.Scan
Scans the audio sources for new library items
Permissions:
- UpdateData
Parameters:
- [string directory = ""]
- [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "default": "", "type": "string", "name": "directory" }, { "default": true, "type": "boolean", "description": "Whether or not to show the progress bar or any other GUI dialog", "name": "showdialogs" } ], "description": "Scans the audio sources for new library items", "permission": "UpdateData" } |
AudioLibrary.SetAlbumDetails
Update the given album with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id albumid
- [Optional.String title = None]
- [mixed: null|Array.String artist = None]
- [Optional.String description = None]
- [mixed: null|Array.String genre = None]
- [mixed: null|Array.String theme = None]
- [mixed: null|Array.String mood = None]
- [mixed: null|Array.String style = None]
- [Optional.String type = None]
- [Optional.String albumlabel = None]
- [Optional.Number rating = None]
- [Optional.Integer year = None]
- [Optional.Integer userrating = None]
- [Optional.Integer votes = None]
- [Optional.String musicbrainzalbumid = None]
- [Optional.String musicbrainzreleasegroupid = None]
- [Optional.String sortartist = None]
- [Optional.String displayartist = None]
- [mixed: null|Array.String musicbrainzalbumartistid = None]
- [mixed: null|Media.Artwork.Set art = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "albumid", "$ref": "Library.Id" }, { "default": null, "name": "title", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "artist" }, { "default": null, "name": "description", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "genre" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "theme" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "mood" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "style" }, { "default": null, "name": "type", "$ref": "Optional.String" }, { "default": null, "name": "albumlabel", "$ref": "Optional.String" }, { "default": null, "name": "rating", "$ref": "Optional.Number" }, { "default": null, "name": "year", "$ref": "Optional.Integer" }, { "default": null, "name": "userrating", "$ref": "Optional.Integer" }, { "default": null, "name": "votes", "$ref": "Optional.Integer" }, { "default": null, "name": "musicbrainzalbumid", "$ref": "Optional.String" }, { "default": null, "name": "musicbrainzreleasegroupid", "$ref": "Optional.String" }, { "default": null, "name": "sortartist", "$ref": "Optional.String" }, { "default": null, "name": "displayartist", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "musicbrainzalbumartistid" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" } ], "description": "Update the given album with the given details", "permission": "UpdateData" } |
AudioLibrary.SetArtistDetails
Update the given artist with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id artistid
- [Optional.String artist = None]
- [mixed: null|Array.String instrument = None]
- [mixed: null|Array.String style = None]
- [mixed: null|Array.String mood = None]
- [Optional.String born = None]
- [Optional.String formed = None]
- [Optional.String description = None]
- [mixed: null|Array.String genre = None]
- [Optional.String died = None]
- [Optional.String disbanded = None]
- [mixed: null|Array.String yearsactive = None]
- [Optional.String musicbrainzartistid = None]
- [Optional.String sortname = None]
- [Optional.String type = None]
- [Optional.String gender = None]
- [Optional.String disambiguation = None]
- [mixed: null|Media.Artwork.Set art = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "artistid", "$ref": "Library.Id" }, { "default": null, "name": "artist", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "instrument" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "style" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "mood" }, { "default": null, "name": "born", "$ref": "Optional.String" }, { "default": null, "name": "formed", "$ref": "Optional.String" }, { "default": null, "name": "description", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "genre" }, { "default": null, "name": "died", "$ref": "Optional.String" }, { "default": null, "name": "disbanded", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "yearsactive" }, { "default": null, "name": "musicbrainzartistid", "$ref": "Optional.String" }, { "default": null, "name": "sortname", "$ref": "Optional.String" }, { "default": null, "name": "type", "$ref": "Optional.String" }, { "default": null, "name": "gender", "$ref": "Optional.String" }, { "default": null, "name": "disambiguation", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" } ], "description": "Update the given artist with the given details", "permission": "UpdateData" } |
AudioLibrary.SetSongDetails
Update the given song with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id songid
- [Optional.String title = None]
- [mixed: null|Array.String artist = None]
- [mixed: null|Array.String genre = None]
- [Optional.Integer year = None]
- [Optional.Number rating = None]
- [Optional.Integer track = None]
- [Optional.Integer disc = None]
- [Optional.Integer duration = None]
- [Optional.String comment = None]
- [Optional.String musicbrainztrackid = None]
- [Optional.String musicbrainzartistid = None]
- [Optional.Integer playcount = None]
- [Optional.String lastplayed = None]
- [Optional.Integer userrating = None]
- [Optional.Integer votes = None]
- [Optional.String displayartist = None]
- [Optional.String sortartist = None]
- [Optional.String mood = None]
- [mixed: null|Media.Artwork.Set art = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "songid", "$ref": "Library.Id" }, { "default": null, "name": "title", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "artist" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "genre" }, { "default": null, "name": "year", "$ref": "Optional.Integer" }, { "default": null, "name": "rating", "$ref": "Optional.Number" }, { "default": null, "name": "track", "$ref": "Optional.Integer" }, { "default": null, "name": "disc", "$ref": "Optional.Integer" }, { "default": null, "name": "duration", "$ref": "Optional.Integer" }, { "default": null, "name": "comment", "$ref": "Optional.String" }, { "default": null, "name": "musicbrainztrackid", "$ref": "Optional.String" }, { "default": null, "name": "musicbrainzartistid", "$ref": "Optional.String" }, { "default": null, "name": "playcount", "$ref": "Optional.Integer" }, { "default": null, "name": "lastplayed", "$ref": "Optional.String" }, { "default": null, "name": "userrating", "$ref": "Optional.Integer" }, { "default": null, "name": "votes", "$ref": "Optional.Integer" }, { "default": null, "name": "displayartist", "$ref": "Optional.String" }, { "default": null, "name": "sortartist", "$ref": "Optional.String" }, { "default": null, "name": "mood", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" } ], "description": "Update the given song with the given details", "permission": "UpdateData" } |
Favourites
Favourites.AddFavourite
Add a favourite with the given details
Permissions:
- UpdateData
Parameters:
- string title
- Favourite.Type type
- [Optional.String path = None] (Required for media and script favourites types)
- [Optional.String window = None] (Required for window favourite type)
- [Optional.String windowparameter = None]
- [Optional.String thumbnail = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": "string", "name": "title" }, { "required": true, "name": "type", "$ref": "Favourite.Type" }, { "default": null, "description": "Required for media and script favourites types", "name": "path", "$ref": "Optional.String" }, { "default": null, "description": "Required for window favourite type", "name": "window", "$ref": "Optional.String" }, { "default": null, "name": "windowparameter", "$ref": "Optional.String" }, { "default": null, "name": "thumbnail", "$ref": "Optional.String" } ], "description": "Add a favourite with the given details", "permission": "UpdateData" } |
Favourites.GetFavourites
Retrieve all favourites
Permissions:
- ReadData
Parameters:
- [mixed: null|Favourite.Type type = None]
- [Favourite.Fields.Favourite properties]
Returns:
Type: object
Properties:
- [array[ Favourite.Details.Favourite ] favourites]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "favourites": { "items": { "$ref": "Favourite.Details.Favourite" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "default": null, "type": [ { "type": "null" }, { "$ref": "Favourite.Type" } ], "name": "type" }, { "name": "properties", "$ref": "Favourite.Fields.Favourite" } ], "description": "Retrieve all favourites", "permission": "ReadData" } |
Files
Files.GetDirectory
Get the directories and files in the given directory
Permissions:
- ReadData
Parameters:
- string directory
- [Files.Media media = files]
- [List.Fields.Files properties]
- [List.Sort sort]
- [List.Limits limits] (Limits are applied after getting the directory content thus retrieval is not faster when they are applied.)
Returns:
Type: object
Properties:
- array[ List.Item.File ] files
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "files": { "items": { "$ref": "List.Item.File" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "type": "string", "name": "directory" }, { "default": "files", "name": "media", "$ref": "Files.Media" }, { "name": "properties", "$ref": "List.Fields.Files" }, { "name": "sort", "$ref": "List.Sort" }, { "description": "Limits are applied after getting the directory content thus retrieval is not faster when they are applied.", "name": "limits", "$ref": "List.Limits" } ], "description": "Get the directories and files in the given directory", "permission": "ReadData" } |
Files.GetFileDetails
Get details for a specific file
Permissions:
- ReadData
Parameters:
- string file (Full path to the file)
- [Files.Media media = files]
- [List.Fields.Files properties]
Returns:
Type: object
Properties:
- List.Item.File filedetails
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "filedetails": { "required": true, "$ref": "List.Item.File" } } }, "params": [ { "required": true, "type": "string", "description": "Full path to the file", "name": "file" }, { "default": "files", "name": "media", "$ref": "Files.Media" }, { "name": "properties", "$ref": "List.Fields.Files" } ], "description": "Get details for a specific file", "permission": "ReadData" } |
Files.GetSources
Get the sources of the media windows
Permissions:
- ReadData
Parameters:
- Files.Media media
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- List.Items.Sources sources
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "sources": { "required": true, "$ref": "List.Items.Sources" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "media", "$ref": "Files.Media" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Get the sources of the media windows", "permission": "ReadData" } |
Files.SetFileDetails
Update the given specific file with the given details
Permissions:
- UpdateData
Parameters:
- string file (Full path to the file)
- Files.Media media (File type to update correct database. Currently only "video" is supported.)
- [Optional.Integer playcount = None]
- [Optional.String lastplayed = None] (Setting a valid lastplayed without a playcount will force playcount to 1.)
- [mixed: null|Video.Resume resume = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": "string", "description": "Full path to the file", "name": "file" }, { "required": true, "description": "File type to update correct database. Currently only \"video\" is supported.", "name": "media", "$ref": "Files.Media" }, { "default": null, "name": "playcount", "$ref": "Optional.Integer" }, { "default": null, "description": "Setting a valid lastplayed without a playcount will force playcount to 1.", "name": "lastplayed", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Video.Resume" } ], "name": "resume" } ], "description": "Update the given specific file with the given details", "permission": "UpdateData" } |
GUI
GUI.ActivateWindow
Activates the given window
Permissions:
- ControlGUI
Parameters:
- GUI.Window window
- [array[string] parameters]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "window", "$ref": "GUI.Window" }, { "minItems": 1, "items": { "minLength": 1, "type": "string" }, "type": "array", "name": "parameters" } ], "description": "Activates the given window", "permission": "ControlGUI" } |
GUI.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- array[ GUI.Property.Name ] properties
Returns:
Type: GUI.Property.Value
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "GUI.Property.Value" }, "params": [ { "uniqueItems": true, "items": { "$ref": "GUI.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties", "permission": "ReadData" } |
GUI.GetStereoscopicModes
Returns the supported stereoscopic modes of the GUI
Permissions:
- ReadData
Returns:
Type: object
Properties:
- [array[ GUI.Stereoscopy.Mode ] stereoscopicmodes]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "stereoscopicmodes": { "uniqueItems": true, "items": { "$ref": "GUI.Stereoscopy.Mode" }, "type": "array" } } }, "params": [], "description": "Returns the supported stereoscopic modes of the GUI", "permission": "ReadData" } |
GUI.SetFullscreen
Toggle fullscreen/GUI
Permissions:
- ControlGUI
Parameters:
- Global.Toggle fullscreen
Returns:
Type: boolean (Fullscreen state)
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "boolean", "description": "Fullscreen state" }, "params": [ { "required": true, "name": "fullscreen", "$ref": "Global.Toggle" } ], "description": "Toggle fullscreen/GUI", "permission": "ControlGUI" } |
GUI.SetStereoscopicMode
Sets the stereoscopic mode of the GUI to the given mode
Permissions:
- ControlGUI
Parameters:
- string mode
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "enums": [ "toggle", "tomono", "next", "previous", "select", "off", "split_vertical", "split_horizontal", "row_interleaved", "hardware_based", "anaglyph_cyan_red", "anaglyph_green_magenta", "monoscopic" ], "type": "string", "name": "mode", "required": true } ], "description": "Sets the stereoscopic mode of the GUI to the given mode", "permission": "ControlGUI" } |
GUI.ShowNotification
Shows a GUI notification
Permissions:
- ControlGUI
Parameters:
- string title
- string message
- [mixed: string|string image = ""]
- [integer displaytime = 5000] (The time in milliseconds the notification will be visible)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": "string", "name": "title" }, { "required": true, "type": "string", "name": "message" }, { "default": "", "type": [ { "enums": [ "info", "warning", "error" ], "type": "string" }, { "type": "string" } ], "name": "image" }, { "default": 5000, "minimum": 1500, "type": "integer", "description": "The time in milliseconds the notification will be visible", "name": "displaytime" } ], "description": "Shows a GUI notification", "permission": "ControlGUI" } |
Input
Input.Back
Goes back in GUI
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Goes back in GUI", "permission": "Navigate" } |
Input.ContextMenu
Shows the context menu
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Shows the context menu", "permission": "Navigate" } |
Input.Down
Navigate down in GUI
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Navigate down in GUI", "permission": "Navigate" } |
Input.ExecuteAction
Execute a specific action
Permissions:
- Navigate
Parameters:
- Input.Action action
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "action", "$ref": "Input.Action" } ], "description": "Execute a specific action", "permission": "Navigate" } |
Input.Home
Goes to home window in GUI
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Goes to home window in GUI", "permission": "Navigate" } |
Input.Info
Shows the information dialog
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Shows the information dialog", "permission": "Navigate" } |
Input.Left
Navigate left in GUI
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Navigate left in GUI", "permission": "Navigate" } |
Input.Right
Navigate right in GUI
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Navigate right in GUI", "permission": "Navigate" } |
Input.Select
Select current item in GUI
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Select current item in GUI", "permission": "Navigate" } |
Input.SendText
Send a generic (unicode) text
Permissions:
- Navigate
Parameters:
- string text (Unicode text)
- [boolean done = True] (Whether this is the whole input or not (closes an open input dialog if true).)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": "string", "description": "Unicode text", "name": "text" }, { "default": true, "type": "boolean", "description": "Whether this is the whole input or not (closes an open input dialog if true).", "name": "done" } ], "description": "Send a generic (unicode) text", "permission": "Navigate" } |
Input.ShowCodec
Show codec information of the playing item
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Show codec information of the playing item", "permission": "Navigate" } |
Input.ShowOSD
Show the on-screen display for the current player
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Show the on-screen display for the current player", "permission": "Navigate" } |
Input.ShowPlayerProcessInfo
Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...", "permission": "Navigate" } |
Input.Up
Navigate up in GUI
Permissions:
- Navigate
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Navigate up in GUI", "permission": "Navigate" } |
JSONRPC
JSONRPC.Introspect
Enumerates all actions and descriptions
Permissions:
- ReadData
Parameters:
- [boolean getdescriptions = True]
- [boolean getmetadata = False]
- [boolean filterbytransport = True]
- [object filter]
Returns:
Type: object
JSON Schema Description |
---|
{ "type": "method", "returns": { "additionalProperties": false, "type": "object" }, "params": [ { "default": true, "type": "boolean", "name": "getdescriptions" }, { "default": false, "type": "boolean", "name": "getmetadata" }, { "default": true, "type": "boolean", "name": "filterbytransport" }, { "type": "object", "name": "filter", "properties": { "type": { "enums": [ "method", "namespace", "type", "notification" ], "type": "string", "description": "Type of the given name", "required": true }, "id": { "required": true, "type": "string", "description": "Name of a namespace, method or type" }, "getreferences": { "default": true, "type": "boolean", "description": "Whether or not to print the schema for referenced types" } } } ], "description": "Enumerates all actions and descriptions", "permission": "ReadData" } |
JSONRPC.NotifyAll
Notify all other connected clients
Permissions:
- ReadData
Parameters:
- string sender
- string message
- [any data = None]
Returns:
Type: any
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "any" }, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "string", "name": "message" }, { "default": null, "type": "any", "name": "data" } ], "description": "Notify all other connected clients", "permission": "ReadData" } |
JSONRPC.Permission
Retrieve the clients permissions
Permissions:
- ReadData
Returns:
Type: object
Properties:
- boolean controlsystem
- boolean controlgui
- boolean controlplayback
- boolean readdata
- boolean executeaddon
- boolean writefile
- boolean updatedata
- boolean manageaddon
- boolean controlpvr
- boolean navigate
- boolean controlnotify
- boolean removedata
- boolean controlpower
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "controlsystem": { "required": true, "type": "boolean" }, "controlgui": { "required": true, "type": "boolean" }, "controlplayback": { "required": true, "type": "boolean" }, "readdata": { "required": true, "type": "boolean" }, "executeaddon": { "required": true, "type": "boolean" }, "writefile": { "required": true, "type": "boolean" }, "updatedata": { "required": true, "type": "boolean" }, "manageaddon": { "required": true, "type": "boolean" }, "controlpvr": { "required": true, "type": "boolean" }, "navigate": { "required": true, "type": "boolean" }, "controlnotify": { "required": true, "type": "boolean" }, "removedata": { "required": true, "type": "boolean" }, "controlpower": { "required": true, "type": "boolean" } } }, "params": [], "description": "Retrieve the clients permissions", "permission": "ReadData" } |
JSONRPC.Ping
Ping responder
Permissions:
- ReadData
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Ping responder", "permission": "ReadData" } |
JSONRPC.Version
Retrieve the JSON-RPC protocol version.
Permissions:
- ReadData
Returns:
Type: object
Properties:
- object version
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "version": { "required": true, "type": "object", "properties": { "major": { "minimum": 0, "type": "integer", "description": "Bumped on backwards incompatible changes to the API definition", "required": true }, "minor": { "minimum": 0, "type": "integer", "description": "Bumped on backwards compatible additions/changes to the API definition", "required": true }, "patch": { "minimum": 0, "type": "integer", "description": "Bumped on any changes to the internal implementation but not to the API definition", "required": true } } } } }, "params": [], "description": "Retrieve the JSON-RPC protocol version.", "permission": "ReadData" } |
PVR
PVR.AddTimer
Adds a timer to record the given show one times or a timer rule to record all showings of the given show
Permissions:
- ControlPVR
Parameters:
- Library.Id broadcastid (the broadcast id of the item to record)
- [boolean timerrule = False] (controls whether to create a timer rule or a onetime timer)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "description": "the broadcast id of the item to record", "name": "broadcastid", "$ref": "Library.Id" }, { "default": false, "type": "boolean", "description": "controls whether to create a timer rule or a onetime timer", "name": "timerrule" } ], "description": "Adds a timer to record the given show one times or a timer rule to record all showings of the given show", "permission": "ControlPVR" } |
PVR.DeleteTimer
Deletes a onetime timer or a timer rule
Permissions:
- ControlPVR
Parameters:
- Library.Id timerid (the id of the onetime timer or timer rule to delete)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "description": "the id of the onetime timer or timer rule to delete", "name": "timerid", "$ref": "Library.Id" } ], "description": "Deletes a onetime timer or a timer rule", "permission": "ControlPVR" } |
PVR.GetBroadcastDetails
Retrieves the details of a specific broadcast
Permissions:
- ReadData
Parameters:
- Library.Id broadcastid
- [PVR.Fields.Broadcast properties]
Returns:
Type: object
Properties:
- [PVR.Details.Broadcast broadcastdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "broadcastdetails": { "$ref": "PVR.Details.Broadcast" } } }, "params": [ { "required": true, "name": "broadcastid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "PVR.Fields.Broadcast" } ], "description": "Retrieves the details of a specific broadcast", "permission": "ReadData" } |
PVR.GetBroadcasts
Retrieves the program of a specific channel
Permissions:
- ReadData
Parameters:
- Library.Id channelid
- [PVR.Fields.Broadcast properties]
- [List.Limits limits]
Returns:
Type: object
Properties:
- array[ PVR.Details.Broadcast ] broadcasts
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "broadcasts": { "items": { "$ref": "PVR.Details.Broadcast" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "channelid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "PVR.Fields.Broadcast" }, { "name": "limits", "$ref": "List.Limits" } ], "description": "Retrieves the program of a specific channel", "permission": "ReadData" } |
PVR.GetChannelDetails
Retrieves the details of a specific channel
Permissions:
- ReadData
Parameters:
- Library.Id channelid
- [PVR.Fields.Channel properties]
Returns:
Type: object
Properties:
- [PVR.Details.Channel channeldetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "channeldetails": { "$ref": "PVR.Details.Channel" } } }, "params": [ { "required": true, "name": "channelid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "PVR.Fields.Channel" } ], "description": "Retrieves the details of a specific channel", "permission": "ReadData" } |
PVR.GetChannelGroupDetails
Retrieves the details of a specific channel group
Permissions:
- ReadData
Parameters:
- PVR.ChannelGroup.Id channelgroupid
- [object channels]
Returns:
Type: object
Properties:
- [PVR.Details.ChannelGroup.Extended channelgroupdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "channelgroupdetails": { "$ref": "PVR.Details.ChannelGroup.Extended" } } }, "params": [ { "required": true, "name": "channelgroupid", "$ref": "PVR.ChannelGroup.Id" }, { "type": "object", "name": "channels", "properties": { "properties": { "$ref": "PVR.Fields.Channel" }, "limits": { "$ref": "List.Limits" } } } ], "description": "Retrieves the details of a specific channel group", "permission": "ReadData" } |
PVR.GetChannelGroups
Retrieves the channel groups for the specified type
Permissions:
- ReadData
Parameters:
- PVR.Channel.Type channeltype
- [List.Limits limits]
Returns:
Type: object
Properties:
- array[ PVR.Details.ChannelGroup ] channelgroups
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "channelgroups": { "items": { "$ref": "PVR.Details.ChannelGroup" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "channeltype", "$ref": "PVR.Channel.Type" }, { "name": "limits", "$ref": "List.Limits" } ], "description": "Retrieves the channel groups for the specified type", "permission": "ReadData" } |
PVR.GetChannels
Retrieves the channel list
Permissions:
- ReadData
Parameters:
- PVR.ChannelGroup.Id channelgroupid
- [PVR.Fields.Channel properties]
- [List.Limits limits]
Returns:
Type: object
Properties:
- array[ PVR.Details.Channel ] channels
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "channels": { "items": { "$ref": "PVR.Details.Channel" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "channelgroupid", "$ref": "PVR.ChannelGroup.Id" }, { "name": "properties", "$ref": "PVR.Fields.Channel" }, { "name": "limits", "$ref": "List.Limits" } ], "description": "Retrieves the channel list", "permission": "ReadData" } |
PVR.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- array[ PVR.Property.Name ] properties
Returns:
Type: PVR.Property.Value
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "PVR.Property.Value" }, "params": [ { "uniqueItems": true, "items": { "$ref": "PVR.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties", "permission": "ReadData" } |
PVR.GetRecordingDetails
Retrieves the details of a specific recording
Permissions:
- ReadData
Parameters:
- Library.Id recordingid
- [PVR.Fields.Recording properties]
Returns:
Type: object
Properties:
- [PVR.Details.Recording recordingdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "recordingdetails": { "$ref": "PVR.Details.Recording" } } }, "params": [ { "required": true, "name": "recordingid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "PVR.Fields.Recording" } ], "description": "Retrieves the details of a specific recording", "permission": "ReadData" } |
PVR.GetRecordings
Retrieves the recordings
Permissions:
- ReadData
Parameters:
- [PVR.Fields.Recording properties]
- [List.Limits limits]
Returns:
Type: object
Properties:
- array[ PVR.Details.Recording ] recordings
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "recordings": { "items": { "$ref": "PVR.Details.Recording" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "PVR.Fields.Recording" }, { "name": "limits", "$ref": "List.Limits" } ], "description": "Retrieves the recordings", "permission": "ReadData" } |
PVR.GetTimerDetails
Retrieves the details of a specific timer
Permissions:
- ReadData
Parameters:
- Library.Id timerid
- [PVR.Fields.Timer properties]
Returns:
Type: object
Properties:
- [PVR.Details.Timer timerdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "timerdetails": { "$ref": "PVR.Details.Timer" } } }, "params": [ { "required": true, "name": "timerid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "PVR.Fields.Timer" } ], "description": "Retrieves the details of a specific timer", "permission": "ReadData" } |
PVR.GetTimers
Retrieves the timers
Permissions:
- ReadData
Parameters:
- [PVR.Fields.Timer properties]
- [List.Limits limits]
Returns:
Type: object
Properties:
- array[ PVR.Details.Timer ] timers
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "timers": { "items": { "$ref": "PVR.Details.Timer" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "PVR.Fields.Timer" }, { "name": "limits", "$ref": "List.Limits" } ], "description": "Retrieves the timers", "permission": "ReadData" } |
PVR.Record
Toggle recording of a channel
Permissions:
- ControlPVR
Parameters:
- [Global.Toggle record = toggle]
- [mixed: string|Library.Id channel = current]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "default": "toggle", "name": "record", "$ref": "Global.Toggle" }, { "default": "current", "type": [ { "enums": [ "current" ], "type": "string" }, { "$ref": "Library.Id" } ], "name": "channel" } ], "description": "Toggle recording of a channel", "permission": "ControlPVR" } |
PVR.Scan
Starts a channel scan
Permissions:
- ControlPVR
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Starts a channel scan", "permission": "ControlPVR" } |
PVR.ToggleTimer
Creates or deletes a onetime timer or timer rule for a given show. If it exists, it will be deleted. If it does not exist, it will be created
Permissions:
- ControlPVR
Parameters:
- Library.Id broadcastid (the broadcast id of the item to toggle a onetime timer or time rule for)
- [boolean timerrule = False] (controls whether to create / delete a timer rule or a onetime timer)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "description": "the broadcast id of the item to toggle a onetime timer or time rule for", "name": "broadcastid", "$ref": "Library.Id" }, { "default": false, "type": "boolean", "description": "controls whether to create / delete a timer rule or a onetime timer", "name": "timerrule" } ], "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", "permission": "ControlPVR" } |
Player
Player.GetActivePlayers
Returns all active players
Permissions:
- ReadData
Returns:
Type: array
JSON Schema Description |
---|
{ "type": "method", "returns": { "uniqueItems": true, "items": { "type": "object", "properties": { "playerid": { "required": true, "$ref": "Player.Id" }, "type": { "required": true, "$ref": "Player.Type" }, "playertype": { "enums": [ "internal", "external", "remote" ], "type": "string", "required": true } } }, "type": "array" }, "params": [], "description": "Returns all active players", "permission": "ReadData" } |
Player.GetItem
Retrieves the currently played item
Permissions:
- ReadData
Parameters:
- Player.Id playerid
- [List.Fields.All properties]
Returns:
Type: object
Properties:
- List.Item.All item
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "item": { "required": true, "$ref": "List.Item.All" } } }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "name": "properties", "$ref": "List.Fields.All" } ], "description": "Retrieves the currently played item", "permission": "ReadData" } |
Player.GetPlayers
Get a list of available players
Permissions:
- ReadData
Parameters:
- [string media = all]
Returns:
Type: array
JSON Schema Description |
---|
{ "type": "method", "returns": { "uniqueItems": true, "items": { "type": "object", "properties": { "playsvideo": { "required": true, "type": "boolean" }, "type": { "enums": [ "internal", "external", "remote" ], "type": "string", "required": true }, "name": { "required": true, "$ref": "Global.String.NotEmpty" }, "playsaudio": { "required": true, "type": "boolean" } } }, "type": "array" }, "params": [ { "default": "all", "enums": [ "all", "video", "audio" ], "type": "string", "name": "media" } ], "description": "Get a list of available players", "permission": "ReadData" } |
Player.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- Player.Id playerid
- array[ Player.Property.Name ] properties
Returns:
Type: Player.Property.Value
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "Player.Property.Value" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "uniqueItems": true, "items": { "$ref": "Player.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties", "permission": "ReadData" } |
Player.GetViewMode
Get view mode of video player
Permissions:
- ReadData
Returns:
Type: object
Properties:
- boolean nonlinearstretch
- number verticalshift
- number pixelratio
- Player.ViewMode viewmode
- number zoom
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "nonlinearstretch": { "required": true, "type": "boolean" }, "verticalshift": { "required": true, "type": "number" }, "pixelratio": { "required": true, "type": "number" }, "viewmode": { "required": true, "$ref": "Player.ViewMode" }, "zoom": { "required": true, "type": "number" } } }, "params": [], "description": "Get view mode of video player", "permission": "ReadData" } |
Player.GoTo
Go to previous/next/specific item in the playlist
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: string|Playlist.Position to
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ "previous", "next" ], "type": "string" }, { "description": "position in playlist", "$ref": "Playlist.Position" } ], "name": "to" } ], "description": "Go to previous/next/specific item in the playlist", "permission": "ControlPlayback" } |
Player.Move
If picture is zoomed move viewport left/right/up/down otherwise skip previous/next
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- string direction
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "enums": [ "left", "right", "up", "down" ], "type": "string", "name": "direction", "required": true } ], "description": "If picture is zoomed move viewport left/right/up/down otherwise skip previous/next", "permission": "ControlPlayback" } |
Player.Open
Start playback of either the playlist with the given ID, a slideshow with the pictures from the given directory or a single file or an item from the database.
Permissions:
- ControlPlayback
Parameters:
- [mixed: object|Playlist.Item|object|object|object|object item]
- [object options]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "type": [ { "additionalProperties": false, "type": "object", "properties": { "position": { "default": 0, "$ref": "Playlist.Position" }, "playlistid": { "required": true, "$ref": "Playlist.Id" } } }, { "$ref": "Playlist.Item" }, { "additionalProperties": false, "type": "object", "properties": { "path": { "required": true, "type": "string" }, "random": { "default": true, "type": "boolean", "description": "Deprecated, use the shuffled property of the options parameter instead" }, "recursive": { "default": true, "type": "boolean" } } }, { "additionalProperties": false, "type": "object", "properties": { "partymode": { "default": "", "type": [ { "enums": [ "music", "video" ], "type": "string" }, { "minLength": 5, "type": "string", "description": "Path to a smartplaylist (*.xsp) file" } ] } } }, { "additionalProperties": false, "type": "object", "properties": { "channelid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "recordingid": { "required": true, "$ref": "Library.Id" } } } ], "name": "item" }, { "additionalProperties": false, "type": "object", "name": "options", "properties": { "playername": { "default": null, "type": [ { "type": "null" }, { "enums": [ "default" ], "type": "string" }, { "minLength": 1, "type": "string", "description": "name of player" } ] }, "repeat": { "default": null, "type": [ { "type": "null" }, { "$ref": "Player.Repeat" } ] }, "shuffled": { "default": null, "$ref": "Optional.Boolean" }, "resume": { "default": false, "type": [ { "type": "boolean", "description": "Whether to resume from the resume point or not" }, { "description": "Percentage value to start from", "$ref": "Player.Position.Percentage" }, { "description": "Time to start from", "$ref": "Player.Position.Time" } ] } } } ], "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.", "permission": "ControlPlayback" } |
Player.PlayPause
Pauses or unpause playback and returns the new state
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- [Global.Toggle play = toggle]
Returns:
Type: Player.Speed
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "Player.Speed" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "default": "toggle", "name": "play", "$ref": "Global.Toggle" } ], "description": "Pauses or unpause playback and returns the new state", "permission": "ControlPlayback" } |
Player.Rotate
Rotates current picture
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- [string value = clockwise]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "default": "clockwise", "enums": [ "clockwise", "counterclockwise" ], "type": "string", "name": "value" } ], "description": "Rotates current picture", "permission": "ControlPlayback" } |
Player.Seek
Seek through the playing item
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: Player.Position.Percentage|Player.Position.Time|string|object|object|object|object value
Returns:
Type: object
Properties:
- [Global.Time totaltime]
- [Player.Position.Percentage percentage]
- [Global.Time time]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "totaltime": { "$ref": "Global.Time" }, "percentage": { "default": 0.0, "$ref": "Player.Position.Percentage" }, "time": { "$ref": "Global.Time" } } }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "description": "Percentage value to seek to", "$ref": "Player.Position.Percentage" }, { "description": "Time to seek to", "$ref": "Player.Position.Time" }, { "enums": [ "smallforward", "smallbackward", "bigforward", "bigbackward" ], "type": "string", "description": "Seek by predefined jumps" }, { "additionalProperties": false, "type": "object", "properties": { "percentage": { "required": true, "description": "Percentage value to seek to", "$ref": "Player.Position.Percentage" } } }, { "additionalProperties": false, "type": "object", "properties": { "time": { "required": true, "description": "Time to seek to", "$ref": "Player.Position.Time" } } }, { "additionalProperties": false, "type": "object", "properties": { "step": { "enums": [ "smallforward", "smallbackward", "bigforward", "bigbackward" ], "type": "string", "description": "Seek by predefined jumps", "required": true } } }, { "additionalProperties": false, "type": "object", "properties": { "seconds": { "required": true, "type": "integer", "description": "Seek by the given number of seconds" } } } ], "name": "value" } ], "description": "Seek through the playing item", "permission": "ControlPlayback" } |
Player.SetAudioStream
Set the audio stream played by the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: string|integer stream
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ "previous", "next" ], "type": "string" }, { "minimum": 0, "type": "integer", "description": "Index of the audio stream to play" } ], "name": "stream" } ], "description": "Set the audio stream played by the player", "permission": "ControlPlayback" } |
Player.SetPartymode
Turn partymode on or off
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- Global.Toggle partymode
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "name": "partymode", "$ref": "Global.Toggle" } ], "description": "Turn partymode on or off", "permission": "ControlPlayback" } |
Player.SetRepeat
Set the repeat mode of the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: Player.Repeat|string repeat
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "$ref": "Player.Repeat" }, { "enums": [ "cycle" ], "type": "string" } ], "name": "repeat" } ], "description": "Set the repeat mode of the player", "permission": "ControlPlayback" } |
Player.SetShuffle
Shuffle/Unshuffle items in the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- Global.Toggle shuffle
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "name": "shuffle", "$ref": "Global.Toggle" } ], "description": "Shuffle/Unshuffle items in the player", "permission": "ControlPlayback" } |
Player.SetSpeed
Set the speed of the current playback
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: integer|Global.IncrementDecrement speed
Returns:
Type: Player.Speed
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "Player.Speed" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ -32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 32 ], "type": "integer" }, { "$ref": "Global.IncrementDecrement" } ], "name": "speed" } ], "description": "Set the speed of the current playback", "permission": "ControlPlayback" } |
Player.SetSubtitle
Set the subtitle displayed by the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: string|integer subtitle
- [boolean enable = False] (Whether to enable subtitles to be displayed after setting the new subtitle)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ "previous", "next", "off", "on" ], "type": "string" }, { "minimum": 0, "type": "integer", "description": "Index of the subtitle to display" } ], "name": "subtitle" }, { "default": false, "type": "boolean", "description": "Whether to enable subtitles to be displayed after setting the new subtitle", "name": "enable" } ], "description": "Set the subtitle displayed by the player", "permission": "ControlPlayback" } |
Player.SetVideoStream
Set the video stream played by the player
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: string|integer stream
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ "previous", "next" ], "type": "string" }, { "minimum": 0, "type": "integer", "description": "Index of the video stream to play" } ], "name": "stream" } ], "description": "Set the video stream played by the player", "permission": "ControlPlayback" } |
Player.SetViewMode
Set view mode of video player
Permissions:
- ControlPlayback
Parameters:
- mixed: Player.CustomViewMode|Player.ViewMode viewmode
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": [ { "description": "Custom view mode", "$ref": "Player.CustomViewMode" }, { "$ref": "Player.ViewMode" } ], "name": "viewmode" } ], "description": "Set view mode of video player", "permission": "ControlPlayback" } |
Player.Stop
Stops playback
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" } ], "description": "Stops playback", "permission": "ControlPlayback" } |
Player.Zoom
Zoom current picture
Permissions:
- ControlPlayback
Parameters:
- Player.Id playerid
- mixed: string|integer zoom
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playerid", "$ref": "Player.Id" }, { "required": true, "type": [ { "enums": [ "in", "out" ], "type": "string" }, { "minimum": 1, "type": "integer", "description": "zoom level", "maximum": 10 } ], "name": "zoom" } ], "description": "Zoom current picture", "permission": "ControlPlayback" } |
Playlist
Playlist.Add
Add item(s) to playlist
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- mixed: Playlist.Item|array item
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "type": [ { "$ref": "Playlist.Item" }, { "items": { "$ref": "Playlist.Item" }, "type": "array" } ], "name": "item" } ], "description": "Add item(s) to playlist", "permission": "ControlPlayback" } |
Playlist.Clear
Clear playlist
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" } ], "description": "Clear playlist", "permission": "ControlPlayback" } |
Playlist.GetItems
Get all items from playlist
Permissions:
- ReadData
Parameters:
- Playlist.Id playlistid
- [List.Fields.All properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- array[ List.Item.All ] items
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "items": { "items": { "$ref": "List.Item.All" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "name": "properties", "$ref": "List.Fields.All" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Get all items from playlist", "permission": "ReadData" } |
Playlist.GetPlaylists
Returns all existing playlists
Permissions:
- ReadData
Returns:
Type: array
JSON Schema Description |
---|
{ "type": "method", "returns": { "uniqueItems": true, "items": { "type": "object", "properties": { "playlistid": { "required": true, "$ref": "Playlist.Id" }, "type": { "required": true, "$ref": "Playlist.Type" } } }, "type": "array" }, "params": [], "description": "Returns all existing playlists", "permission": "ReadData" } |
Playlist.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- Playlist.Id playlistid
- array[ Playlist.Property.Name ] properties
Returns:
Type: Playlist.Property.Value
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "Playlist.Property.Value" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "uniqueItems": true, "items": { "$ref": "Playlist.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties", "permission": "ReadData" } |
Playlist.Insert
Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- Playlist.Position position
- mixed: Playlist.Item|array item
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "name": "position", "$ref": "Playlist.Position" }, { "required": true, "type": [ { "$ref": "Playlist.Item" }, { "items": { "$ref": "Playlist.Item" }, "type": "array" } ], "name": "item" } ], "description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).", "permission": "ControlPlayback" } |
Playlist.Remove
Remove item from playlist. Does not work for picture playlists (aka slideshows).
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- Playlist.Position position
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "name": "position", "$ref": "Playlist.Position" } ], "description": "Remove item from playlist. Does not work for picture playlists (aka slideshows).", "permission": "ControlPlayback" } |
Playlist.Swap
Swap items in the playlist. Does not work for picture playlists (aka slideshows).
Permissions:
- ControlPlayback
Parameters:
- Playlist.Id playlistid
- Playlist.Position position1
- Playlist.Position position2
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "playlistid", "$ref": "Playlist.Id" }, { "required": true, "name": "position1", "$ref": "Playlist.Position" }, { "required": true, "name": "position2", "$ref": "Playlist.Position" } ], "description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows).", "permission": "ControlPlayback" } |
Profiles
Profiles.GetCurrentProfile
Retrieve the current profile
Permissions:
- ReadData
Parameters:
- [Profiles.Fields.Profile properties]
Returns:
Type: Profiles.Details.Profile
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "Profiles.Details.Profile" }, "params": [ { "name": "properties", "$ref": "Profiles.Fields.Profile" } ], "description": "Retrieve the current profile", "permission": "ReadData" } |
Profiles.GetProfiles
Retrieve all profiles
Permissions:
- ReadData
Parameters:
- [Profiles.Fields.Profile properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- array[ Profiles.Details.Profile ] profiles
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "profiles": { "items": { "$ref": "Profiles.Details.Profile" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Profiles.Fields.Profile" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all profiles", "permission": "ReadData" } |
Profiles.LoadProfile
Load the specified profile
Permissions:
- Navigate
Parameters:
- string profile (Profile name)
- [boolean prompt = False] (Prompt for password)
- [Profiles.Password password]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "type": "string", "description": "Profile name", "name": "profile" }, { "default": false, "type": "boolean", "description": "Prompt for password", "name": "prompt" }, { "name": "password", "$ref": "Profiles.Password" } ], "description": "Load the specified profile", "permission": "Navigate" } |
Settings
Settings.GetCategories
Retrieves all setting categories
Permissions:
- ReadData
Parameters:
- [Setting.Level level = standard]
- [string section = ""]
- [string properties]
Returns:
Type: object
Properties:
- [array[ Setting.Details.Category ] categories]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "categories": { "items": { "$ref": "Setting.Details.Category" }, "type": "array" } } }, "params": [ { "default": "standard", "name": "level", "$ref": "Setting.Level" }, { "default": "", "type": "string", "name": "section" }, { "items": { "enums": [ "settings" ], "type": "string" }, "extends": "Item.Fields.Base", "name": "properties" } ], "description": "Retrieves all setting categories", "permission": "ReadData" } |
Settings.GetSections
Retrieves all setting sections
Permissions:
- ReadData
Parameters:
- [Setting.Level level = standard]
- [Setting.Level properties]
Returns:
Type: object
Properties:
- [array[ Setting.Details.Section ] sections]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "sections": { "items": { "$ref": "Setting.Details.Section" }, "type": "array" } } }, "params": [ { "default": "standard", "name": "level", "$ref": "Setting.Level" }, { "items": { "enums": [ "categories" ], "type": "string" }, "extends": "Item.Fields.Base", "name": "properties" } ], "description": "Retrieves all setting sections", "permission": "ReadData" } |
Settings.GetSettingValue
Retrieves the value of a setting
Permissions:
- ReadData
Parameters:
- string setting
Returns:
Type: object
Properties:
- Setting.Value.Extended value
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "value": { "required": true, "$ref": "Setting.Value.Extended" } } }, "params": [ { "minLength": 1, "required": true, "type": "string", "name": "setting" } ], "description": "Retrieves the value of a setting", "permission": "ReadData" } |
Settings.GetSettings
Retrieves all settings
Permissions:
- ReadData
Parameters:
- [Setting.Level level = standard]
- [mixed: object filter]
Returns:
Type: object
Properties:
- [array[ Setting.Details.Setting ] settings]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "settings": { "items": { "$ref": "Setting.Details.Setting" }, "type": "array" } } }, "params": [ { "default": "standard", "name": "level", "$ref": "Setting.Level" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "category": { "minLength": 1, "required": true, "type": "string" }, "section": { "minLength": 1, "required": true, "type": "string" } } } ], "name": "filter" } ], "description": "Retrieves all settings", "permission": "ReadData" } |
Settings.ResetSettingValue
Resets the value of a setting
Permissions:
- ReadData
Parameters:
- string setting
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "minLength": 1, "required": true, "type": "string", "name": "setting" } ], "description": "Resets the value of a setting", "permission": "ReadData" } |
Settings.SetSettingValue
Changes the value of a setting
Permissions:
- ReadData
Parameters:
- string setting
- Setting.Value.Extended value
Returns:
Type: boolean
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "boolean" }, "params": [ { "minLength": 1, "required": true, "type": "string", "name": "setting" }, { "required": true, "name": "value", "$ref": "Setting.Value.Extended" } ], "description": "Changes the value of a setting", "permission": "ReadData" } |
System
System.EjectOpticalDrive
Ejects or closes the optical disc drive (if available)
Permissions:
- ControlSystem
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Ejects or closes the optical disc drive (if available)", "permission": "ControlSystem" } |
System.GetProperties
Retrieves the values of the given properties
Permissions:
- ReadData
Parameters:
- array[ System.Property.Name ] properties
Returns:
Type: System.Property.Value
JSON Schema Description |
---|
{ "type": "method", "returns": { "$ref": "System.Property.Value" }, "params": [ { "uniqueItems": true, "items": { "$ref": "System.Property.Name" }, "required": true, "type": "array", "name": "properties" } ], "description": "Retrieves the values of the given properties", "permission": "ReadData" } |
System.Hibernate
Puts the system running Kodi into hibernate mode
Permissions:
- ControlPower
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Puts the system running Kodi into hibernate mode", "permission": "ControlPower" } |
System.Reboot
Reboots the system running Kodi
Permissions:
- ControlPower
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Reboots the system running Kodi", "permission": "ControlPower" } |
System.Shutdown
Shuts the system running Kodi down
Permissions:
- ControlPower
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Shuts the system running Kodi down", "permission": "ControlPower" } |
System.Suspend
Suspends the system running Kodi
Permissions:
- ControlPower
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [], "description": "Suspends the system running Kodi", "permission": "ControlPower" } |
Textures
Textures.GetTextures
Retrieve all textures
Permissions:
- ReadData
Parameters:
- [Textures.Fields.Texture properties]
- [List.Filter.Textures filter]
Returns:
Type: object
Properties:
- array[ Textures.Details.Texture ] textures
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "textures": { "items": { "$ref": "Textures.Details.Texture" }, "required": true, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Textures.Fields.Texture" }, { "name": "filter", "$ref": "List.Filter.Textures" } ], "description": "Retrieve all textures", "permission": "ReadData" } |
Textures.RemoveTexture
Remove the specified texture
Permissions:
- RemoveData
Parameters:
- Library.Id textureid (Texture database identifier)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "description": "Texture database identifier", "name": "textureid", "$ref": "Library.Id" } ], "description": "Remove the specified texture", "permission": "RemoveData" } |
VideoLibrary
VideoLibrary.Clean
Cleans the video library for non-existent items
Permissions:
- RemoveData
Parameters:
- [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)
- [string content = video] (Content type to clean for)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "default": true, "type": "boolean", "description": "Whether or not to show the progress bar or any other GUI dialog", "name": "showdialogs" }, { "default": "video", "enums": [ "video", "movies", "tvshows", "musicvideos" ], "type": "string", "description": "Content type to clean for", "name": "content" } ], "description": "Cleans the video library for non-existent items", "permission": "RemoveData" } |
VideoLibrary.Export
Exports all items from the video library
Permissions:
- WriteFile
Parameters:
- [mixed: object|object options]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "type": [ { "additionalProperties": false, "type": "object", "properties": { "path": { "minLength": 1, "required": true, "type": "string", "description": "Path to the directory to where the data should be exported" } } }, { "additionalProperties": false, "type": "object", "properties": { "images": { "default": false, "type": "boolean", "description": "Whether to export thumbnails and fanart images" }, "overwrite": { "default": false, "type": "boolean", "description": "Whether to overwrite existing exported files" }, "actorthumbs": { "default": false, "type": "boolean", "description": "Whether to export actor thumbnails" } } } ], "name": "options" } ], "description": "Exports all items from the video library", "permission": "WriteFile" } |
VideoLibrary.GetEpisodeDetails
Retrieve details about a specific tv show episode
Permissions:
- ReadData
Parameters:
- Library.Id episodeid
- [Video.Fields.Episode properties]
Returns:
Type: object
Properties:
- [Video.Details.Episode episodedetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "episodedetails": { "$ref": "Video.Details.Episode" } } }, "params": [ { "required": true, "name": "episodeid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.Episode" } ], "description": "Retrieve details about a specific tv show episode", "permission": "ReadData" } |
VideoLibrary.GetEpisodes
Retrieve all tv show episodes
Permissions:
- ReadData
Parameters:
- [Library.Id tvshowid = -1]
- [integer season = -1]
- [Video.Fields.Episode properties]
- [List.Limits limits]
- [List.Sort sort]
- [mixed: object|object|object|object|object|List.Filter.Episodes filter]
Returns:
Type: object
Properties:
- [array[ Video.Details.Episode ] episodes]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "episodes": { "items": { "$ref": "Video.Details.Episode" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "default": -1, "name": "tvshowid", "$ref": "Library.Id" }, { "default": -1, "minimum": 0, "type": "integer", "name": "season" }, { "name": "properties", "$ref": "Video.Fields.Episode" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "description": "Requires tvshowid to be set", "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genre": { "minLength": 1, "required": true, "type": "string", "description": "Requires tvshowid to be set" } } }, { "additionalProperties": false, "type": "object", "properties": { "year": { "minimum": 0, "type": "integer", "required": true } } }, { "additionalProperties": false, "type": "object", "properties": { "actor": { "minLength": 1, "required": true, "type": "string", "description": "Requires tvshowid to be set" } } }, { "additionalProperties": false, "type": "object", "properties": { "director": { "minLength": 1, "required": true, "type": "string" } } }, { "$ref": "List.Filter.Episodes" } ], "name": "filter" } ], "description": "Retrieve all tv show episodes", "permission": "ReadData" } |
VideoLibrary.GetGenres
Retrieve all genres
Permissions:
- ReadData
Parameters:
- string type
- [Library.Fields.Genre properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- array[ Library.Details.Genre ] genres
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "genres": { "items": { "$ref": "Library.Details.Genre" }, "required": true, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "enums": [ "movie", "tvshow", "musicvideo" ], "type": "string", "name": "type", "required": true }, { "name": "properties", "$ref": "Library.Fields.Genre" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all genres", "permission": "ReadData" } |
VideoLibrary.GetInProgressTVShows
Retrieve all in progress tvshows
Permissions:
- ReadData
Parameters:
- [Video.Fields.TVShow properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [array[ Video.Details.TVShow ] tvshows]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "tvshows": { "items": { "$ref": "Video.Details.TVShow" }, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.TVShow" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all in progress tvshows", "permission": "ReadData" } |
VideoLibrary.GetMovieDetails
Retrieve details about a specific movie
Permissions:
- ReadData
Parameters:
- Library.Id movieid
- [Video.Fields.Movie properties]
Returns:
Type: object
Properties:
- [Video.Details.Movie moviedetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "moviedetails": { "$ref": "Video.Details.Movie" } } }, "params": [ { "required": true, "name": "movieid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.Movie" } ], "description": "Retrieve details about a specific movie", "permission": "ReadData" } |
VideoLibrary.GetMovieSetDetails
Retrieve details about a specific movie set
Permissions:
- ReadData
Parameters:
- Library.Id setid
- [Video.Fields.MovieSet properties]
- [object movies]
Returns:
Type: object
Properties:
- [Video.Details.MovieSet.Extended setdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "setdetails": { "$ref": "Video.Details.MovieSet.Extended" } } }, "params": [ { "required": true, "name": "setid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.MovieSet" }, { "type": "object", "name": "movies", "properties": { "sort": { "$ref": "List.Sort" }, "properties": { "$ref": "Video.Fields.Movie" }, "limits": { "$ref": "List.Limits" } } } ], "description": "Retrieve details about a specific movie set", "permission": "ReadData" } |
VideoLibrary.GetMovieSets
Retrieve all movie sets
Permissions:
- ReadData
Parameters:
- [Video.Fields.MovieSet properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [array[ Video.Details.MovieSet ] sets]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "sets": { "items": { "$ref": "Video.Details.MovieSet" }, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.MovieSet" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all movie sets", "permission": "ReadData" } |
VideoLibrary.GetMovies
Retrieve all movies
Permissions:
- ReadData
Parameters:
- [Video.Fields.Movie properties]
- [List.Limits limits]
- [List.Sort sort]
- [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Movies filter]
Returns:
Type: object
Properties:
- [array[ Video.Details.Movie ] movies]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "movies": { "items": { "$ref": "Video.Details.Movie" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.Movie" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genre": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "year": { "minimum": 0, "type": "integer", "required": true } } }, { "additionalProperties": false, "type": "object", "properties": { "actor": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "director": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "studio": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "country": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "setid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "set": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "tag": { "minLength": 1, "required": true, "type": "string" } } }, { "$ref": "List.Filter.Movies" } ], "name": "filter" } ], "description": "Retrieve all movies", "permission": "ReadData" } |
VideoLibrary.GetMusicVideoDetails
Retrieve details about a specific music video
Permissions:
- ReadData
Parameters:
- Library.Id musicvideoid
- [Video.Fields.MusicVideo properties]
Returns:
Type: object
Properties:
- [Video.Details.MusicVideo musicvideodetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "musicvideodetails": { "$ref": "Video.Details.MusicVideo" } } }, "params": [ { "required": true, "name": "musicvideoid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.MusicVideo" } ], "description": "Retrieve details about a specific music video", "permission": "ReadData" } |
VideoLibrary.GetMusicVideos
Retrieve all music videos
Permissions:
- ReadData
Parameters:
- [Video.Fields.MusicVideo properties]
- [List.Limits limits]
- [List.Sort sort]
- [mixed: object|object|object|object|object|object|object|List.Filter.MusicVideos filter]
Returns:
Type: object
Properties:
- [array[ Video.Details.MusicVideo ] musicvideos]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "musicvideos": { "items": { "$ref": "Video.Details.MusicVideo" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.MusicVideo" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "artist": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genre": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "year": { "minimum": 0, "type": "integer", "required": true } } }, { "additionalProperties": false, "type": "object", "properties": { "director": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "studio": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "tag": { "minLength": 1, "required": true, "type": "string" } } }, { "$ref": "List.Filter.MusicVideos" } ], "name": "filter" } ], "description": "Retrieve all music videos", "permission": "ReadData" } |
VideoLibrary.GetRecentlyAddedEpisodes
Retrieve all recently added tv episodes
Permissions:
- ReadData
Parameters:
- [Video.Fields.Episode properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- [array[ Video.Details.Episode ] episodes]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "episodes": { "items": { "$ref": "Video.Details.Episode" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.Episode" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all recently added tv episodes", "permission": "ReadData" } |
VideoLibrary.GetRecentlyAddedMovies
Retrieve all recently added movies
Permissions:
- ReadData
Parameters:
- [Video.Fields.Movie properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- [array[ Video.Details.Movie ] movies]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "movies": { "items": { "$ref": "Video.Details.Movie" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.Movie" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all recently added movies", "permission": "ReadData" } |
VideoLibrary.GetRecentlyAddedMusicVideos
Retrieve all recently added music videos
Permissions:
- ReadData
Parameters:
- [Video.Fields.MusicVideo properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- [array[ Video.Details.MusicVideo ] musicvideos]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "musicvideos": { "items": { "$ref": "Video.Details.MusicVideo" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.MusicVideo" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all recently added music videos", "permission": "ReadData" } |
VideoLibrary.GetSeasonDetails
Retrieve details about a specific tv show season
Permissions:
- ReadData
Parameters:
- Library.Id seasonid
- [Video.Fields.Season properties]
Returns:
Type: object
Properties:
- [Video.Details.Season seasondetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "seasondetails": { "$ref": "Video.Details.Season" } } }, "params": [ { "required": true, "name": "seasonid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.Season" } ], "description": "Retrieve details about a specific tv show season", "permission": "ReadData" } |
VideoLibrary.GetSeasons
Retrieve all tv seasons
Permissions:
- ReadData
Parameters:
- [Library.Id tvshowid = -1]
- [Video.Fields.Season properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- [array[ Video.Details.Season ] seasons]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "seasons": { "items": { "$ref": "Video.Details.Season" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } }, "params": [ { "default": -1, "name": "tvshowid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.Season" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all tv seasons", "permission": "ReadData" } |
VideoLibrary.GetTVShowDetails
Retrieve details about a specific tv show
Permissions:
- ReadData
Parameters:
- Library.Id tvshowid
- [Video.Fields.TVShow properties]
Returns:
Type: object
Properties:
- [Video.Details.TVShow tvshowdetails]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "tvshowdetails": { "$ref": "Video.Details.TVShow" } } }, "params": [ { "required": true, "name": "tvshowid", "$ref": "Library.Id" }, { "name": "properties", "$ref": "Video.Fields.TVShow" } ], "description": "Retrieve details about a specific tv show", "permission": "ReadData" } |
VideoLibrary.GetTVShows
Retrieve all tv shows
Permissions:
- ReadData
Parameters:
- [Video.Fields.TVShow properties]
- [List.Limits limits]
- [List.Sort sort]
- [mixed: object|object|object|object|object|object|List.Filter.TVShows filter]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- [array[ Video.Details.TVShow ] tvshows]
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "tvshows": { "items": { "$ref": "Video.Details.TVShow" }, "type": "array" } } }, "params": [ { "name": "properties", "$ref": "Video.Fields.TVShow" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" }, { "type": [ { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genre": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "year": { "minimum": 0, "type": "integer", "required": true } } }, { "additionalProperties": false, "type": "object", "properties": { "actor": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "studio": { "minLength": 1, "required": true, "type": "string" } } }, { "additionalProperties": false, "type": "object", "properties": { "tag": { "minLength": 1, "required": true, "type": "string" } } }, { "$ref": "List.Filter.TVShows" } ], "name": "filter" } ], "description": "Retrieve all tv shows", "permission": "ReadData" } |
VideoLibrary.GetTags
Retrieve all tags
Permissions:
- ReadData
Parameters:
- string type
- [Library.Fields.Tag properties]
- [List.Limits limits]
- [List.Sort sort]
Returns:
Type: object
Properties:
- List.LimitsReturned limits
- array[ Library.Details.Tag ] tags
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "object", "properties": { "limits": { "required": true, "$ref": "List.LimitsReturned" }, "tags": { "items": { "$ref": "Library.Details.Tag" }, "required": true, "type": "array" } } }, "params": [ { "enums": [ "movie", "tvshow", "musicvideo" ], "type": "string", "name": "type", "required": true }, { "name": "properties", "$ref": "Library.Fields.Tag" }, { "name": "limits", "$ref": "List.Limits" }, { "name": "sort", "$ref": "List.Sort" } ], "description": "Retrieve all tags", "permission": "ReadData" } |
VideoLibrary.RefreshEpisode
Refresh the given episode in the library
Permissions:
- UpdateData
Parameters:
- Library.Id episodeid
- [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
- [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "episodeid", "$ref": "Library.Id" }, { "default": false, "type": "boolean", "description": "Whether or not to ignore a local NFO if present.", "name": "ignorenfo" }, { "default": "", "type": "string", "description": "Title to use for searching (instead of determining it from the item's filename/path).", "name": "title" } ], "description": "Refresh the given episode in the library", "permission": "UpdateData" } |
VideoLibrary.RefreshMovie
Refresh the given movie in the library
Permissions:
- UpdateData
Parameters:
- Library.Id movieid
- [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
- [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "movieid", "$ref": "Library.Id" }, { "default": false, "type": "boolean", "description": "Whether or not to ignore a local NFO if present.", "name": "ignorenfo" }, { "default": "", "type": "string", "description": "Title to use for searching (instead of determining it from the item's filename/path).", "name": "title" } ], "description": "Refresh the given movie in the library", "permission": "UpdateData" } |
VideoLibrary.RefreshMusicVideo
Refresh the given music video in the library
Permissions:
- UpdateData
Parameters:
- Library.Id musicvideoid
- [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
- [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "musicvideoid", "$ref": "Library.Id" }, { "default": false, "type": "boolean", "description": "Whether or not to ignore a local NFO if present.", "name": "ignorenfo" }, { "default": "", "type": "string", "description": "Title to use for searching (instead of determining it from the item's filename/path).", "name": "title" } ], "description": "Refresh the given music video in the library", "permission": "UpdateData" } |
VideoLibrary.RefreshTVShow
Refresh the given tv show in the library
Permissions:
- UpdateData
Parameters:
- Library.Id tvshowid
- [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
- [boolean refreshepisodes = False] (Whether or not to refresh all episodes belonging to the TV show.)
- [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "tvshowid", "$ref": "Library.Id" }, { "default": false, "type": "boolean", "description": "Whether or not to ignore a local NFO if present.", "name": "ignorenfo" }, { "default": false, "type": "boolean", "description": "Whether or not to refresh all episodes belonging to the TV show.", "name": "refreshepisodes" }, { "default": "", "type": "string", "description": "Title to use for searching (instead of determining it from the item's filename/path).", "name": "title" } ], "description": "Refresh the given tv show in the library", "permission": "UpdateData" } |
VideoLibrary.RemoveEpisode
Removes the given episode from the library
Permissions:
- RemoveData
Parameters:
- Library.Id episodeid
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "episodeid", "$ref": "Library.Id" } ], "description": "Removes the given episode from the library", "permission": "RemoveData" } |
VideoLibrary.RemoveMovie
Removes the given movie from the library
Permissions:
- RemoveData
Parameters:
- Library.Id movieid
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "movieid", "$ref": "Library.Id" } ], "description": "Removes the given movie from the library", "permission": "RemoveData" } |
VideoLibrary.RemoveMusicVideo
Removes the given music video from the library
Permissions:
- RemoveData
Parameters:
- Library.Id musicvideoid
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "musicvideoid", "$ref": "Library.Id" } ], "description": "Removes the given music video from the library", "permission": "RemoveData" } |
VideoLibrary.RemoveTVShow
Removes the given tv show from the library
Permissions:
- RemoveData
Parameters:
- Library.Id tvshowid
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "tvshowid", "$ref": "Library.Id" } ], "description": "Removes the given tv show from the library", "permission": "RemoveData" } |
VideoLibrary.Scan
Scans the video sources for new library items
Permissions:
- UpdateData
Parameters:
- [string directory = ""]
- [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "default": "", "type": "string", "name": "directory" }, { "default": true, "type": "boolean", "description": "Whether or not to show the progress bar or any other GUI dialog", "name": "showdialogs" } ], "description": "Scans the video sources for new library items", "permission": "UpdateData" } |
VideoLibrary.SetEpisodeDetails
Update the given episode with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id episodeid
- [Optional.String title = None]
- [Optional.Integer playcount = None]
- [Optional.Integer runtime = None] (Runtime in seconds)
- [mixed: null|Array.String director = None]
- [Optional.String plot = None]
- [Optional.Number rating = None]
- [Optional.String votes = None]
- [Optional.String lastplayed = None]
- [mixed: null|Array.String writer = None]
- [Optional.String firstaired = None]
- [Optional.String productioncode = None]
- [Optional.Integer season = None]
- [Optional.Integer episode = None]
- [Optional.String originaltitle = None]
- [Optional.String thumbnail = None]
- [Optional.String fanart = None]
- [mixed: null|Media.Artwork.Set art = None]
- [mixed: null|Video.Resume resume = None]
- [Optional.Integer userrating = None]
- [Video.Ratings.Set ratings]
- [Optional.String dateadded = None]
- [mixed: null|Media.UniqueID.Set uniqueid = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "episodeid", "$ref": "Library.Id" }, { "default": null, "name": "title", "$ref": "Optional.String" }, { "default": null, "name": "playcount", "$ref": "Optional.Integer" }, { "default": null, "description": "Runtime in seconds", "name": "runtime", "$ref": "Optional.Integer" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "director" }, { "default": null, "name": "plot", "$ref": "Optional.String" }, { "default": null, "name": "rating", "$ref": "Optional.Number" }, { "default": null, "name": "votes", "$ref": "Optional.String" }, { "default": null, "name": "lastplayed", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "writer" }, { "default": null, "name": "firstaired", "$ref": "Optional.String" }, { "default": null, "name": "productioncode", "$ref": "Optional.String" }, { "default": null, "name": "season", "$ref": "Optional.Integer" }, { "default": null, "name": "episode", "$ref": "Optional.Integer" }, { "default": null, "name": "originaltitle", "$ref": "Optional.String" }, { "default": null, "name": "thumbnail", "$ref": "Optional.String" }, { "default": null, "name": "fanart", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Video.Resume" } ], "name": "resume" }, { "default": null, "name": "userrating", "$ref": "Optional.Integer" }, { "name": "ratings", "$ref": "Video.Ratings.Set" }, { "default": null, "name": "dateadded", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.UniqueID.Set" } ], "name": "uniqueid" } ], "description": "Update the given episode with the given details", "permission": "UpdateData" } |
VideoLibrary.SetMovieDetails
Update the given movie with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id movieid
- [Optional.String title = None]
- [Optional.Integer playcount = None]
- [Optional.Integer runtime = None] (Runtime in seconds)
- [mixed: null|Array.String director = None]
- [mixed: null|Array.String studio = None]
- [Optional.Integer year = None] (linked with premiered. Overridden by premiered parameter)
- [Optional.String plot = None]
- [mixed: null|Array.String genre = None]
- [Optional.Number rating = None]
- [Optional.String mpaa = None]
- [Optional.String imdbnumber = None]
- [Optional.String votes = None]
- [Optional.String lastplayed = None]
- [Optional.String originaltitle = None]
- [Optional.String trailer = None]
- [Optional.String tagline = None]
- [Optional.String plotoutline = None]
- [mixed: null|Array.String writer = None]
- [mixed: null|Array.String country = None]
- [Optional.Integer top250 = None]
- [Optional.String sorttitle = None]
- [Optional.String set = None]
- [mixed: null|Array.String showlink = None]
- [Optional.String thumbnail = None]
- [Optional.String fanart = None]
- [mixed: null|Array.String tag = None]
- [mixed: null|Media.Artwork.Set art = None]
- [mixed: null|Video.Resume resume = None]
- [Optional.Integer userrating = None]
- [Video.Ratings.Set ratings]
- [Optional.String dateadded = None]
- [Optional.String premiered = None] (linked with year. Overrides year)
- [mixed: null|Media.UniqueID.Set uniqueid = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "movieid", "$ref": "Library.Id" }, { "default": null, "name": "title", "$ref": "Optional.String" }, { "default": null, "name": "playcount", "$ref": "Optional.Integer" }, { "default": null, "description": "Runtime in seconds", "name": "runtime", "$ref": "Optional.Integer" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "director" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "studio" }, { "default": null, "description": "linked with premiered. Overridden by premiered parameter", "name": "year", "$ref": "Optional.Integer" }, { "default": null, "name": "plot", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "genre" }, { "default": null, "name": "rating", "$ref": "Optional.Number" }, { "default": null, "name": "mpaa", "$ref": "Optional.String" }, { "default": null, "name": "imdbnumber", "$ref": "Optional.String" }, { "default": null, "name": "votes", "$ref": "Optional.String" }, { "default": null, "name": "lastplayed", "$ref": "Optional.String" }, { "default": null, "name": "originaltitle", "$ref": "Optional.String" }, { "default": null, "name": "trailer", "$ref": "Optional.String" }, { "default": null, "name": "tagline", "$ref": "Optional.String" }, { "default": null, "name": "plotoutline", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "writer" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "country" }, { "default": null, "name": "top250", "$ref": "Optional.Integer" }, { "default": null, "name": "sorttitle", "$ref": "Optional.String" }, { "default": null, "name": "set", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "showlink" }, { "default": null, "name": "thumbnail", "$ref": "Optional.String" }, { "default": null, "name": "fanart", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "tag" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Video.Resume" } ], "name": "resume" }, { "default": null, "name": "userrating", "$ref": "Optional.Integer" }, { "name": "ratings", "$ref": "Video.Ratings.Set" }, { "default": null, "name": "dateadded", "$ref": "Optional.String" }, { "default": null, "description": "linked with year. Overrides year", "name": "premiered", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.UniqueID.Set" } ], "name": "uniqueid" } ], "description": "Update the given movie with the given details", "permission": "UpdateData" } |
VideoLibrary.SetMovieSetDetails
Update the given movie set with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id setid
- [Optional.String title = None]
- [mixed: null|Media.Artwork.Set art = None]
- [Optional.String plot = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "setid", "$ref": "Library.Id" }, { "default": null, "name": "title", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" }, { "default": null, "name": "plot", "$ref": "Optional.String" } ], "description": "Update the given movie set with the given details", "permission": "UpdateData" } |
VideoLibrary.SetMusicVideoDetails
Update the given music video with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id musicvideoid
- [Optional.String title = None]
- [Optional.Integer playcount = None]
- [Optional.Integer runtime = None] (Runtime in seconds)
- [mixed: null|Array.String director = None]
- [mixed: null|Array.String studio = None]
- [Optional.Integer year = None] (linked with premiered. Overridden by premiered parameter)
- [Optional.String plot = None]
- [Optional.String album = None]
- [mixed: null|Array.String artist = None]
- [mixed: null|Array.String genre = None]
- [Optional.Integer track = None]
- [Optional.String lastplayed = None]
- [Optional.String thumbnail = None]
- [Optional.String fanart = None]
- [mixed: null|Array.String tag = None]
- [mixed: null|Media.Artwork.Set art = None]
- [mixed: null|Video.Resume resume = None]
- [Optional.Number rating = None]
- [Optional.Integer userrating = None]
- [Optional.String dateadded = None]
- [Optional.String premiered = None] (linked with year. Overrides year)
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "musicvideoid", "$ref": "Library.Id" }, { "default": null, "name": "title", "$ref": "Optional.String" }, { "default": null, "name": "playcount", "$ref": "Optional.Integer" }, { "default": null, "description": "Runtime in seconds", "name": "runtime", "$ref": "Optional.Integer" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "director" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "studio" }, { "default": null, "description": "linked with premiered. Overridden by premiered parameter", "name": "year", "$ref": "Optional.Integer" }, { "default": null, "name": "plot", "$ref": "Optional.String" }, { "default": null, "name": "album", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "artist" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "genre" }, { "default": null, "name": "track", "$ref": "Optional.Integer" }, { "default": null, "name": "lastplayed", "$ref": "Optional.String" }, { "default": null, "name": "thumbnail", "$ref": "Optional.String" }, { "default": null, "name": "fanart", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "tag" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Video.Resume" } ], "name": "resume" }, { "default": null, "name": "rating", "$ref": "Optional.Number" }, { "default": null, "name": "userrating", "$ref": "Optional.Integer" }, { "default": null, "name": "dateadded", "$ref": "Optional.String" }, { "default": null, "description": "linked with year. Overrides year", "name": "premiered", "$ref": "Optional.String" } ], "description": "Update the given music video with the given details", "permission": "UpdateData" } |
VideoLibrary.SetSeasonDetails
Update the given season with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id seasonid
- [mixed: null|Media.Artwork.Set art = None]
- [Optional.Integer userrating = None]
- [Optional.String title = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "seasonid", "$ref": "Library.Id" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" }, { "default": null, "name": "userrating", "$ref": "Optional.Integer" }, { "default": null, "name": "title", "$ref": "Optional.String" } ], "description": "Update the given season with the given details", "permission": "UpdateData" } |
VideoLibrary.SetTVShowDetails
Update the given tvshow with the given details
Permissions:
- UpdateData
Parameters:
- Library.Id tvshowid
- [Optional.String title = None]
- [Optional.Integer playcount = None]
- [mixed: null|Array.String studio = None]
- [Optional.String plot = None]
- [mixed: null|Array.String genre = None]
- [Optional.Number rating = None]
- [Optional.String mpaa = None]
- [Optional.String imdbnumber = None]
- [Optional.String premiered = None]
- [Optional.String votes = None]
- [Optional.String lastplayed = None]
- [Optional.String originaltitle = None]
- [Optional.String sorttitle = None]
- [Optional.String episodeguide = None]
- [Optional.String thumbnail = None]
- [Optional.String fanart = None]
- [mixed: null|Array.String tag = None]
- [mixed: null|Media.Artwork.Set art = None]
- [Optional.Integer userrating = None]
- [Video.Ratings.Set ratings]
- [Optional.String dateadded = None]
- [Optional.Integer runtime = None] (Runtime in seconds)
- [Optional.String status = None]
- [mixed: null|Media.UniqueID.Set uniqueid = None]
Returns:
Type: string
JSON Schema Description |
---|
{ "type": "method", "returns": { "type": "string" }, "params": [ { "required": true, "name": "tvshowid", "$ref": "Library.Id" }, { "default": null, "name": "title", "$ref": "Optional.String" }, { "default": null, "name": "playcount", "$ref": "Optional.Integer" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "studio" }, { "default": null, "name": "plot", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "genre" }, { "default": null, "name": "rating", "$ref": "Optional.Number" }, { "default": null, "name": "mpaa", "$ref": "Optional.String" }, { "default": null, "name": "imdbnumber", "$ref": "Optional.String" }, { "default": null, "name": "premiered", "$ref": "Optional.String" }, { "default": null, "name": "votes", "$ref": "Optional.String" }, { "default": null, "name": "lastplayed", "$ref": "Optional.String" }, { "default": null, "name": "originaltitle", "$ref": "Optional.String" }, { "default": null, "name": "sorttitle", "$ref": "Optional.String" }, { "default": null, "name": "episodeguide", "$ref": "Optional.String" }, { "default": null, "name": "thumbnail", "$ref": "Optional.String" }, { "default": null, "name": "fanart", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Array.String" } ], "name": "tag" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.Artwork.Set" } ], "name": "art" }, { "default": null, "name": "userrating", "$ref": "Optional.Integer" }, { "name": "ratings", "$ref": "Video.Ratings.Set" }, { "default": null, "name": "dateadded", "$ref": "Optional.String" }, { "default": null, "description": "Runtime in seconds", "name": "runtime", "$ref": "Optional.Integer" }, { "default": null, "name": "status", "$ref": "Optional.String" }, { "default": null, "type": [ { "type": "null" }, { "$ref": "Media.UniqueID.Set" } ], "name": "uniqueid" } ], "description": "Update the given tvshow with the given details", "permission": "UpdateData" } |
XBMC
XBMC.GetInfoBooleans
Retrieve info booleans about Kodi and the system
Permissions:
- ReadData
Parameters:
- array[string] booleans
Returns:
Type: object (Object containing key-value pairs of the retrieved info booleans)
JSON Schema Description |
---|
{ "type": "method", "returns": { "additionalProperties": { "default": "", "type": "string" }, "type": "object", "description": "Object containing key-value pairs of the retrieved info booleans" }, "params": [ { "minItems": 1, "items": { "type": "string" }, "required": true, "type": "array", "name": "booleans" } ], "description": "Retrieve info booleans about Kodi and the system", "permission": "ReadData" } |
XBMC.GetInfoLabels
Retrieve info labels about Kodi and the system
Permissions:
- ReadData
Parameters:
- array[string] labels (See http://kodi.wiki/view/InfoLabels for a list of possible info labels)
Returns:
Type: object (Object containing key-value pairs of the retrieved info labels)
JSON Schema Description |
---|
{ "type": "method", "returns": { "additionalProperties": { "default": "", "type": "string" }, "type": "object", "description": "Object containing key-value pairs of the retrieved info labels" }, "params": [ { "description": "See http://kodi.wiki/view/InfoLabels for a list of possible info labels", "minItems": 1, "items": { "type": "string" }, "required": true, "type": "array", "name": "labels" } ], "description": "Retrieve info labels about Kodi and the system", "permission": "ReadData" } |
Global Types
Addon
Addon.Content
Type: string
JSON Schema Description |
---|
{ "default": "unknown", "enums": [ "unknown", "video", "audio", "image", "executable" ], "type": "string", "id": "Addon.Content" } |
Addon.Details
Extends:
Properties:
- [integer rating]
- [string description]
- [string name]
- [string author]
- [string fanart]
- [array extrainfo]
- [boolean enabled]
- [boolean installed]
- [mixed: boolean|string broken]
- [array dependencies]
- [string version]
- string addonid
- [string path]
- [string summary]
- Addon.Types type
- [string thumbnail]
- [string disclaimer]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Addon.Details", "properties": { "rating": { "default": 0, "type": "integer" }, "description": { "default": "", "type": "string" }, "name": { "default": "", "type": "string" }, "author": { "default": "", "type": "string" }, "fanart": { "default": "", "type": "string" }, "extrainfo": { "items": { "type": "object", "properties": { "value": { "required": true, "type": "string" }, "key": { "required": true, "type": "string" } } }, "type": "array" }, "enabled": { "default": false, "type": "boolean" }, "installed": { "default": false, "type": "boolean" }, "broken": { "default": null, "type": [ { "type": "boolean" }, { "type": "string" } ] }, "dependencies": { "items": { "type": "object", "properties": { "version": { "required": true, "type": "string" }, "optional": { "required": true, "type": "boolean" }, "addonid": { "required": true, "type": "string" } } }, "type": "array" }, "version": { "default": "", "type": "string" }, "addonid": { "required": true, "type": "string" }, "path": { "default": "", "type": "string" }, "summary": { "default": "", "type": "string" }, "type": { "required": true, "$ref": "Addon.Types" }, "thumbnail": { "default": "", "type": "string" }, "disclaimer": { "default": "", "type": "string" } } } |
Addon.Fields
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "name", "version", "summary", "description", "path", "author", "thumbnail", "disclaimer", "fanart", "dependencies", "broken", "extrainfo", "rating", "enabled", "installed" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Addon.Fields" } |
Addon.Types
Type: string
JSON Schema Description |
---|
{ "default": "unknown", "enums": [ "unknown", "xbmc.player.musicviz", "xbmc.gui.skin", "xbmc.pvrclient", "kodi.inputstream", "kodi.gameclient", "kodi.peripheral", "xbmc.python.script", "xbmc.python.weather", "xbmc.subtitle.module", "xbmc.python.lyrics", "xbmc.metadata.scraper.albums", "xbmc.metadata.scraper.artists", "xbmc.metadata.scraper.movies", "xbmc.metadata.scraper.musicvideos", "xbmc.metadata.scraper.tvshows", "xbmc.ui.screensaver", "xbmc.python.pluginsource", "xbmc.addon.repository", "xbmc.webinterface", "xbmc.service", "kodi.audioencoder", "kodi.context.item", "kodi.audiodecoder", "kodi.resource.images", "kodi.resource.language", "kodi.resource.uisounds", "kodi.resource.games", "kodi.resource.font", "kodi.vfs", "kodi.imagedecoder", "xbmc.metadata.scraper.library", "xbmc.python.library", "xbmc.python.module", "kodi.game.controller", "", "xbmc.addon.video", "xbmc.addon.audio", "xbmc.addon.image", "xbmc.addon.executable", "kodi.addon.game" ], "type": "string", "id": "Addon.Types" } |
Application
Application.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "volume", "enums": [ "volume", "muted", "name", "version", "sorttokens", "language" ], "type": "string", "id": "Application.Property.Name" } |
Application.Property.Value
Type: object
Properties:
- [Array.String sorttokens]
- [string name]
- [string language]
- [boolean muted]
- [integer volume]
- [object version]
JSON Schema Description |
---|
{ "type": "object", "id": "Application.Property.Value", "properties": { "sorttokens": { "description": "Articles ignored during sorting when ignorearticle is enabled.", "$ref": "Array.String" }, "name": { "default": "", "minLength": 1, "type": "string" }, "language": { "default": "", "minLength": 1, "type": "string", "description": "Current language code and region e.g. en_GB" }, "muted": { "default": false, "type": "boolean" }, "volume": { "default": 0, "minimum": 0, "type": "integer", "maximum": 100 }, "version": { "type": "object", "properties": { "major": { "minimum": 0, "type": "integer", "required": true }, "tag": { "enums": [ "prealpha", "alpha", "beta", "releasecandidate", "stable" ], "type": "string", "required": true }, "tagversion": { "default": "", "type": "string" }, "minor": { "minimum": 0, "type": "integer", "required": true }, "revision": { "default": null, "type": [ { "type": "string" }, { "type": "integer" } ] } } } } } |
Array
Array.Integer
Type: array
JSON Schema Description |
---|
{ "items": { "type": "integer" }, "type": "array", "id": "Array.Integer" } |
Array.String
Type: array
JSON Schema Description |
---|
{ "items": { "minLength": 1, "type": "string" }, "type": "array", "id": "Array.String" } |
Audio
Audio.Album.ReleaseType
Type: string
JSON Schema Description |
---|
{ "default": "album", "enums": [ "album", "single" ], "type": "string", "id": "Audio.Album.ReleaseType" } |
Audio.Artist.Roles
Type: array
JSON Schema Description |
---|
{ "items": { "additionalProperties": false, "type": "object", "description": "The various roles contributed by an artist to one or more songs", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "role": { "required": true, "type": "string" } } }, "type": "array", "id": "Audio.Artist.Roles" } |
Audio.Contributors
Type: array
JSON Schema Description |
---|
{ "items": { "additionalProperties": false, "type": "object", "description": "The artist and the role they contribute to a song", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "artistid": { "required": true, "$ref": "Library.Id" }, "role": { "required": true, "type": "string" }, "name": { "required": true, "type": "string" } } }, "type": "array", "id": "Audio.Contributors" } |
Audio.Details.Album
Extends:
Properties:
- [string musicbrainzreleasegroupid]
- [Array.String style]
- [Array.String mood]
- [string albumlabel]
- [Array.Integer sourceid]
- [boolean compilation]
- [string lastplayed]
- [Audio.Album.ReleaseType releasetype = album]
- [Audio.Details.Genres songgenres]
- Library.Id albumid
- [Array.String theme]
- [integer playcount]
- [string type]
- [string musicbrainzalbumid]
- [string description]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Media", "id": "Audio.Details.Album", "properties": { "musicbrainzreleasegroupid": { "default": "", "type": "string" }, "style": { "$ref": "Array.String" }, "mood": { "$ref": "Array.String" }, "albumlabel": { "default": "", "type": "string" }, "sourceid": { "$ref": "Array.Integer" }, "compilation": { "default": false, "type": "boolean" }, "lastplayed": { "default": "", "type": "string" }, "releasetype": { "default": "album", "$ref": "Audio.Album.ReleaseType" }, "songgenres": { "$ref": "Audio.Details.Genres" }, "albumid": { "required": true, "$ref": "Library.Id" }, "theme": { "$ref": "Array.String" }, "playcount": { "default": 0, "type": "integer" }, "type": { "default": "", "type": "string" }, "musicbrainzalbumid": { "default": "", "type": "string" }, "description": { "default": "", "type": "string" } } } |
Audio.Details.Artist
Extends:
Properties:
- [Array.Integer sourceid]
- [Array.String mood]
- [string description]
- [Array.String musicbrainzartistid]
- string artist
- [Audio.Details.Genres songgenres]
- [string gender]
- [string disambiguation]
- [string formed]
- [boolean isalbumartist]
- [string disbanded]
- [string born]
- Library.Id artistid
- [Array.String style]
- [Array.String instrument]
- [string sortname]
- [Array.String yearsactive]
- [Audio.Artist.Roles roles]
- [string type]
- [string died]
- [boolean compilationartist]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Base", "id": "Audio.Details.Artist", "properties": { "sourceid": { "$ref": "Array.Integer" }, "mood": { "$ref": "Array.String" }, "description": { "default": "", "type": "string" }, "musicbrainzartistid": { "$ref": "Array.String" }, "artist": { "required": true, "type": "string" }, "songgenres": { "$ref": "Audio.Details.Genres" }, "gender": { "default": "", "type": "string" }, "disambiguation": { "default": "", "type": "string" }, "formed": { "default": "", "type": "string" }, "isalbumartist": { "default": false, "type": "boolean" }, "disbanded": { "default": "", "type": "string" }, "born": { "default": "", "type": "string" }, "artistid": { "required": true, "$ref": "Library.Id" }, "style": { "$ref": "Array.String" }, "instrument": { "$ref": "Array.String" }, "sortname": { "default": "", "type": "string" }, "yearsactive": { "$ref": "Array.String" }, "roles": { "$ref": "Audio.Artist.Roles" }, "type": { "default": "", "type": "string" }, "died": { "default": "", "type": "string" }, "compilationartist": { "default": false, "type": "boolean" } } } |
Audio.Details.Base
Extends:
Properties:
- [Array.String genre]
- [string dateadded]
- [Media.Artwork art]
JSON Schema Description |
---|
{ "extends": "Media.Details.Base", "id": "Audio.Details.Base", "properties": { "genre": { "$ref": "Array.String" }, "dateadded": { "default": "", "type": "string" }, "art": { "$ref": "Media.Artwork" } } } |
Audio.Details.Genres
Type: array
JSON Schema Description |
---|
{ "items": { "type": "object", "properties": { "genreid": { "required": true, "$ref": "Library.Id" }, "title": { "default": "", "type": "string" } } }, "type": "array", "id": "Audio.Details.Genres" } |
Audio.Details.Media
Extends:
Properties:
- [number rating]
- [integer votes]
- [Array.String artist]
- [string title]
- [Array.String musicbrainzalbumartistid]
- [Array.Integer artistid]
- [integer userrating]
- [string displayartist]
- [integer year]
- [string sortartist]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Base", "id": "Audio.Details.Media", "properties": { "rating": { "default": 0.0, "type": "number" }, "votes": { "default": 0, "type": "integer" }, "artist": { "$ref": "Array.String" }, "title": { "default": "", "type": "string" }, "musicbrainzalbumartistid": { "$ref": "Array.String" }, "artistid": { "$ref": "Array.Integer" }, "userrating": { "default": 0, "type": "integer" }, "displayartist": { "default": "", "type": "string" }, "year": { "default": 0, "type": "integer" }, "sortartist": { "default": "", "type": "string" } } } |
Audio.Details.Role
Extends:
Properties:
- Library.Id roleid
- [string title]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Audio.Details.Role", "properties": { "roleid": { "required": true, "$ref": "Library.Id" }, "title": { "default": "", "type": "string" } } } |
Audio.Details.Song
Extends:
Properties:
- [string comment]
- [Audio.Contributors contributors]
- [string displayorchestra]
- [Array.String albumartist]
- [string file]
- [integer duration]
- [string album]
- [Audio.Album.ReleaseType albumreleasetype = album]
- [string lyrics]
- [Library.Id albumid = -1]
- [integer disc]
- Library.Id songid
- [string displayconductor]
- [Array.Integer sourceid]
- [Array.Integer albumartistid]
- [string musicbrainztrackid]
- [integer track]
- [Array.Integer genreid]
- [string mood]
- [string displaylyricist]
- [Array.String musicbrainzartistid]
- [string lastplayed]
- [string displaycomposer]
- [integer playcount]
JSON Schema Description |
---|
{ "extends": "Audio.Details.Media", "id": "Audio.Details.Song", "properties": { "comment": { "default": "", "type": "string" }, "contributors": { "$ref": "Audio.Contributors" }, "displayorchestra": { "default": "", "type": "string" }, "albumartist": { "$ref": "Array.String" }, "file": { "default": "", "type": "string" }, "duration": { "default": 0, "type": "integer" }, "album": { "default": "", "type": "string" }, "albumreleasetype": { "default": "album", "$ref": "Audio.Album.ReleaseType" }, "lyrics": { "default": "", "type": "string" }, "albumid": { "default": -1, "$ref": "Library.Id" }, "disc": { "default": 0, "type": "integer" }, "songid": { "required": true, "$ref": "Library.Id" }, "displayconductor": { "default": "", "type": "string" }, "sourceid": { "$ref": "Array.Integer" }, "albumartistid": { "$ref": "Array.Integer" }, "musicbrainztrackid": { "default": "", "type": "string" }, "track": { "default": 0, "type": "integer" }, "genreid": { "$ref": "Array.Integer" }, "mood": { "default": "", "type": "string" }, "displaylyricist": { "default": "", "type": "string" }, "musicbrainzartistid": { "$ref": "Array.String" }, "lastplayed": { "default": "", "type": "string" }, "displaycomposer": { "default": "", "type": "string" }, "playcount": { "default": 0, "type": "integer" } } } |
Audio.Fields.Album
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string", "description": "Requesting the songgenres, artistid and/or sourceid fields will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Audio.Fields.Album" } |
Audio.Fields.Artist
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "instrument", "style", "mood", "born", "formed", "description", "genre", "died", "disbanded", "yearsactive", "musicbrainzartistid", "fanart", "thumbnail", "compilationartist", "dateadded", "roles", "songgenres", "isalbumartist", "sortname", "type", "gender", "disambiguation", "art", "sourceid" ], "type": "string", "description": "Requesting the (song)genreid/genre, roleid/role or sourceid fields will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Audio.Fields.Artist" } |
Audio.Fields.Role
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Audio.Fields.Role" } |
Audio.Fields.Song
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string", "description": "Requesting the genreid, artistid, albumartistid and/or sourceid fields will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Audio.Fields.Song" } |
Audio.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "missingartistid", "enums": [ "missingartistid", "librarylastupdated" ], "type": "string", "id": "Audio.Property.Name" } |
Audio.Property.Value
Type: object
Properties:
- [string librarylastupdated]
- [Library.Id missingartistid = -1]
JSON Schema Description |
---|
{ "type": "object", "id": "Audio.Property.Value", "properties": { "librarylastupdated": { "default": "", "type": "string" }, "missingartistid": { "default": -1, "$ref": "Library.Id" } } } |
Configuration
Configuration
Type: object
Properties:
- Configuration.Notifications notifications
JSON Schema Description |
---|
{ "required": true, "type": "object", "id": "Configuration", "properties": { "notifications": { "required": true, "$ref": "Configuration.Notifications" } } } |
Configuration.Notifications
Type: object
Properties:
- boolean playlist
- boolean pvr
- boolean application
- boolean gui
- boolean system
- boolean player
- boolean audiolibrary
- boolean input
- boolean other
- boolean videolibrary
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Configuration.Notifications", "properties": { "playlist": { "required": true, "type": "boolean" }, "pvr": { "required": true, "type": "boolean" }, "application": { "required": true, "type": "boolean" }, "gui": { "required": true, "type": "boolean" }, "system": { "required": true, "type": "boolean" }, "player": { "required": true, "type": "boolean" }, "audiolibrary": { "required": true, "type": "boolean" }, "input": { "required": true, "type": "boolean" }, "other": { "required": true, "type": "boolean" }, "videolibrary": { "required": true, "type": "boolean" } } } |
Favourite
Favourite.Details.Favourite
Type: object
Properties:
- string title
- [string window]
- [string path]
- Favourite.Type type
- [string thumbnail]
- [string windowparameter]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Favourite.Details.Favourite", "properties": { "title": { "required": true, "type": "string" }, "window": { "default": "", "type": "string" }, "path": { "default": "", "type": "string" }, "type": { "required": true, "$ref": "Favourite.Type" }, "thumbnail": { "default": "", "type": "string" }, "windowparameter": { "default": "", "type": "string" } } } |
Favourite.Fields.Favourite
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "window", "windowparameter", "thumbnail", "path" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Favourite.Fields.Favourite" } |
Favourite.Type
Type: string
JSON Schema Description |
---|
{ "default": "media", "enums": [ "media", "window", "script", "unknown" ], "type": "string", "id": "Favourite.Type" } |
Files
Files.Media
Type: string
JSON Schema Description |
---|
{ "default": "video", "enums": [ "video", "music", "pictures", "files", "programs" ], "type": "string", "id": "Files.Media" } |
GUI
GUI.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "currentwindow", "enums": [ "currentwindow", "currentcontrol", "skin", "fullscreen", "stereoscopicmode" ], "type": "string", "id": "GUI.Property.Name" } |
GUI.Property.Value
Type: object
Properties:
- [boolean fullscreen]
- [object currentwindow]
- [object currentcontrol]
- [GUI.Stereoscopy.Mode stereoscopicmode]
- [object skin]
JSON Schema Description |
---|
{ "type": "object", "id": "GUI.Property.Value", "properties": { "fullscreen": { "default": false, "type": "boolean" }, "currentwindow": { "type": "object", "properties": { "id": { "required": true, "type": "integer" }, "label": { "required": true, "type": "string" } } }, "currentcontrol": { "type": "object", "properties": { "label": { "required": true, "type": "string" } } }, "stereoscopicmode": { "$ref": "GUI.Stereoscopy.Mode" }, "skin": { "type": "object", "properties": { "id": { "minLength": 1, "required": true, "type": "string" }, "name": { "default": "", "type": "string" } } } } } |
GUI.Stereoscopy.Mode
Type: object
Properties:
- string mode
- string label
JSON Schema Description |
---|
{ "type": "object", "id": "GUI.Stereoscopy.Mode", "properties": { "mode": { "enums": [ "off", "split_vertical", "split_horizontal", "row_interleaved", "hardware_based", "anaglyph_cyan_red", "anaglyph_green_magenta", "anaglyph_yellow_blue", "monoscopic" ], "type": "string", "required": true }, "label": { "required": true, "type": "string" } } } |
GUI.Window
Type: string
JSON Schema Description |
---|
{ "default": "accesspoints", "enums": [ "accesspoints", "addon", "addonbrowser", "addoninformation", "addonsettings", "appearancesettings", "busydialog", "busydialognocancel", "contentsettings", "contextmenu", "eventlog", "extendedprogressdialog", "favourites", "filebrowser", "filemanager", "fullscreengame", "fullscreeninfo", "fullscreenlivetv", "fullscreenlivetvinput", "fullscreenlivetvpreview", "fullscreenradio", "fullscreenradioinput", "fullscreenradiopreview", "fullscreenvideo", "gameadvancedsettings", "gamecontrollers", "gameosd", "gamepadinput", "games", "gamesettings", "gamestretchmode", "gamevideofilter", "gamevideorotation", "gamevolume", "home", "infoprovidersettings", "interfacesettings", "libexportsettings", "locksettings", "loginscreen", "mediafilter", "mediasettings", "mediasource", "movieinformation", "music", "musicinformation", "musicosd", "musicplaylist", "musicplaylisteditor", "networksetup", "notification", "numericinput", "okdialog", "osdaudiosettings", "osdcmssettings", "osdsubtitlesettings", "osdvideosettings", "peripheralsettings", "pictureinfo", "pictures", "playercontrols", "playerprocessinfo", "playersettings", "profiles", "profilesettings", "programs", "progressdialog", "pvrchannelguide", "pvrchannelmanager", "pvrchannelscan", "pvrgroupmanager", "pvrguideinfo", "pvrguidesearch", "pvrosdchannels", "pvrosdguide", "pvrosdteletext", "pvrradiordsinfo", "pvrrecordinginfo", "pvrsettings", "pvrtimersetting", "pvrupdateprogress", "radiochannels", "radioguide", "radiorecordings", "radiosearch", "radiotimerrules", "radiotimers", "screencalibration", "screensaver", "seekbar", "selectdialog", "servicesettings", "settings", "shutdownmenu", "skinsettings", "sliderdialog", "slideshow", "smartplaylisteditor", "smartplaylistrule", "songinformation", "splash", "startup", "startwindow", "submenu", "subtitlesearch", "systeminfo", "systemsettings", "teletext", "textviewer", "tvchannels", "tvguide", "tvrecordings", "tvsearch", "tvtimerrules", "tvtimers", "videobookmarks", "videomenu", "videoosd", "videoplaylist", "videos", "videotimeseek", "virtualkeyboard", "visualisation", "visualisationpresetlist", "volumebar", "weather", "yesnodialog" ], "type": "string", "id": "GUI.Window" } |
Global
Global.IncrementDecrement
Type: string
JSON Schema Description |
---|
{ "default": "increment", "enums": [ "increment", "decrement" ], "type": "string", "id": "Global.IncrementDecrement" } |
Global.String.NotEmpty
Type: string
JSON Schema Description |
---|
{ "default": "", "minLength": 1, "type": "string", "id": "Global.String.NotEmpty" } |
Global.Time
Type: object
Properties:
- integer hours
- integer seconds
- integer minutes
- integer milliseconds
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Global.Time", "properties": { "hours": { "minimum": 0, "type": "integer", "maximum": 23, "required": true }, "seconds": { "minimum": 0, "type": "integer", "maximum": 59, "required": true }, "minutes": { "minimum": 0, "type": "integer", "maximum": 59, "required": true }, "milliseconds": { "minimum": 0, "type": "integer", "maximum": 999, "required": true } } } |
Global.Toggle
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "boolean" }, { "enums": [ "toggle" ], "type": "string" } ], "id": "Global.Toggle" } |
Global.Weekday
Type: string
JSON Schema Description |
---|
{ "default": "monday", "enums": [ "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" ], "type": "string", "id": "Global.Weekday" } |
Input
Input.Action
Type: string
JSON Schema Description |
---|
{ "default": "analogfastforward", "enums": [ "analogfastforward", "analogmove", "analogmovexleft", "analogmovexright", "analogmoveydown", "analogmoveyup", "analogrewind", "analogseekback", "analogseekforward", "aspectratio", "audiodelay", "audiodelayminus", "audiodelayplus", "audionextlanguage", "audiotoggledigital", "back", "backspace", "bigstepback", "bigstepforward", "blue", "browsesubtitle", "channeldown", "channelnumberseparator", "channelup", "chapterorbigstepback", "chapterorbigstepforward", "close", "codecinfo", "contextmenu", "copy", "createbookmark", "createepisodebookmark", "cursorleft", "cursorright", "cyclesubtitle", "decreasepar", "decreaserating", "decreasevisrating", "delete", "doubleclick", "down", "enter", "error", "fastforward", "filter", "filterclear", "filtersms2", "filtersms3", "filtersms4", "filtersms5", "filtersms6", "filtersms7", "filtersms8", "filtersms9", "firstpage", "fullscreen", "green", "guiprofile", "highlight", "increasepar", "increaserating", "increasevisrating", "info", "jumpsms2", "jumpsms3", "jumpsms4", "jumpsms5", "jumpsms6", "jumpsms7", "jumpsms8", "jumpsms9", "lastpage", "left", "leftclick", "lockpreset", "longclick", "longpress", "menu", "middleclick", "mousedrag", "mousemove", "move", "moveitemdown", "moveitemup", "mute", "nextcalibration", "nextchannelgroup", "nextletter", "nextpicture", "nextpreset", "nextresolution", "nextscene", "nextstereomode", "nextsubtitle", "noop", "number0", "number1", "number2", "number3", "number4", "number5", "number6", "number7", "number8", "number9", "osd", "pagedown", "pageup", "pangesture", "parentdir", "parentfolder", "pause", "play", "playerdebug", "playerprocessinfo", "playerprogramselect", "playerresolutionselect", "playlist", "playnext", "playpause", "playpvr", "playpvrradio", "playpvrtv", "previouschannelgroup", "previousmenu", "previouspicture", "previouspreset", "previousscene", "previousstereomode", "prevletter", "queue", "randompreset", "record", "red", "reloadkeymaps", "rename", "resetcalibration", "rewind", "right", "rightclick", "rotate", "rotateccw", "rotategesture", "scanitem", "screenshot", "scrolldown", "scrollup", "select", "setrating", "settingslevelchange", "settingsreset", "shift", "showpreset", "showsubtitles", "showtime", "showtimerrule", "showvideomenu", "skipnext", "skipprevious", "smallstepback", "stepback", "stepforward", "stereomode", "stereomodetomono", "stop", "subtitlealign", "subtitledelay", "subtitledelayminus", "subtitledelayplus", "subtitleshiftdown", "subtitleshiftup", "swipedown", "swipeleft", "swiperight", "swipeup", "switchplayer", "symbols", "tap", "togglecommskip", "togglefont", "togglefullscreen", "togglestereomode", "togglewatched", "up", "verticalshiftdown", "verticalshiftup", "videonextstream", "voicerecognizer", "volampdown", "volampup", "volumeamplification", "volumedown", "volumeup", "wheeldown", "wheelup", "yellow", "zoomgesture", "zoomin", "zoomlevel1", "zoomlevel2", "zoomlevel3", "zoomlevel4", "zoomlevel5", "zoomlevel6", "zoomlevel7", "zoomlevel8", "zoomlevel9", "zoomnormal", "zoomout" ], "type": "string", "id": "Input.Action" } |
Item
Item.Details.Base
Type: object
Properties:
- string label
JSON Schema Description |
---|
{ "type": "object", "id": "Item.Details.Base", "properties": { "label": { "required": true, "type": "string" } } } |
Item.Fields.Base
Type: array
JSON Schema Description |
---|
{ "uniqueItems": true, "items": { "type": "string" }, "type": "array", "id": "Item.Fields.Base" } |
Library
Library.Details.Genre
Extends:
Properties:
- [Array.Integer sourceid]
- Library.Id genreid
- [string thumbnail]
- [string title]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Library.Details.Genre", "properties": { "sourceid": { "description": "The ids of sources with songs of the genre", "$ref": "Array.Integer" }, "genreid": { "required": true, "$ref": "Library.Id" }, "thumbnail": { "default": "", "type": "string" }, "title": { "default": "", "type": "string" } } } |
Library.Details.Source
Extends:
Properties:
- Library.Id sourceid
- [Array.String paths]
- string file
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Library.Details.Source", "properties": { "sourceid": { "required": true, "$ref": "Library.Id" }, "paths": { "description": "The individual paths of the media source", "$ref": "Array.String" }, "file": { "required": true, "type": "string", "description": "The url encoded multipath string combining all paths of the source " } } } |
Library.Details.Tag
Extends:
Properties:
- Library.Id tagid
- [string title]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Library.Details.Tag", "properties": { "tagid": { "required": true, "$ref": "Library.Id" }, "title": { "default": "", "type": "string" } } } |
Library.Fields.Genre
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "thumbnail", "sourceid" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Library.Fields.Genre" } |
Library.Fields.Source
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "file", "paths" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Library.Fields.Source" } |
Library.Fields.Tag
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Library.Fields.Tag" } |
Library.Id
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 1, "type": "integer", "id": "Library.Id" } |
List
List.Amount
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "List.Amount" } |
List.Fields.All
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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", "sortartist", "musicbrainzreleasegroupid", "mediapath", "dynpath" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "List.Fields.All" } |
List.Fields.Files
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "List.Fields.Files" } |
List.Filter.Albums
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.Albums" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.Albums" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.Albums" } ], "id": "List.Filter.Albums" } |
List.Filter.Artists
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.Artists" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.Artists" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.Artists" } ], "id": "List.Filter.Artists" } |
List.Filter.Episodes
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.Episodes" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.Episodes" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.Episodes" } ], "id": "List.Filter.Episodes" } |
List.Filter.Fields.Albums
Type: string
JSON Schema Description |
---|
{ "default": "genre", "enums": [ "genre", "source", "album", "artist", "albumartist", "year", "review", "themes", "moods", "styles", "compilation", "type", "label", "rating", "userrating", "playcount", "lastplayed", "path", "playlist", "virtualfolder" ], "type": "string", "id": "List.Filter.Fields.Albums" } |
List.Filter.Fields.Artists
Type: string
JSON Schema Description |
---|
{ "default": "artist", "enums": [ "artist", "source", "genre", "moods", "styles", "instruments", "biography", "artisttype", "gender", "disambiguation", "born", "bandformed", "disbanded", "died", "role", "path", "playlist", "virtualfolder" ], "type": "string", "id": "List.Filter.Fields.Artists" } |
List.Filter.Fields.Episodes
Type: string
JSON Schema Description |
---|
{ "default": "title", "enums": [ "title", "tvshow", "originaltitle", "plot", "votes", "rating", "userrating", "time", "writers", "airdate", "playcount", "lastplayed", "inprogress", "genre", "year", "director", "actor", "episode", "season", "filename", "path", "studio", "mpaarating", "dateadded", "tag", "videoresolution", "audiochannels", "audiocount", "subtitlecount", "videocodec", "audiocodec", "audiolanguage", "subtitlelanguage", "videoaspect", "playlist", "virtualfolder" ], "type": "string", "id": "List.Filter.Fields.Episodes" } |
List.Filter.Fields.Movies
Type: string
JSON Schema Description |
---|
{ "default": "title", "enums": [ "title", "originaltitle", "plot", "plotoutline", "tagline", "votes", "rating", "userrating", "time", "writers", "playcount", "lastplayed", "inprogress", "genre", "country", "year", "director", "actor", "mpaarating", "top250", "studio", "hastrailer", "filename", "path", "set", "tag", "dateadded", "videoresolution", "audiochannels", "audiocount", "subtitlecount", "videocodec", "audiocodec", "audiolanguage", "subtitlelanguage", "videoaspect", "playlist", "virtualfolder" ], "type": "string", "id": "List.Filter.Fields.Movies" } |
List.Filter.Fields.MusicVideos
Type: string
JSON Schema Description |
---|
{ "default": "title", "enums": [ "title", "genre", "album", "year", "artist", "filename", "path", "playcount", "lastplayed", "rating", "userrating", "time", "director", "studio", "plot", "tag", "dateadded", "videoresolution", "audiochannels", "audiocount", "subtitlecount", "videocodec", "audiocodec", "audiolanguage", "subtitlelanguage", "videoaspect", "playlist", "virtualfolder" ], "type": "string", "id": "List.Filter.Fields.MusicVideos" } |
List.Filter.Fields.Songs
Type: string
JSON Schema Description |
---|
{ "default": "genre", "enums": [ "genre", "source", "album", "artist", "albumartist", "title", "year", "time", "tracknumber", "filename", "path", "playcount", "lastplayed", "rating", "userrating", "comment", "moods", "playlist", "virtualfolder" ], "type": "string", "id": "List.Filter.Fields.Songs" } |
List.Filter.Fields.TVShows
Type: string
JSON Schema Description |
---|
{ "default": "title", "enums": [ "title", "originaltitle", "plot", "status", "votes", "rating", "userrating", "year", "genre", "director", "actor", "numepisodes", "numwatched", "playcount", "path", "studio", "mpaarating", "dateadded", "lastplayed", "inprogress", "tag", "playlist", "virtualfolder" ], "type": "string", "id": "List.Filter.Fields.TVShows" } |
List.Filter.Fields.Textures
Type: string
JSON Schema Description |
---|
{ "default": "textureid", "enums": [ "textureid", "url", "cachedurl", "lasthashcheck", "imagehash", "width", "height", "usecount", "lastused" ], "type": "string", "id": "List.Filter.Fields.Textures" } |
List.Filter.Movies
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.Movies" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.Movies" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.Movies" } ], "id": "List.Filter.Movies" } |
List.Filter.MusicVideos
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.MusicVideos" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.MusicVideos" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.MusicVideos" } ], "id": "List.Filter.MusicVideos" } |
List.Filter.Operators
Type: string
JSON Schema Description |
---|
{ "default": "contains", "enums": [ "contains", "doesnotcontain", "is", "isnot", "startswith", "endswith", "greaterthan", "lessthan", "after", "before", "inthelast", "notinthelast", "true", "false", "between" ], "type": "string", "id": "List.Filter.Operators" } |
List.Filter.Rule
Type: object
Properties:
- List.Filter.Operators operator
- mixed: string|array value
JSON Schema Description |
---|
{ "type": "object", "id": "List.Filter.Rule", "properties": { "operator": { "required": true, "$ref": "List.Filter.Operators" }, "value": { "required": true, "type": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ] } } } |
List.Filter.Rule.Albums
Extends:
Properties:
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.Albums", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.Albums" } } } |
List.Filter.Rule.Artists
Extends:
Properties:
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.Artists", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.Artists" } } } |
List.Filter.Rule.Episodes
Extends:
Properties:
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.Episodes", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.Episodes" } } } |
List.Filter.Rule.Movies
Extends:
Properties:
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.Movies", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.Movies" } } } |
List.Filter.Rule.MusicVideos
Extends:
Properties:
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.MusicVideos", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.MusicVideos" } } } |
List.Filter.Rule.Songs
Extends:
Properties:
- List.Filter.Fields.Songs field
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.Songs", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.Songs" } } } |
List.Filter.Rule.TVShows
Extends:
Properties:
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.TVShows", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.TVShows" } } } |
List.Filter.Rule.Textures
Extends:
Properties:
JSON Schema Description |
---|
{ "extends": "List.Filter.Rule", "id": "List.Filter.Rule.Textures", "properties": { "field": { "required": true, "$ref": "List.Filter.Fields.Textures" } } } |
List.Filter.Songs
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.Songs" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.Songs" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.Songs" } ], "id": "List.Filter.Songs" } |
List.Filter.TVShows
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.TVShows" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.TVShows" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.TVShows" } ], "id": "List.Filter.TVShows" } |
List.Filter.Textures
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "properties": { "and": { "minItems": 1, "items": { "$ref": "List.Filter.Textures" }, "required": true, "type": "array" } } }, { "type": "object", "properties": { "or": { "minItems": 1, "items": { "$ref": "List.Filter.Textures" }, "required": true, "type": "array" } } }, { "$ref": "List.Filter.Rule.Textures" } ], "id": "List.Filter.Textures" } |
List.Item.All
Extends:
Properties:
- [boolean locked]
- [integer channelnumber]
- [string starttime]
- [PVR.Channel.Type channeltype = tv]
- [string endtime]
- [boolean hidden]
- [string channel]
JSON Schema Description |
---|
{ "extends": "List.Item.Base", "id": "List.Item.All", "properties": { "locked": { "default": false, "type": "boolean" }, "channelnumber": { "default": 0, "type": "integer" }, "starttime": { "default": "", "type": "string" }, "channeltype": { "default": "tv", "$ref": "PVR.Channel.Type" }, "endtime": { "default": "", "type": "string" }, "hidden": { "default": false, "type": "boolean" }, "channel": { "default": "", "type": "string" } } } |
List.Item.Base
Extends:
Properties:
- [string comment]
- [string episodeguide]
- [Library.Id tvshowid = -1]
- [string set]
- [string tagline]
- [Audio.Contributors contributors]
- [Audio.Album.ReleaseType releasetype = album]
- [string dynpath]
- [Array.String tag]
- [string displayorchestra]
- [integer disc]
- [integer duration]
- [Library.Id setid = -1]
- [Library.Id id = -1]
- [string displayconductor]
- [string album]
- [Array.String style]
- [integer specialsortseason]
- [Audio.Album.ReleaseType albumreleasetype = album]
- [string lyrics]
- [integer specialsortepisode]
- [string mediapath]
- [string mpaa]
- [Array.String writer]
- [Library.Id albumid = -1]
- [Array.String theme]
- [string displaycomposer]
- [string type = unknown]
- [boolean compilation]
- [string plotoutline]
- [string description]
- [integer track]
- [integer season]
- [Array.Integer albumartistid]
- [integer watchedepisodes]
- [string musicbrainztrackid]
- [string imdbnumber]
- [Array.String studio]
- [Media.UniqueID uniqueid]
- [Array.String showlink]
- [string showtitle]
- [Array.String mood]
- [integer episode]
- [Array.String musicbrainzartistid]
- [string displaylyricist]
- [string albumlabel]
- [string productioncode]
- [Array.String country]
- [Array.String albumartist]
- [string premiered]
- [string originaltitle]
- [Video.Cast cast]
- [string firstaired]
- [string sorttitle]
- [string votes]
- [integer top250]
- [string trailer]
JSON Schema Description |
---|
{ "extends": [ "Video.Details.File", "Audio.Details.Media" ], "id": "List.Item.Base", "properties": { "comment": { "default": "", "type": "string" }, "episodeguide": { "default": "", "type": "string" }, "tvshowid": { "default": -1, "$ref": "Library.Id" }, "set": { "default": "", "type": "string" }, "tagline": { "default": "", "type": "string" }, "contributors": { "$ref": "Audio.Contributors" }, "releasetype": { "default": "album", "$ref": "Audio.Album.ReleaseType" }, "dynpath": { "default": "", "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" }, "tag": { "$ref": "Array.String" }, "displayorchestra": { "default": "", "type": "string" }, "disc": { "default": 0, "type": "integer" }, "duration": { "default": 0, "type": "integer" }, "setid": { "default": -1, "$ref": "Library.Id" }, "id": { "default": -1, "$ref": "Library.Id" }, "displayconductor": { "default": "", "type": "string" }, "album": { "default": "", "type": "string" }, "style": { "$ref": "Array.String" }, "specialsortseason": { "default": 0, "type": "integer" }, "albumreleasetype": { "default": "album", "$ref": "Audio.Album.ReleaseType" }, "lyrics": { "default": "", "type": "string" }, "specialsortepisode": { "default": 0, "type": "integer" }, "mediapath": { "default": "", "type": "string", "description": "Media source path that identifies the item" }, "mpaa": { "default": "", "type": "string" }, "writer": { "$ref": "Array.String" }, "albumid": { "default": -1, "$ref": "Library.Id" }, "theme": { "$ref": "Array.String" }, "displaycomposer": { "default": "", "type": "string" }, "type": { "default": "unknown", "enums": [ "unknown", "movie", "episode", "musicvideo", "song", "picture", "channel" ], "type": "string" }, "compilation": { "default": false, "type": "boolean" }, "plotoutline": { "default": "", "type": "string" }, "description": { "default": "", "type": "string" }, "track": { "default": 0, "type": "integer" }, "season": { "default": 0, "type": "integer" }, "albumartistid": { "$ref": "Array.Integer" }, "watchedepisodes": { "default": 0, "type": "integer" }, "musicbrainztrackid": { "default": "", "type": "string" }, "imdbnumber": { "default": "", "type": "string" }, "studio": { "$ref": "Array.String" }, "uniqueid": { "$ref": "Media.UniqueID" }, "showlink": { "$ref": "Array.String" }, "showtitle": { "default": "", "type": "string" }, "mood": { "$ref": "Array.String" }, "episode": { "default": 0, "type": "integer" }, "musicbrainzartistid": { "$ref": "Array.String" }, "displaylyricist": { "default": "", "type": "string" }, "albumlabel": { "default": "", "type": "string" }, "productioncode": { "default": "", "type": "string" }, "country": { "$ref": "Array.String" }, "albumartist": { "$ref": "Array.String" }, "premiered": { "default": "", "type": "string" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "firstaired": { "default": "", "type": "string" }, "sorttitle": { "default": "", "type": "string" }, "votes": { "default": "", "type": "string" }, "top250": { "default": 0, "type": "integer" }, "trailer": { "default": "", "type": "string" } } } |
List.Item.File
Extends:
Properties:
- [string mimetype]
- [string lastmodified]
- string filetype
- string file
- [integer size]
JSON Schema Description |
---|
{ "extends": "List.Item.Base", "id": "List.Item.File", "properties": { "mimetype": { "default": "", "type": "string" }, "lastmodified": { "default": "", "type": "string" }, "filetype": { "enums": [ "file", "directory" ], "type": "string", "required": true }, "file": { "required": true, "type": "string" }, "size": { "default": 0, "type": "integer", "description": "Size of the file in bytes" } } } |
List.Items.Sources
Type: array
JSON Schema Description |
---|
{ "items": { "extends": "Item.Details.Base", "properties": { "file": { "required": true, "type": "string" } } }, "type": "array", "id": "List.Items.Sources" } |
List.Limits
Type: object
Properties:
- [integer start]
- [List.Amount end = -1]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "List.Limits", "properties": { "start": { "default": 0, "minimum": 0, "type": "integer", "description": "Index of the first item to return" }, "end": { "default": -1, "description": "Index of the last item to return", "$ref": "List.Amount" } } } |
List.LimitsReturned
Type: object
Properties:
- [integer start]
- integer total
- [List.Amount end = -1]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "List.LimitsReturned", "properties": { "start": { "default": 0, "minimum": 0, "type": "integer" }, "total": { "minimum": 0, "type": "integer", "required": true }, "end": { "default": -1, "$ref": "List.Amount" } } } |
List.Sort
Type: object
Properties:
- [boolean useartistsortname]
- [string order = ascending]
- [boolean ignorearticle]
- [string method = none]
JSON Schema Description |
---|
{ "type": "object", "id": "List.Sort", "properties": { "useartistsortname": { "default": false, "type": "boolean" }, "order": { "default": "ascending", "enums": [ "ascending", "descending" ], "type": "string" }, "ignorearticle": { "default": false, "type": "boolean" }, "method": { "default": "none", "enums": [ "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" ], "type": "string" } } } |
Media
Media.Artwork
Type: object
Properties:
- [Global.String.NotEmpty fanart]
- [Global.String.NotEmpty poster]
- [Global.String.NotEmpty banner]
- [Global.String.NotEmpty thumb]
JSON Schema Description |
---|
{ "additionalProperties": { "default": "", "$ref": "Global.String.NotEmpty" }, "type": "object", "id": "Media.Artwork", "properties": { "fanart": { "default": "", "$ref": "Global.String.NotEmpty" }, "poster": { "default": "", "$ref": "Global.String.NotEmpty" }, "banner": { "default": "", "$ref": "Global.String.NotEmpty" }, "thumb": { "default": "", "$ref": "Global.String.NotEmpty" } } } |
Media.Artwork.Set
Type: object
Properties:
- [mixed: null|Global.String.NotEmpty fanart]
- [mixed: null|Global.String.NotEmpty poster]
- [mixed: null|Global.String.NotEmpty banner]
- [mixed: null|Global.String.NotEmpty thumb]
JSON Schema Description |
---|
{ "additionalProperties": { "default": null, "type": [ { "type": "null" }, { "$ref": "Global.String.NotEmpty" } ] }, "type": "object", "id": "Media.Artwork.Set", "properties": { "fanart": { "default": "", "type": [ { "type": "null" }, { "$ref": "Global.String.NotEmpty" } ] }, "poster": { "default": "", "type": [ { "type": "null" }, { "$ref": "Global.String.NotEmpty" } ] }, "banner": { "default": "", "type": [ { "type": "null" }, { "$ref": "Global.String.NotEmpty" } ] }, "thumb": { "default": "", "type": [ { "type": "null" }, { "$ref": "Global.String.NotEmpty" } ] } } } |
Media.Details.Base
Extends:
Properties:
- [string fanart]
- [string thumbnail]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Media.Details.Base", "properties": { "fanart": { "default": "", "type": "string" }, "thumbnail": { "default": "", "type": "string" } } } |
Media.UniqueID
Type: object
JSON Schema Description |
---|
{ "additionalProperties": { "default": "", "$ref": "Global.String.NotEmpty" }, "type": "object", "id": "Media.UniqueID" } |
Media.UniqueID.Set
Type: object
JSON Schema Description |
---|
{ "additionalProperties": { "default": null, "type": [ { "type": "null" }, { "$ref": "Global.String.NotEmpty" } ] }, "type": "object", "id": "Media.UniqueID.Set" } |
Notifications
Notifications.Item
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "type": "object", "description": "An unknown item does not have any additional information.", "properties": { "type": { "required": true, "$ref": "Notifications.Item.Type" } } }, { "type": "object", "description": "An item known to the database has an identification.", "properties": { "type": { "required": true, "$ref": "Notifications.Item.Type" }, "id": { "required": true, "$ref": "Library.Id" } } }, { "type": "object", "description": "A movie item has a title and may have a release year.", "properties": { "year": { "default": 0, "type": "integer" }, "type": { "required": true, "$ref": "Notifications.Item.Type" }, "title": { "required": true, "type": "string" } } }, { "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": { "season": { "default": 0, "type": "integer" }, "type": { "required": true, "$ref": "Notifications.Item.Type" }, "episode": { "default": 0, "type": "integer" }, "showtitle": { "default": "", "type": "string" }, "title": { "required": true, "type": "string" } } }, { "type": "object", "description": "A music video has a title and may have an album and an artist.", "properties": { "album": { "default": "", "type": "string" }, "title": { "required": true, "type": "string" }, "type": { "required": true, "$ref": "Notifications.Item.Type" }, "artist": { "default": "", "type": "string" } } }, { "type": "object", "description": "A song has a title and may have an album, an artist and a track number.", "properties": { "album": { "default": "", "type": "string" }, "track": { "default": 0, "type": "integer" }, "title": { "required": true, "type": "string" }, "type": { "required": true, "$ref": "Notifications.Item.Type" }, "artist": { "default": "", "type": "string" } } }, { "type": "object", "description": "A picture has a file path.", "properties": { "type": { "required": true, "$ref": "Notifications.Item.Type" }, "file": { "required": true, "type": "string" } } }, { "type": "object", "description": "A PVR channel is either a radio or tv channel and has a title.", "properties": { "channeltype": { "required": true, "$ref": "PVR.Channel.Type" }, "type": { "required": true, "$ref": "Notifications.Item.Type" }, "id": { "required": true, "$ref": "Library.Id" }, "title": { "required": true, "type": "string" } } } ], "id": "Notifications.Item" } |
Notifications.Item.Type
Type: string
JSON Schema Description |
---|
{ "default": "unknown", "enums": [ "unknown", "movie", "episode", "musicvideo", "song", "picture", "channel" ], "type": "string", "id": "Notifications.Item.Type" } |
Optional
Optional.Boolean
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "null" }, { "type": "boolean" } ], "id": "Optional.Boolean" } |
Optional.Integer
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "null" }, { "type": "integer" } ], "id": "Optional.Integer" } |
Optional.Number
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "null" }, { "type": "number" } ], "id": "Optional.Number" } |
Optional.String
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "null" }, { "type": "string" } ], "id": "Optional.String" } |
PVR
PVR.Channel.Type
Type: string
JSON Schema Description |
---|
{ "default": "tv", "enums": [ "tv", "radio" ], "type": "string", "id": "PVR.Channel.Type" } |
PVR.ChannelGroup.Id
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "$ref": "Library.Id" }, { "enums": [ "alltv", "allradio" ], "type": "string" } ], "id": "PVR.ChannelGroup.Id" } |
PVR.Details.Broadcast
Extends:
Properties:
- [integer rating]
- [integer episodenum]
- Library.Id broadcastid
- [boolean isseries]
- [integer year]
- [integer episodepart]
- [string plot]
- [string title]
- [string writer]
- [integer progress]
- [number progresspercentage]
- [string thumbnail]
- [string recording]
- [string plotoutline]
- [boolean wasactive]
- [string director]
- [integer imdbnumber]
- [integer parentalrating]
- [string genre]
- [string endtime]
- [integer runtime]
- [string episodename]
- [string originaltitle]
- [string cast]
- [string firstaired]
- [string starttime]
- [boolean hastimerrule]
- [boolean hastimer]
- [boolean hasrecording]
- [boolean isactive]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "PVR.Details.Broadcast", "properties": { "rating": { "default": 0, "type": "integer" }, "episodenum": { "default": 0, "type": "integer" }, "broadcastid": { "required": true, "$ref": "Library.Id" }, "isseries": { "default": false, "type": "boolean" }, "year": { "default": 0, "type": "integer" }, "episodepart": { "default": 0, "type": "integer" }, "plot": { "default": "", "type": "string" }, "title": { "default": "", "type": "string" }, "writer": { "default": "", "type": "string" }, "progress": { "default": 0, "type": "integer" }, "progresspercentage": { "default": 0.0, "type": "number" }, "thumbnail": { "default": "", "type": "string" }, "recording": { "default": "", "type": "string" }, "plotoutline": { "default": "", "type": "string" }, "wasactive": { "default": false, "type": "boolean" }, "director": { "default": "", "type": "string" }, "imdbnumber": { "default": 0, "type": "integer" }, "parentalrating": { "default": 0, "type": "integer" }, "genre": { "default": "", "type": "string" }, "endtime": { "default": "", "type": "string" }, "runtime": { "default": 0, "type": "integer" }, "episodename": { "default": "", "type": "string" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "default": "", "type": "string" }, "firstaired": { "default": "", "type": "string" }, "starttime": { "default": "", "type": "string" }, "hastimerrule": { "default": false, "type": "boolean" }, "hastimer": { "default": false, "type": "boolean" }, "hasrecording": { "default": false, "type": "boolean" }, "isactive": { "default": false, "type": "boolean" } } } |
PVR.Details.Channel
Extends:
Properties:
- [string lastplayed]
- Library.Id channelid
- [boolean locked]
- [boolean isrecording]
- [PVR.Details.Broadcast broadcastnext]
- [string thumbnail]
- [integer subchannelnumber]
- [integer channelnumber]
- integer uniqueid
- [PVR.Channel.Type channeltype = tv]
- [PVR.Details.Broadcast broadcastnow]
- [boolean hidden]
- [string channel]
- [string icon]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "PVR.Details.Channel", "properties": { "lastplayed": { "default": "", "type": "string" }, "channelid": { "required": true, "$ref": "Library.Id" }, "locked": { "default": false, "type": "boolean" }, "isrecording": { "default": false, "type": "boolean" }, "broadcastnext": { "$ref": "PVR.Details.Broadcast" }, "thumbnail": { "default": "", "type": "string" }, "subchannelnumber": { "default": 0, "type": "integer" }, "channelnumber": { "default": 0, "type": "integer" }, "uniqueid": { "required": true, "type": "integer" }, "channeltype": { "default": "tv", "$ref": "PVR.Channel.Type" }, "broadcastnow": { "$ref": "PVR.Details.Broadcast" }, "hidden": { "default": false, "type": "boolean" }, "channel": { "default": "", "type": "string" }, "icon": { "default": "", "type": "string" } } } |
PVR.Details.ChannelGroup
Extends:
Properties:
- PVR.Channel.Type channeltype
- Library.Id channelgroupid
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "PVR.Details.ChannelGroup", "properties": { "channeltype": { "required": true, "$ref": "PVR.Channel.Type" }, "channelgroupid": { "required": true, "$ref": "Library.Id" } } } |
PVR.Details.ChannelGroup.Extended
Extends:
Properties:
- [array channels]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "extends": "PVR.Details.ChannelGroup", "id": "PVR.Details.ChannelGroup.Extended", "properties": { "channels": { "items": { "$ref": "PVR.Details.Channel" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } } |
PVR.Details.Recording
Extends:
Properties:
- [string plot]
- [string plotoutline]
- [integer runtime]
- [Media.Artwork art]
- [string starttime]
- [Video.Resume resume]
- Library.Id recordingid
- [integer channeluid]
- [string title]
- [string streamurl]
- [string genre]
- [boolean radio]
- [boolean isdeleted]
- [string file]
- [integer epgeventid]
- [string directory]
- [integer lifetime]
- [integer playcount]
- [string endtime]
- [string channel]
- [string icon]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "PVR.Details.Recording", "properties": { "plot": { "default": "", "type": "string" }, "plotoutline": { "default": "", "type": "string" }, "runtime": { "default": 0, "type": "integer" }, "art": { "$ref": "Media.Artwork" }, "starttime": { "default": "", "type": "string" }, "resume": { "$ref": "Video.Resume" }, "recordingid": { "required": true, "$ref": "Library.Id" }, "channeluid": { "default": 0, "type": "integer" }, "title": { "default": "", "type": "string" }, "streamurl": { "default": "", "type": "string" }, "genre": { "default": "", "type": "string" }, "radio": { "default": false, "type": "boolean" }, "isdeleted": { "default": false, "type": "boolean" }, "file": { "default": "", "type": "string" }, "epgeventid": { "default": 0, "type": "integer" }, "directory": { "default": "", "type": "string" }, "lifetime": { "default": 0, "type": "integer" }, "playcount": { "default": 0, "type": "integer" }, "endtime": { "default": "", "type": "string" }, "channel": { "default": "", "type": "string" }, "icon": { "default": "", "type": "string" } } } |
PVR.Details.Timer
Extends:
Properties:
- [integer epguid]
- [boolean endanytime]
- [string file]
- [integer lifetime]
- [integer endmargin]
- Library.Id timerid
- [string title]
- [boolean isreadonly]
- [boolean startanytime]
- [array weekdays]
- [boolean istimerrule]
- [integer priority]
- [PVR.TimerState state = unknown]
- [boolean ismanual]
- [integer maxrecordings]
- [string firstday]
- [string epgsearchstring]
- [string endtime]
- [integer preventduplicateepisodes]
- [integer recordinggroup]
- [Library.Id channelid = -1]
- [boolean isradio]
- [string summary]
- [boolean fulltextepgsearch]
- [string starttime]
- [string directory]
- [integer runtime]
- [integer startmargin]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "PVR.Details.Timer", "properties": { "epguid": { "default": 0, "type": "integer" }, "endanytime": { "default": false, "type": "boolean" }, "file": { "default": "", "type": "string" }, "lifetime": { "default": 0, "type": "integer" }, "endmargin": { "default": 0, "type": "integer" }, "timerid": { "required": true, "$ref": "Library.Id" }, "title": { "default": "", "type": "string" }, "isreadonly": { "default": false, "type": "boolean" }, "startanytime": { "default": false, "type": "boolean" }, "weekdays": { "uniqueItems": true, "items": { "$ref": "Global.Weekday" }, "type": "array" }, "istimerrule": { "default": false, "type": "boolean" }, "priority": { "default": 0, "type": "integer" }, "state": { "default": "unknown", "$ref": "PVR.TimerState" }, "ismanual": { "default": false, "type": "boolean" }, "maxrecordings": { "default": 0, "type": "integer" }, "firstday": { "default": "", "type": "string" }, "epgsearchstring": { "default": "", "type": "string" }, "endtime": { "default": "", "type": "string" }, "preventduplicateepisodes": { "default": 0, "type": "integer" }, "recordinggroup": { "default": 0, "type": "integer" }, "channelid": { "default": -1, "$ref": "Library.Id" }, "isradio": { "default": false, "type": "boolean" }, "summary": { "default": "", "type": "string" }, "fulltextepgsearch": { "default": false, "type": "boolean" }, "starttime": { "default": "", "type": "string" }, "directory": { "default": "", "type": "string" }, "runtime": { "default": 0, "type": "integer" }, "startmargin": { "default": 0, "type": "integer" } } } |
PVR.Fields.Broadcast
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "PVR.Fields.Broadcast" } |
PVR.Fields.Channel
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "thumbnail", "channeltype", "hidden", "locked", "channel", "lastplayed", "broadcastnow", "broadcastnext", "uniqueid", "icon", "channelnumber", "subchannelnumber", "isrecording" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "PVR.Fields.Channel" } |
PVR.Fields.Recording
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "plot", "plotoutline", "genre", "playcount", "resume", "channel", "starttime", "endtime", "runtime", "lifetime", "icon", "art", "streamurl", "file", "directory", "radio", "isdeleted", "epgeventid", "channeluid" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "PVR.Fields.Recording" } |
PVR.Fields.Timer
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "PVR.Fields.Timer" } |
PVR.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "available", "enums": [ "available", "recording", "scanning" ], "type": "string", "id": "PVR.Property.Name" } |
PVR.Property.Value
Type: object
Properties:
- [boolean available]
- [boolean recording]
- [boolean scanning]
JSON Schema Description |
---|
{ "type": "object", "id": "PVR.Property.Value", "properties": { "available": { "default": false, "type": "boolean" }, "recording": { "default": false, "type": "boolean" }, "scanning": { "default": false, "type": "boolean" } } } |
PVR.TimerState
Type: string
JSON Schema Description |
---|
{ "default": "unknown", "enums": [ "unknown", "new", "scheduled", "recording", "completed", "aborted", "cancelled", "conflict_ok", "conflict_notok", "error", "disabled" ], "type": "string", "id": "PVR.TimerState" } |
Player
Player.Audio.Stream
Type: object
Properties:
- integer index
- string name
- string language
- integer channels
- string codec
- integer bitrate
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Audio.Stream", "properties": { "index": { "minimum": 0, "type": "integer", "required": true }, "name": { "required": true, "type": "string" }, "language": { "required": true, "type": "string" }, "channels": { "required": true, "type": "integer" }, "codec": { "required": true, "type": "string" }, "bitrate": { "required": true, "type": "integer" } } } |
Player.CustomViewMode
Type: object
Properties:
- [mixed: string|Optional.Boolean nonlinearstretch]
- [mixed: string|Optional.Number verticalshift]
- [mixed: string|Optional.Number pixelratio]
- [mixed: string|Optional.Number zoom]
JSON Schema Description |
---|
{ "required": true, "type": "object", "id": "Player.CustomViewMode", "properties": { "nonlinearstretch": { "default": null, "type": [ { "enums": [ "increase", "decrease" ], "type": "string" }, { "description": "Flag to enable nonlinear stretch", "$ref": "Optional.Boolean" } ] }, "verticalshift": { "default": null, "type": [ { "enums": [ "increase", "decrease" ], "type": "string" }, { "description": "Vertical shift 1.0 means shift to bottom", "$ref": "Optional.Number" } ] }, "pixelratio": { "default": null, "type": [ { "enums": [ "increase", "decrease" ], "type": "string" }, { "description": "Pixel aspect ratio where 1.0 means square pixel", "$ref": "Optional.Number" } ] }, "zoom": { "default": null, "type": [ { "enums": [ "increase", "decrease" ], "type": "string" }, { "description": "Zoom where 1.0 means 100%", "$ref": "Optional.Number" } ] } } } |
Player.Id
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "Player.Id", "maximum": 2 } |
Player.Notifications.Data
Type: object
Properties:
- Notifications.Item item
- Player.Notifications.Player player
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Notifications.Data", "properties": { "item": { "required": true, "$ref": "Notifications.Item" }, "player": { "required": true, "$ref": "Player.Notifications.Player" } } } |
Player.Notifications.Player
Type: object
Properties:
- Player.Id playerid
- [integer speed]
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Notifications.Player", "properties": { "playerid": { "required": true, "$ref": "Player.Id" }, "speed": { "default": 0, "type": "integer" } } } |
Player.Notifications.Player.Seek
Extends:
Properties:
- [Global.Time seekoffset]
- [Global.Time time]
JSON Schema Description |
---|
{ "extends": "Player.Notifications.Player", "id": "Player.Notifications.Player.Seek", "properties": { "seekoffset": { "$ref": "Global.Time" }, "time": { "$ref": "Global.Time" } } } |
Player.Position.Percentage
Type: number
JSON Schema Description |
---|
{ "default": 0.0, "minimum": 0.0, "type": "number", "id": "Player.Position.Percentage", "maximum": 100.0 } |
Player.Position.Time
Type: object
Properties:
- [integer hours]
- [integer seconds]
- [integer minutes]
- [integer milliseconds]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Player.Position.Time", "properties": { "hours": { "default": 0, "minimum": 0, "type": "integer", "maximum": 23 }, "seconds": { "default": 0, "minimum": 0, "type": "integer", "maximum": 59 }, "minutes": { "default": 0, "minimum": 0, "type": "integer", "maximum": 59 }, "milliseconds": { "default": 0, "minimum": 0, "type": "integer", "maximum": 999 } } } |
Player.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "type", "enums": [ "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" ], "type": "string", "id": "Player.Property.Name" } |
Player.Property.Value
Type: object
Properties:
- [boolean canrotate]
- [boolean canrepeat]
- [integer speed]
- [boolean canshuffle]
- [boolean shuffled]
- [boolean canmove]
- [boolean live]
- [boolean subtitleenabled]
- [Player.Position.Percentage percentage]
- [Player.Type type = video]
- [Player.Repeat repeat = off]
- [array videostreams]
- [boolean canseek]
- [Player.Subtitle currentsubtitle]
- [array subtitles]
- [Global.Time totaltime]
- [boolean canzoom]
- [Player.Audio.Stream currentaudiostream]
- [Playlist.Id playlistid = -1]
- [Player.Video.Stream currentvideostream]
- [array audiostreams]
- [boolean partymode]
- [Global.Time time]
- [Playlist.Position position = -1]
- [boolean canchangespeed]
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Property.Value", "properties": { "canrotate": { "default": false, "type": "boolean" }, "canrepeat": { "default": false, "type": "boolean" }, "speed": { "default": 0, "type": "integer" }, "canshuffle": { "default": false, "type": "boolean" }, "shuffled": { "default": false, "type": "boolean" }, "canmove": { "default": false, "type": "boolean" }, "live": { "default": false, "type": "boolean" }, "subtitleenabled": { "default": false, "type": "boolean" }, "percentage": { "default": 0.0, "$ref": "Player.Position.Percentage" }, "type": { "default": "video", "$ref": "Player.Type" }, "repeat": { "default": "off", "$ref": "Player.Repeat" }, "videostreams": { "items": { "$ref": "Player.Video.Stream" }, "type": "array" }, "canseek": { "default": false, "type": "boolean" }, "currentsubtitle": { "$ref": "Player.Subtitle" }, "subtitles": { "items": { "$ref": "Player.Subtitle" }, "type": "array" }, "totaltime": { "$ref": "Global.Time" }, "canzoom": { "default": false, "type": "boolean" }, "currentaudiostream": { "$ref": "Player.Audio.Stream" }, "playlistid": { "default": -1, "$ref": "Playlist.Id" }, "currentvideostream": { "$ref": "Player.Video.Stream" }, "audiostreams": { "items": { "$ref": "Player.Audio.Stream" }, "type": "array" }, "partymode": { "default": false, "type": "boolean" }, "time": { "$ref": "Global.Time" }, "position": { "default": -1, "$ref": "Playlist.Position" }, "canchangespeed": { "default": false, "type": "boolean" } } } |
Player.Repeat
Type: string
JSON Schema Description |
---|
{ "default": "off", "enums": [ "off", "one", "all" ], "type": "string", "id": "Player.Repeat" } |
Player.Speed
Type: object
Properties:
- [integer speed]
JSON Schema Description |
---|
{ "required": true, "type": "object", "id": "Player.Speed", "properties": { "speed": { "default": 0, "type": "integer" } } } |
Player.Subtitle
Type: object
Properties:
- integer index
- string name
- string language
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Subtitle", "properties": { "index": { "minimum": 0, "type": "integer", "required": true }, "name": { "required": true, "type": "string" }, "language": { "required": true, "type": "string" } } } |
Player.Type
Type: string
JSON Schema Description |
---|
{ "default": "video", "enums": [ "video", "audio", "picture" ], "type": "string", "id": "Player.Type" } |
Player.Video.Stream
Type: object
Properties:
- integer index
- string name
- string language
- integer height
- integer width
- string codec
JSON Schema Description |
---|
{ "type": "object", "id": "Player.Video.Stream", "properties": { "index": { "minimum": 0, "type": "integer", "required": true }, "name": { "required": true, "type": "string" }, "language": { "required": true, "type": "string" }, "height": { "required": true, "type": "integer" }, "width": { "required": true, "type": "integer" }, "codec": { "required": true, "type": "string" } } } |
Player.ViewMode
Type: string
JSON Schema Description |
---|
{ "default": "normal", "enums": [ "normal", "zoom", "stretch4x3", "widezoom", "stretch16x9", "original", "stretch16x9nonlin", "zoom120width", "zoom110width" ], "type": "string", "id": "Player.ViewMode" } |
Playlist
Playlist.Id
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "Playlist.Id", "maximum": 2 } |
Playlist.Item
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "additionalProperties": false, "type": "object", "properties": { "file": { "required": true, "type": "string", "description": "Path to a file (not a directory) to be added to the playlist" } } }, { "additionalProperties": false, "type": "object", "properties": { "directory": { "required": true, "type": "string" }, "media": { "default": "files", "$ref": "Files.Media" }, "recursive": { "default": false, "type": "boolean" } } }, { "additionalProperties": false, "type": "object", "properties": { "movieid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "episodeid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "musicvideoid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "artistid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "albumid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "songid": { "required": true, "$ref": "Library.Id" } } }, { "additionalProperties": false, "type": "object", "properties": { "genreid": { "required": true, "description": "Identification of a genre from the AudioLibrary", "$ref": "Library.Id" } } } ], "id": "Playlist.Item" } |
Playlist.Position
Type: integer
JSON Schema Description |
---|
{ "default": -1, "minimum": 0, "type": "integer", "id": "Playlist.Position" } |
Playlist.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "type", "enums": [ "type", "size" ], "type": "string", "id": "Playlist.Property.Name" } |
Playlist.Property.Value
Type: object
Properties:
- [Playlist.Type type = unknown]
- [integer size]
JSON Schema Description |
---|
{ "type": "object", "id": "Playlist.Property.Value", "properties": { "type": { "default": "unknown", "$ref": "Playlist.Type" }, "size": { "default": 0, "minimum": 0, "type": "integer" } } } |
Playlist.Type
Type: string
JSON Schema Description |
---|
{ "default": "unknown", "enums": [ "unknown", "video", "audio", "picture", "mixed" ], "type": "string", "id": "Playlist.Type" } |
Profiles
Profiles.Details.Profile
Extends:
Properties:
- [integer lockmode]
- [string thumbnail]
JSON Schema Description |
---|
{ "extends": "Item.Details.Base", "id": "Profiles.Details.Profile", "properties": { "lockmode": { "default": 0, "type": "integer" }, "thumbnail": { "default": "", "type": "string" } } } |
Profiles.Fields.Profile
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "thumbnail", "lockmode" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Profiles.Fields.Profile" } |
Profiles.Password
Type: object
Properties:
- [string encryption = md5]
- string value
JSON Schema Description |
---|
{ "type": "object", "id": "Profiles.Password", "properties": { "encryption": { "default": "md5", "enums": [ "none", "md5" ], "type": "string", "description": "Password Encryption" }, "value": { "required": true, "type": "string", "description": "Password" } } } |
Setting
Setting.Details.Base
Type: object
Properties:
- string label
- [string help]
- string id
JSON Schema Description |
---|
{ "type": "object", "id": "Setting.Details.Base", "properties": { "label": { "required": true, "type": "string" }, "help": { "default": "", "type": "string" }, "id": { "minLength": 1, "required": true, "type": "string" } } } |
Setting.Details.Category
Extends:
Properties:
- [array groups]
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.Base", "id": "Setting.Details.Category", "properties": { "groups": { "minItems": 1, "items": { "$ref": "Setting.Details.Group" }, "uniqueItems": true, "type": "array" } } } |
Setting.Details.Control
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "$ref": "Setting.Details.ControlCheckmark" }, { "$ref": "Setting.Details.ControlSpinner" }, { "$ref": "Setting.Details.ControlEdit" }, { "$ref": "Setting.Details.ControlButton" }, { "$ref": "Setting.Details.ControlList" }, { "$ref": "Setting.Details.ControlSlider" }, { "$ref": "Setting.Details.ControlRange" }, { "$ref": "Setting.Details.ControlLabel" } ], "id": "Setting.Details.Control" } |
Setting.Details.ControlBase
Type: object
Properties:
- string type
- boolean delayed
- string format
JSON Schema Description |
---|
{ "type": "object", "id": "Setting.Details.ControlBase", "properties": { "type": { "required": true, "type": "string" }, "delayed": { "required": true, "type": "boolean" }, "format": { "required": true, "type": "string" } } } |
Setting.Details.ControlButton
Extends:
Properties:
- string type
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlHeading", "id": "Setting.Details.ControlButton", "properties": { "type": { "enums": [ "button" ], "type": "string", "required": true } } } |
Setting.Details.ControlCheckmark
Extends:
Properties:
- string type
- string format
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlBase", "id": "Setting.Details.ControlCheckmark", "properties": { "type": { "enums": [ "toggle" ], "type": "string", "required": true }, "format": { "enums": [ "boolean" ], "type": "string", "required": true } } } |
Setting.Details.ControlEdit
Extends:
Properties:
- boolean verifynewvalue
- boolean hidden
- string type
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlHeading", "id": "Setting.Details.ControlEdit", "properties": { "verifynewvalue": { "required": true, "type": "boolean" }, "hidden": { "required": true, "type": "boolean" }, "type": { "enums": [ "edit" ], "type": "string", "required": true } } } |
Setting.Details.ControlHeading
Extends:
Properties:
- [string heading]
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlBase", "id": "Setting.Details.ControlHeading", "properties": { "heading": { "default": "", "type": "string" } } } |
Setting.Details.ControlLabel
Extends:
Properties:
- string type
- string format
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlBase", "id": "Setting.Details.ControlLabel", "properties": { "type": { "enums": [ "label" ], "type": "string", "required": true }, "format": { "enums": [ "string" ], "type": "string", "required": true } } } |
Setting.Details.ControlList
Extends:
Properties:
- string type
- boolean multiselect
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlHeading", "id": "Setting.Details.ControlList", "properties": { "type": { "enums": [ "list" ], "type": "string", "required": true }, "multiselect": { "required": true, "type": "boolean" } } } |
Setting.Details.ControlRange
Extends:
Properties:
- string formatlabel
- string formatvalue
- string type
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlBase", "id": "Setting.Details.ControlRange", "properties": { "formatlabel": { "required": true, "type": "string" }, "formatvalue": { "required": true, "type": "string" }, "type": { "enums": [ "range" ], "type": "string", "required": true } } } |
Setting.Details.ControlSlider
Extends:
Properties:
- string formatlabel
- boolean popup
- string type
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlHeading", "id": "Setting.Details.ControlSlider", "properties": { "formatlabel": { "required": true, "type": "string" }, "popup": { "required": true, "type": "boolean" }, "type": { "enums": [ "slider" ], "type": "string", "required": true } } } |
Setting.Details.ControlSpinner
Extends:
Properties:
- [string formatlabel]
- string type
- [string minimumlabel]
JSON Schema Description |
---|
{ "extends": "Setting.Details.ControlBase", "id": "Setting.Details.ControlSpinner", "properties": { "formatlabel": { "default": "", "type": "string" }, "type": { "enums": [ "spinner" ], "type": "string", "required": true }, "minimumlabel": { "default": "", "type": "string" } } } |
Setting.Details.Group
Type: object
Properties:
- string id
- [array settings]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Setting.Details.Group", "properties": { "id": { "minLength": 1, "required": true, "type": "string" }, "settings": { "minItems": 1, "items": { "$ref": "Setting.Details.Setting" }, "uniqueItems": true, "type": "array" } } } |
Setting.Details.Section
Extends:
Properties:
- [array categories]
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.Base", "id": "Setting.Details.Section", "properties": { "categories": { "minItems": 1, "items": { "$ref": "Setting.Details.Category" }, "uniqueItems": true, "type": "array" } } } |
Setting.Details.Setting
Type: mixed
JSON Schema Description |
---|
{ "type": [ { "$ref": "Setting.Details.SettingBool" }, { "$ref": "Setting.Details.SettingInt" }, { "$ref": "Setting.Details.SettingNumber" }, { "$ref": "Setting.Details.SettingString" }, { "$ref": "Setting.Details.SettingAction" }, { "$ref": "Setting.Details.SettingList" }, { "$ref": "Setting.Details.SettingPath" }, { "$ref": "Setting.Details.SettingAddon" }, { "$ref": "Setting.Details.SettingDate" }, { "$ref": "Setting.Details.SettingTime" } ], "id": "Setting.Details.Setting" } |
Setting.Details.SettingAction
Extends:
Properties:
- string data
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingBase", "id": "Setting.Details.SettingAction", "properties": { "data": { "required": true, "type": "string" } } } |
Setting.Details.SettingAddon
Extends:
Properties:
- Addon.Types addontype
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingString", "id": "Setting.Details.SettingAddon", "properties": { "addontype": { "required": true, "$ref": "Addon.Types" } } } |
Setting.Details.SettingBase
Extends:
Properties:
- [Setting.Details.Control control]
- Setting.Type type
- boolean enabled
- [string parent]
- Setting.Level level
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.Base", "id": "Setting.Details.SettingBase", "properties": { "control": { "$ref": "Setting.Details.Control" }, "type": { "required": true, "$ref": "Setting.Type" }, "enabled": { "required": true, "type": "boolean" }, "parent": { "default": "", "type": "string" }, "level": { "required": true, "$ref": "Setting.Level" } } } |
Setting.Details.SettingBool
Extends:
Properties:
- boolean default
- boolean value
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingBase", "id": "Setting.Details.SettingBool", "properties": { "default": { "required": true, "type": "boolean" }, "value": { "required": true, "type": "boolean" } } } |
Setting.Details.SettingDate
Extends:
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingString", "id": "Setting.Details.SettingDate" } |
Setting.Details.SettingInt
Extends:
Properties:
- integer default
- [integer maximum]
- integer value
- [integer step]
- [integer minimum]
- [array options]
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingBase", "id": "Setting.Details.SettingInt", "properties": { "default": { "required": true, "type": "integer" }, "maximum": { "default": 0, "type": "integer" }, "value": { "required": true, "type": "integer" }, "step": { "default": 0, "type": "integer" }, "minimum": { "default": 0, "type": "integer" }, "options": { "items": { "type": "object", "properties": { "value": { "required": true, "type": "integer" }, "label": { "required": true, "type": "string" } } }, "type": "array" } } } |
Setting.Details.SettingList
Extends:
Properties:
- Setting.Details.Setting definition
- Setting.Value.List default
- [integer maximumitems]
- Setting.Value.List value
- string delimiter
- Setting.Type elementtype
- [integer minimumitems]
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingBase", "id": "Setting.Details.SettingList", "properties": { "definition": { "required": true, "$ref": "Setting.Details.Setting" }, "default": { "required": true, "$ref": "Setting.Value.List" }, "maximumitems": { "default": 0, "type": "integer" }, "value": { "required": true, "$ref": "Setting.Value.List" }, "delimiter": { "required": true, "type": "string" }, "elementtype": { "required": true, "$ref": "Setting.Type" }, "minimumitems": { "default": 0, "type": "integer" } } } |
Setting.Details.SettingNumber
Extends:
Properties:
- number default
- number step
- number minimum
- number maximum
- number value
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingBase", "id": "Setting.Details.SettingNumber", "properties": { "default": { "required": true, "type": "number" }, "step": { "required": true, "type": "number" }, "minimum": { "required": true, "type": "number" }, "maximum": { "required": true, "type": "number" }, "value": { "required": true, "type": "number" } } } |
Setting.Details.SettingPath
Extends:
Properties:
- boolean writable
- [array sources]
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingString", "id": "Setting.Details.SettingPath", "properties": { "writable": { "required": true, "type": "boolean" }, "sources": { "items": { "type": "string" }, "type": "array" } } } |
Setting.Details.SettingString
Extends:
Properties:
- string default
- boolean allowempty
- [array options]
- string value
JSON Schema Description |
---|
{ "extends": "Setting.Details.SettingBase", "id": "Setting.Details.SettingString", "properties": { "default": { "required": true, "type": "string" }, "allowempty": { "required": true, "type": "boolean" }, "options": { "items": { "type": "object", "properties": { "value": { "required": true, "type": "string" }, "label": { "required": true, "type": "string" } } }, "type": "array" }, "value": { "required": true, "type": "string" } } } |
Setting.Details.SettingTime
Extends:
JSON Schema Description |
---|
{ "additionalProperties": false, "extends": "Setting.Details.SettingString", "id": "Setting.Details.SettingTime" } |
Setting.Level
Type: string
JSON Schema Description |
---|
{ "default": "basic", "enums": [ "basic", "standard", "advanced", "expert" ], "type": "string", "id": "Setting.Level" } |
Setting.Type
Type: string
JSON Schema Description |
---|
{ "default": "boolean", "enums": [ "boolean", "integer", "number", "string", "action", "list", "path", "addon", "date", "time" ], "type": "string", "id": "Setting.Type" } |
Setting.Value
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "boolean" }, { "type": "integer" }, { "type": "number" }, { "type": "string" } ], "id": "Setting.Value" } |
Setting.Value.Extended
Type: mixed
JSON Schema Description |
---|
{ "default": null, "type": [ { "type": "boolean" }, { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "$ref": "Setting.Value.List" } ], "id": "Setting.Value.Extended" } |
Setting.Value.List
Type: array
JSON Schema Description |
---|
{ "items": { "$ref": "Setting.Value" }, "type": "array", "id": "Setting.Value.List" } |
System
System.Property.Name
Type: string
JSON Schema Description |
---|
{ "default": "canshutdown", "enums": [ "canshutdown", "cansuspend", "canhibernate", "canreboot" ], "type": "string", "id": "System.Property.Name" } |
System.Property.Value
Type: object
Properties:
- [boolean canreboot]
- [boolean cansuspend]
- [boolean canhibernate]
- [boolean canshutdown]
JSON Schema Description |
---|
{ "type": "object", "id": "System.Property.Value", "properties": { "canreboot": { "default": false, "type": "boolean" }, "cansuspend": { "default": false, "type": "boolean" }, "canhibernate": { "default": false, "type": "boolean" }, "canshutdown": { "default": false, "type": "boolean" } } } |
Textures
Textures.Details.Size
Type: object
Properties:
- [integer size]
- [integer width]
- [string lastused]
- [integer usecount]
- [integer height]
JSON Schema Description |
---|
{ "type": "object", "id": "Textures.Details.Size", "properties": { "size": { "default": 0, "type": "integer", "description": "Size of the texture (1 == largest)" }, "width": { "default": 0, "type": "integer", "description": "Width of texture" }, "lastused": { "default": "", "type": "string", "description": "Date of last use" }, "usecount": { "default": 0, "type": "integer", "description": "Number of uses" }, "height": { "default": 0, "type": "integer", "description": "Height of texture" } } } |
Textures.Details.Texture
Type: object
Properties:
- [array sizes]
- [string cachedurl]
- [string imagehash]
- [string url]
- [string lasthashcheck]
- [Library.Id textureid = -1]
JSON Schema Description |
---|
{ "type": "object", "id": "Textures.Details.Texture", "properties": { "sizes": { "items": { "$ref": "Textures.Details.Size" }, "type": "array" }, "cachedurl": { "default": "", "type": "string", "description": "Cached URL on disk" }, "imagehash": { "default": "", "type": "string", "description": "Hash of image" }, "url": { "default": "", "type": "string", "description": "Original source URL" }, "lasthashcheck": { "default": "", "type": "string", "description": "Last time source was checked for changes" }, "textureid": { "default": -1, "$ref": "Library.Id" } } } |
Textures.Fields.Texture
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "url", "cachedurl", "lasthashcheck", "imagehash", "sizes" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Textures.Fields.Texture" } |
Video
Video.Cast
Type: array
JSON Schema Description |
---|
{ "items": { "additionalProperties": false, "type": "object", "properties": { "thumbnail": { "default": "", "type": "string" }, "role": { "required": true, "type": "string" }, "name": { "required": true, "type": "string" }, "order": { "required": true, "type": "integer" } } }, "type": "array", "id": "Video.Cast" } |
Video.Details.Base
Extends:
Properties:
- [integer playcount]
- [Media.Artwork art]
JSON Schema Description |
---|
{ "extends": "Media.Details.Base", "id": "Video.Details.Base", "properties": { "playcount": { "default": 0, "type": "integer" }, "art": { "$ref": "Media.Artwork" } } } |
Video.Details.Episode
Extends:
Properties:
- [Library.Id seasonid = -1]
- [number rating]
- [Library.Id tvshowid = -1]
- [integer specialsortseason]
- [integer episode]
- [integer specialsortepisode]
- [any ratings]
- [string productioncode]
- [integer season]
- [Array.String writer]
- Library.Id episodeid
- [string originaltitle]
- [Video.Cast cast]
- [string firstaired]
- [integer userrating]
- [Media.UniqueID uniqueid]
- [string votes]
- [string showtitle]
JSON Schema Description |
---|
{ "extends": "Video.Details.File", "id": "Video.Details.Episode", "properties": { "seasonid": { "default": -1, "$ref": "Library.Id" }, "rating": { "default": 0.0, "type": "number" }, "tvshowid": { "default": -1, "$ref": "Library.Id" }, "specialsortseason": { "default": 0, "type": "integer" }, "episode": { "default": 0, "type": "integer" }, "specialsortepisode": { "default": 0, "type": "integer" }, "ratings": { "default": null, "type": "any" }, "productioncode": { "default": "", "type": "string" }, "season": { "default": 0, "type": "integer" }, "writer": { "$ref": "Array.String" }, "episodeid": { "required": true, "$ref": "Library.Id" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "firstaired": { "default": "", "type": "string" }, "userrating": { "default": 0, "type": "integer" }, "uniqueid": { "$ref": "Media.UniqueID" }, "votes": { "default": "", "type": "string" }, "showtitle": { "default": "", "type": "string" } } } |
Video.Details.File
Extends:
Properties:
- [Array.String director]
- [Video.Streams streamdetails]
- [integer runtime]
- [Video.Resume resume]
JSON Schema Description |
---|
{ "extends": "Video.Details.Item", "id": "Video.Details.File", "properties": { "director": { "$ref": "Array.String" }, "streamdetails": { "$ref": "Video.Streams" }, "runtime": { "default": 0, "type": "integer", "description": "Runtime in seconds" }, "resume": { "$ref": "Video.Resume" } } } |
Video.Details.Item
Extends:
Properties:
- [string lastplayed]
- [string dateadded]
- [string file]
- [string plot]
JSON Schema Description |
---|
{ "extends": "Video.Details.Media", "id": "Video.Details.Item", "properties": { "lastplayed": { "default": "", "type": "string" }, "dateadded": { "default": "", "type": "string" }, "file": { "default": "", "type": "string" }, "plot": { "default": "", "type": "string" } } } |
Video.Details.Media
Extends:
Properties:
- [string title]
JSON Schema Description |
---|
{ "extends": "Video.Details.Base", "id": "Video.Details.Media", "properties": { "title": { "default": "", "type": "string" } } } |
Video.Details.Movie
Extends:
Properties:
- [number rating]
- [string set]
- [Array.String tag]
- [integer year]
- [Library.Id setid = -1]
- [any ratings]
- [string votes]
- [string tagline]
- [Array.String writer]
- [string plotoutline]
- [string sorttitle]
- [string imdbnumber]
- [Array.String studio]
- [Media.UniqueID uniqueid]
- [Array.String showlink]
- [Array.String genre]
- Library.Id movieid
- [Array.String country]
- [string premiered]
- [string originaltitle]
- [Video.Cast cast]
- [integer userrating]
- [string mpaa]
- [integer top250]
- [string trailer]
JSON Schema Description |
---|
{ "extends": "Video.Details.File", "id": "Video.Details.Movie", "properties": { "rating": { "default": 0.0, "type": "number" }, "set": { "default": "", "type": "string" }, "tag": { "$ref": "Array.String" }, "year": { "default": 0, "type": "integer" }, "setid": { "default": -1, "$ref": "Library.Id" }, "ratings": { "default": null, "type": "any" }, "votes": { "default": "", "type": "string" }, "tagline": { "default": "", "type": "string" }, "writer": { "$ref": "Array.String" }, "plotoutline": { "default": "", "type": "string" }, "sorttitle": { "default": "", "type": "string" }, "imdbnumber": { "default": "", "type": "string" }, "studio": { "$ref": "Array.String" }, "uniqueid": { "$ref": "Media.UniqueID" }, "showlink": { "$ref": "Array.String" }, "genre": { "$ref": "Array.String" }, "movieid": { "required": true, "$ref": "Library.Id" }, "country": { "$ref": "Array.String" }, "premiered": { "default": "", "type": "string" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "userrating": { "default": 0, "type": "integer" }, "mpaa": { "default": "", "type": "string" }, "top250": { "default": 0, "type": "integer" }, "trailer": { "default": "", "type": "string" } } } |
Video.Details.MovieSet
Extends:
Properties:
- [string plot]
- Library.Id setid
JSON Schema Description |
---|
{ "extends": "Video.Details.Media", "id": "Video.Details.MovieSet", "properties": { "plot": { "default": "", "type": "string" }, "setid": { "required": true, "$ref": "Library.Id" } } } |
Video.Details.MovieSet.Extended
Extends:
Properties:
- [array movies]
- List.LimitsReturned limits
JSON Schema Description |
---|
{ "extends": "Video.Details.MovieSet", "id": "Video.Details.MovieSet.Extended", "properties": { "movies": { "items": { "$ref": "Video.Details.Movie" }, "type": "array" }, "limits": { "required": true, "$ref": "List.LimitsReturned" } } } |
Video.Details.MusicVideo
Extends:
Properties:
- [string album]
- [number rating]
- [Array.String artist]
- [integer track]
- [string premiered]
- [Array.String tag]
- [Array.String studio]
- [integer year]
- [Array.String genre]
- [integer userrating]
- Library.Id musicvideoid
JSON Schema Description |
---|
{ "extends": "Video.Details.File", "id": "Video.Details.MusicVideo", "properties": { "album": { "default": "", "type": "string" }, "rating": { "default": 0.0, "type": "number" }, "artist": { "$ref": "Array.String" }, "track": { "default": 0, "type": "integer" }, "premiered": { "default": "", "type": "string" }, "tag": { "$ref": "Array.String" }, "studio": { "$ref": "Array.String" }, "year": { "default": 0, "type": "integer" }, "genre": { "$ref": "Array.String" }, "userrating": { "default": 0, "type": "integer" }, "musicvideoid": { "required": true, "$ref": "Library.Id" } } } |
Video.Details.Season
Extends:
Properties:
- Library.Id seasonid
- [Library.Id tvshowid = -1]
- [integer episode]
- [string title]
- integer season
- [integer watchedepisodes]
- [integer userrating]
- [string showtitle]
JSON Schema Description |
---|
{ "extends": "Video.Details.Base", "id": "Video.Details.Season", "properties": { "seasonid": { "required": true, "$ref": "Library.Id" }, "tvshowid": { "default": -1, "$ref": "Library.Id" }, "episode": { "default": 0, "type": "integer" }, "title": { "default": "", "type": "string" }, "season": { "required": true, "type": "integer" }, "watchedepisodes": { "default": 0, "type": "integer" }, "userrating": { "default": 0, "type": "integer" }, "showtitle": { "default": "", "type": "string" } } } |
Video.Details.TVShow
Extends:
Properties:
- [string episodeguide]
- Library.Id tvshowid
- [integer watchedepisodes]
- [integer episode]
- [string imdbnumber]
- [number rating]
- [string mpaa]
- [string sorttitle]
- [integer year]
- [string votes]
- [string premiered]
- [string originaltitle]
- [Video.Cast cast]
- [any ratings]
- [Array.String tag]
- [Array.String studio]
- [Media.UniqueID uniqueid]
- [integer season]
- [Array.String genre]
- [integer userrating]
- [integer runtime]
JSON Schema Description |
---|
{ "extends": "Video.Details.Item", "id": "Video.Details.TVShow", "properties": { "episodeguide": { "default": "", "type": "string" }, "tvshowid": { "required": true, "$ref": "Library.Id" }, "watchedepisodes": { "default": 0, "type": "integer" }, "episode": { "default": 0, "type": "integer" }, "imdbnumber": { "default": "", "type": "string" }, "rating": { "default": 0.0, "type": "number" }, "mpaa": { "default": "", "type": "string" }, "sorttitle": { "default": "", "type": "string" }, "year": { "default": 0, "type": "integer" }, "votes": { "default": "", "type": "string" }, "premiered": { "default": "", "type": "string" }, "originaltitle": { "default": "", "type": "string" }, "cast": { "$ref": "Video.Cast" }, "ratings": { "default": null, "type": "any" }, "tag": { "$ref": "Array.String" }, "studio": { "$ref": "Array.String" }, "uniqueid": { "$ref": "Media.UniqueID" }, "season": { "default": 0, "type": "integer" }, "genre": { "$ref": "Array.String" }, "userrating": { "default": 0, "type": "integer" }, "runtime": { "default": 0, "type": "integer", "description": "Runtime in seconds" } } } |
Video.Fields.Episode
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string", "description": "Requesting the cast, ratings, streamdetails, uniqueid and/or tag field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.Episode" } |
Video.Fields.Movie
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string", "description": "Requesting the cast, ratings, showlink, streamdetails, uniqueid and/or tag field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.Movie" } |
Video.Fields.MovieSet
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "playcount", "fanart", "thumbnail", "art", "plot" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Video.Fields.MovieSet" } |
Video.Fields.MusicVideo
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "title", "playcount", "runtime", "director", "studio", "year", "plot", "album", "artist", "genre", "track", "streamdetails", "lastplayed", "fanart", "thumbnail", "file", "resume", "dateadded", "tag", "art", "rating", "userrating", "premiered" ], "type": "string", "description": "Requesting the streamdetails and/or tag field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.MusicVideo" } |
Video.Fields.Season
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "season", "showtitle", "playcount", "episode", "fanart", "thumbnail", "tvshowid", "watchedepisodes", "art", "userrating", "title" ], "type": "string" }, "extends": "Item.Fields.Base", "id": "Video.Fields.Season" } |
Video.Fields.TVShow
Extends:
JSON Schema Description |
---|
{ "items": { "enums": [ "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" ], "type": "string", "description": "Requesting the cast, ratings, uniqueid and/or tag field will result in increased response times" }, "extends": "Item.Fields.Base", "id": "Video.Fields.TVShow" } |
Video.Rating
Type: object
Properties:
- [boolean default]
- number rating
- [integer votes]
JSON Schema Description |
---|
{ "type": "object", "id": "Video.Rating", "properties": { "default": { "default": false, "type": "boolean" }, "rating": { "required": true, "type": "number" }, "votes": { "default": 0, "type": "integer" } } } |
Video.Ratings
Type: object
JSON Schema Description |
---|
{ "additionalProperties": { "$ref": "Video.Rating" }, "type": "object", "id": "Video.Ratings" } |
Video.Ratings.Set
Type: object
JSON Schema Description |
---|
{ "additionalProperties": { "default": null, "type": [ { "type": "null" }, { "$ref": "Video.Rating" } ] }, "type": "object", "id": "Video.Ratings.Set" } |
Video.Resume
Type: object
Properties:
- [number position]
- [number total]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Video.Resume", "properties": { "position": { "default": 0.0, "minimum": 0.0, "type": "number" }, "total": { "default": 0.0, "minimum": 0.0, "type": "number" } } } |
Video.Streams
Type: object
Properties:
- [array video]
- [array audio]
- [array subtitle]
JSON Schema Description |
---|
{ "additionalProperties": false, "type": "object", "id": "Video.Streams", "properties": { "video": { "minItems": 1, "items": { "additionalProperties": false, "type": "object", "properties": { "duration": { "default": 0, "type": "integer" }, "width": { "default": 0, "type": "integer" }, "codec": { "default": "", "type": "string" }, "aspect": { "default": 0.0, "type": "number" }, "height": { "default": 0, "type": "integer" } } }, "type": "array" }, "audio": { "minItems": 1, "items": { "additionalProperties": false, "type": "object", "properties": { "channels": { "default": 0, "type": "integer" }, "codec": { "default": "", "type": "string" }, "language": { "default": "", "type": "string" } } }, "type": "array" }, "subtitle": { "minItems": 1, "items": { "additionalProperties": false, "type": "object", "properties": { "language": { "default": "", "type": "string" } } }, "type": "array" } } } |
Notifications
Application
Application.OnVolumeChanged
The volume of the application has changed.
Parameters:
- string sender
- object data:
- boolean muted
- integer volume
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "muted": { "required": true, "type": "boolean" }, "volume": { "minimum": 0, "type": "integer", "maximum": 100, "required": true } } } ], "description": "The volume of the application has changed." } |
AudioLibrary
AudioLibrary.OnCleanFinished
The audio library has been cleaned.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The audio library has been cleaned." } |
AudioLibrary.OnCleanStarted
An audio library clean operation has started.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "An audio library clean operation has started." } |
AudioLibrary.OnExport
An audio library export has finished.
Parameters:
- string sender
- [object data]:
- [integer failcount = 0]
- [string file = ""]
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": false, "type": "object", "name": "data", "properties": { "failcount": { "default": 0, "minimum": 0, "type": "integer", "required": false }, "file": { "default": "", "required": false, "type": "string" } } } ], "description": "An audio library export has finished." } |
AudioLibrary.OnRemove
An audio item has been removed.
Parameters:
- string sender
- object data:
- Optional.Boolean transaction
- Notifications.Library.Audio.Type type
- Library.Id id
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "transaction": { "description": "True if the removal is being performed within a transaction.", "$ref": "Optional.Boolean" }, "type": { "required": true, "$ref": "Notifications.Library.Audio.Type" }, "id": { "required": true, "$ref": "Library.Id" } } } ], "description": "An audio item has been removed." } |
AudioLibrary.OnScanFinished
Scanning the audio library has been finished.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "Scanning the audio library has been finished." } |
AudioLibrary.OnScanStarted
An audio library scan has started.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "An audio library scan has started." } |
AudioLibrary.OnUpdate
An audio item has been updated.
Parameters:
- string sender
- object data:
- Optional.Boolean added
- string type
- Library.Id id
- Optional.Boolean transaction
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "added": { "description": "True if the update is for a newly added item.", "$ref": "Optional.Boolean" }, "type": { "enum": [ "song" ], "type": "string", "id": "Notifications.Library.Audio.Type", "required": true }, "id": { "required": true, "$ref": "Library.Id" }, "transaction": { "description": "True if the update is being performed within a transaction.", "$ref": "Optional.Boolean" } } } ], "description": "An audio item has been updated." } |
GUI
GUI.OnDPMSActivated
Energy saving/DPMS has been activated.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "Energy saving/DPMS has been activated." } |
GUI.OnDPMSDeactivated
Energy saving/DPMS has been deactivated.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "Energy saving/DPMS has been deactivated." } |
GUI.OnScreensaverActivated
The screensaver has been activated.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The screensaver has been activated." } |
GUI.OnScreensaverDeactivated
The screensaver has been deactivated.
Parameters:
- string sender
- object data:
- boolean shuttingdown
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "shuttingdown": { "required": true, "type": "boolean" } } } ], "description": "The screensaver has been deactivated." } |
Input
Input.OnInputFinished
The user has provided the requested input.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The user has provided the requested input." } |
Input.OnInputRequested
The user is requested to provide some information.
Parameters:
- string sender
- object data:
- string type
- string value
- string title
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "type": { "enum": [ "keyboard", "time", "date", "ip", "password", "numericpassword", "number", "seconds" ], "type": "string", "required": true }, "value": { "required": true, "type": "string" }, "title": { "type": "string" } } } ], "description": "The user is requested to provide some information." } |
Player
Player.OnAVChange
Audio- or videostream has changed. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "description": "Audio- or videostream has changed. If there is no ID available extra information will be provided." } |
Player.OnAVStart
Playback of a media item has been started and first frame is available. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "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." } |
Player.OnPause
Playback of a media item has been paused. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "description": "Playback of a media item has been paused. If there is no ID available extra information will be provided." } |
Player.OnPlay
Playback of a media item has been started or the playback speed has changed. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "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." } |
Player.OnPropertyChanged
A property of the playing items has changed.
Parameters:
- string sender
- object data:
- Player.Notifications.Player player
- Player.Property.Value property
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "player": { "required": true, "$ref": "Player.Notifications.Player" }, "property": { "$ref": "Player.Property.Value" } } } ], "description": "A property of the playing items has changed." } |
Player.OnResume
Playback of a media item has been resumed. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "description": "Playback of a media item has been resumed. If there is no ID available extra information will be provided." } |
Player.OnSeek
The playback position has been changed. If there is no ID available extra information will be provided.
Parameters:
- string sender
- object data:
- Notifications.Item item
- Player.Notifications.Player.Seek player
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "item": { "$ref": "Notifications.Item" }, "player": { "required": true, "$ref": "Player.Notifications.Player.Seek" } } } ], "description": "The playback position has been changed. If there is no ID available extra information will be provided." } |
Player.OnSpeedChanged
Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.
Parameters:
- string sender
- Player.Notifications.Data data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "name": "data", "$ref": "Player.Notifications.Data" } ], "description": "Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided." } |
Player.OnStop
Playback of a media item has been stopped. If there is no ID available extra information will be provided.
Parameters:
- string sender
- object data:
- Notifications.Item item
- boolean end
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "item": { "$ref": "Notifications.Item" }, "end": { "required": true, "type": "boolean", "description": "Whether the player has reached the end of the playable item(s) or not" } } } ], "description": "Playback of a media item has been stopped. If there is no ID available extra information will be provided." } |
Playlist
Playlist.OnAdd
A playlist item has been added.
Parameters:
- string sender
- object data:
- Notifications.Item item
- Playlist.Id playlistid
- Playlist.Position position
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "item": { "$ref": "Notifications.Item" }, "playlistid": { "required": true, "$ref": "Playlist.Id" }, "position": { "$ref": "Playlist.Position" } } } ], "description": "A playlist item has been added." } |
Playlist.OnClear
A playlist item has been cleared.
Parameters:
- string sender
- object data:
- Playlist.Id playlistid
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "playlistid": { "required": true, "$ref": "Playlist.Id" } } } ], "description": "A playlist item has been cleared." } |
Playlist.OnRemove
A playlist item has been removed.
Parameters:
- string sender
- object data:
- Playlist.Position position
- Playlist.Id playlistid
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "position": { "$ref": "Playlist.Position" }, "playlistid": { "required": true, "$ref": "Playlist.Id" } } } ], "description": "A playlist item has been removed." } |
System
System.OnLowBattery
The system is on low battery.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system is on low battery." } |
System.OnQuit
Kodi will be closed.
Parameters:
- string sender
- object data:
- integer exitcode
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "exitcode": { "minimum": 0, "type": "integer", "required": true } } } ], "description": "Kodi will be closed." } |
System.OnRestart
The system will be restarted.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system will be restarted." } |
System.OnSleep
The system will be suspended.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system will be suspended." } |
System.OnWake
The system woke up from suspension.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The system woke up from suspension." } |
VideoLibrary
VideoLibrary.OnCleanFinished
The video library has been cleaned.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The video library has been cleaned." } |
VideoLibrary.OnCleanStarted
A video library clean operation has started.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "A video library clean operation has started." } |
VideoLibrary.OnExport
A video library export has finished.
Parameters:
- string sender
- [object data]:
- [integer failcount = 0]
- [string root = ""]
- [string file = ""]
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": false, "type": "object", "name": "data", "properties": { "failcount": { "default": 0, "minimum": 0, "type": "integer", "required": false }, "root": { "default": "", "required": false, "type": "string" }, "file": { "default": "", "required": false, "type": "string" } } } ], "description": "A video library export has finished." } |
VideoLibrary.OnRefresh
The video library has been refreshed and a home screen reload might be necessary.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "The video library has been refreshed and a home screen reload might be necessary." } |
VideoLibrary.OnRemove
A video item has been removed.
Parameters:
- string sender
- object data:
- Optional.Boolean transaction
- Notifications.Library.Video.Type type
- Library.Id id
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "transaction": { "description": "True if the removal is being performed within a transaction.", "$ref": "Optional.Boolean" }, "type": { "required": true, "$ref": "Notifications.Library.Video.Type" }, "id": { "required": true, "$ref": "Library.Id" } } } ], "description": "A video item has been removed." } |
VideoLibrary.OnScanFinished
Scanning the video library has been finished.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "Scanning the video library has been finished." } |
VideoLibrary.OnScanStarted
A video library scan has started.
Parameters:
- string sender
- string data
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "null", "name": "data" } ], "description": "A video library scan has started." } |
VideoLibrary.OnUpdate
A video item has been updated.
Parameters:
- string sender
- object data:
- integer playcount = -1
- Optional.Boolean added
- string type
- Library.Id id
- Optional.Boolean transaction
JSON Schema Description |
---|
{ "type": "notification", "returns": null, "params": [ { "required": true, "type": "string", "name": "sender" }, { "required": true, "type": "object", "name": "data", "properties": { "playcount": { "default": -1, "minimum": 0, "type": "integer" }, "added": { "description": "True if the update is for a newly added item.", "$ref": "Optional.Boolean" }, "type": { "enum": [ "movie", "tvshow", "episode", "musicvideo" ], "type": "string", "id": "Notifications.Library.Video.Type", "required": true }, "id": { "required": true, "$ref": "Library.Id" }, "transaction": { "description": "True if the update is being performed within a transaction.", "$ref": "Optional.Boolean" } } } ], "description": "A video item has been updated." } |