User:Ncarthy: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
== 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
# [ ''mixed'' params ]
# [ ''boolean'' wait = false ]
</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 lang="javascript" enclose="div">{
  "description": "Executes the given addon with the given parameters (if possible)",
  "permission": "ExecuteAddon",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "addonid",
      "required": true
    },
    {
      "default": "",
      "type": [
        {
          "additionalProperties": {
            "default": "",
            "type": "string"
          },
          "type": "object"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "description": "URL path (must start with / or ?",
          "type": "string"
        }
      ],
      "name": "params",
      "required": false
    },
    {
      "default": "false",
      "type": "boolean",
      "name": "wait",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Addon.Fields|Addon.Fields]]'' properties ]
</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:'''
* ''[[#Addon.Details|Addon.Details]]'' addon
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Gets the details of a specific addon",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "addonid",
      "required": true
    },
    {
      "$ref": "Addon.Fields",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "addon": {
        "$ref": "Addon.Details",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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" ]
# [ ''[[#Addon.Content|Addon.Content]]'' content = "unknown" ]
# [ ''mixed'' enabled = "all" ]
# [ ''[[#Addon.Fields|Addon.Fields]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''mixed'' installed = true ]
</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:'''
* [ ''[[#Addon.Details|Addon.Details]]''[] addons ]
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Gets all available addons",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "unknown",
      "$ref": "Addon.Types",
      "name": "type",
      "required": false
    },
    {
      "default": "unknown",
      "description": "Content provided by the addon. Only considered for plugins and scripts.",
      "$ref": "Addon.Content",
      "name": "content",
      "required": false
    },
    {
      "default": "all",
      "type": [
        {
          "type": "boolean"
        },
        {
          "enums": [
            "all"
          ],
          "type": "string"
        }
      ],
      "name": "enabled",
      "required": false
    },
    {
      "$ref": "Addon.Fields",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "default": "true",
      "type": [
        {
          "type": "boolean"
        },
        {
          "enums": [
            "all"
          ],
          "type": "string"
        }
      ],
      "name": "installed",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "addons": {
        "items": {
          "$ref": "Addon.Details"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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
# ''[[#Global.Toggle|Global.Toggle]]'' enabled
</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 lang="javascript" enclose="div">{
  "description": "Enables/Disables a specific addon",
  "permission": "ManageAddon",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "addonid",
      "required": true
    },
    {
      "$ref": "Global.Toggle",
      "name": "enabled",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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">
# ''[[#Application.Property.Name|Application.Property.Name]]''[] properties
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the values of the given properties",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "items": {
        "$ref": "Application.Property.Name"
      },
      "type": "array",
      "name": "properties",
      "required": true
    }
  ],
  "returns": {
    "$ref": "Application.Property.Value"
  }
}</syntaxhighlight>}}
==== Application.Quit ====
Quit application<br />
'''Permissions:'''
* ControlPower
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
</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 lang="javascript" enclose="div">{
  "description": "Quit application",
  "permission": "ControlPower",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Toggle mute/unmute",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Global.Toggle",
      "name": "mute",
      "required": true
    }
  ],
  "returns": {
    "type": "boolean",
    "description": "Mute state"
  }
}</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'' volume
</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 lang="javascript" enclose="div">{
  "description": "Set the current volume",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "type": [
        {
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        {
          "$ref": "Global.IncrementDecrement"
        }
      ],
      "name": "volume",
      "required": true
    }
  ],
  "returns": {
    "type": "integer"
  }
}</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 ]
</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 lang="javascript" enclose="div">{
  "description": "Cleans the audio library from non-existent items",
  "permission": "RemoveData",
  "type": "method",
  "params": [
    {
      "default": "true",
      "description": "Whether or not to show the progress bar or any other GUI dialog",
      "type": "boolean",
      "name": "showdialogs",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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'' options ]
</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 lang="javascript" enclose="div">{
  "description": "Exports all items from the audio library",
  "permission": "WriteFile",
  "type": "method",
  "params": [
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "path": {
              "description": "Path to the directory to where the data should be exported",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "images": {
              "default": false,
              "description": "Whether to export thumbnails and fanart images",
              "type": "boolean"
            },
            "overwrite": {
              "default": false,
              "description": "Whether to overwrite existing exported files",
              "type": "boolean"
            }
          },
          "type": "object"
        }
      ],
      "name": "options",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Audio.Fields.Album|Audio.Fields.Album]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific album",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "albumid",
      "required": true
    },
    {
      "$ref": "Audio.Fields.Album",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "albumdetails": {
        "$ref": "Audio.Details.Album",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''mixed'' filter ]
# [ ''boolean'' includesingles = false ]
# [ ''boolean'' allroles = false ]
</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]]''[] albums ]
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve all albums from specified artist (and role) or that has songs of the specified genre",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Audio.Fields.Album",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "description": "Song genre. Filter for existance of songs with this genre",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "description": "Song genre. Filter for existance of songs with this genre",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            },
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            },
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.Albums"
        }
      ],
      "name": "filter",
      "required": false
    },
    {
      "default": "false",
      "type": "boolean",
      "name": "includesingles",
      "required": false
    },
    {
      "default": "false",
      "description": "Whether or not to include all roles when filtering by artist, rather than the default of excluding other contributions. When true it overrides any role filter value.",
      "type": "boolean",
      "name": "allroles",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "albums": {
        "items": {
          "$ref": "Audio.Details.Album"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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
# [ ''[[#Audio.Fields.Artist|Audio.Fields.Artist]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific artist",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "artistid",
      "required": true
    },
    {
      "$ref": "Audio.Fields.Artist",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "artistdetails": {
        "$ref": "Audio.Details.Artist",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#Audio.Fields.Artist|Audio.Fields.Artist]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''mixed'' filter ]
# [ ''boolean'' allroles = false ]
</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]]''[] artists ]
* ''[[#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 lang="javascript" enclose="div">{
  "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",
  "type": "method",
  "params": [
    {
      "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",
      "$ref": "Optional.Boolean",
      "name": "albumartistsonly",
      "required": false
    },
    {
      "$ref": "Audio.Fields.Artist",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "description": "Deprecated, use songgenreid. Filter for existance of songs with this genre",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "songgenreid": {
              "$ref": "Library.Id",
              "description": "Song genreid. Filter for existance of songs with this genre",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            },
            "songgenreid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "songgenreid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "description": "Deprecated, use songgenre. Filter for existance of songs with this genre",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "songgenre": {
              "description": "Song genre. Filter for existance of songs with this genre",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            },
            "songgenre": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "songgenre": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "albumid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "album": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "songid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            },
            "songid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "songid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "roleid": {
              "$ref": "Library.Id",
              "description": "Role contributed by artist. Overriden by allroles parameter",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "role": {
              "description": "Role contributed by artist. Overriden by allroles parameter",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.Artists"
        }
      ],
      "name": "filter",
      "required": false
    },
    {
      "default": "false",
      "description": "Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.",
      "type": "boolean",
      "name": "allroles",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "artists": {
        "items": {
          "$ref": "Audio.Details.Artist"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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:'''
* ''[[#Library.Details.Genre|Library.Details.Genre]]''[] genres
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve all genres",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Fields.Genre",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "genres": {
        "items": {
          "$ref": "Library.Details.Genre"
        },
        "type": "array",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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">
# ''[[#Audio.Property.Name|Audio.Property.Name]]''[] properties
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the values of the music library properties",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "items": {
        "$ref": "Audio.Property.Name"
      },
      "type": "array",
      "name": "properties",
      "required": true
    }
  ],
  "returns": {
    "$ref": "Audio.Property.Value"
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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]]''[] albums ]
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve recently added albums",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Audio.Fields.Album",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "albums": {
        "items": {
          "$ref": "Audio.Details.Album"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</syntaxhighlight>}}
==== AudioLibrary.GetRecentlyAddedSongs ====
Retrieve recently added songs<br />
Retrieve recently added songs<br />
'''Permissions:'''
'''Permissions:'''
Line 4: Line 1,136:
'''Parameters:'''  
'''Parameters:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<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 ]
# [ ''[[#List.Amount|List.Amount]]'' albumlimit = "-1" ]
# [ ''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties ]
# [ ''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
Line 13: Line 1,145:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
* ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits
* ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits
* [ ''[[#Audio.Details.Song|Audio.Details.Song]]''[] songs ]
* [ ''[[#Audio.Details.Song|Audio.Details.Song]]''[] songs ]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
Line 23: Line 1,155:
     {
     {
       "default": "-1",
       "default": "-1",
      "description": "The amount of recently added albums from which to return the songs",
      "$ref": "List.Amount",
       "name": "albumlimit",
       "name": "albumlimit",
       "required": false,
       "required": false
      "$ref": "List.Amount"
     },
     },
     {
     {
      "$ref": "Audio.Fields.Song",
       "name": "properties",
       "name": "properties",
       "required": false,
       "required": false
      "$ref": "Audio.Fields.Song"
     },
     },
     {
     {
      "$ref": "List.Limits",
       "name": "limits",
       "name": "limits",
       "required": false,
       "required": false
      "$ref": "List.Limits"
     },
     },
     {
     {
      "$ref": "List.Sort",
       "name": "sort",
       "name": "sort",
       "required": false,
       "required": false
      "$ref": "List.Sort"
     }
     }
   ],
   ],
Line 47: Line 1,180:
     "properties": {
     "properties": {
       "limits": {
       "limits": {
        "required": true,
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned"
        "required": true
       },
       },
       "songs": {
       "songs": {
Line 57: Line 1,190:
         "required": false
         "required": false
       }
       }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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]]''[] albums ]
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve recently played albums",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Audio.Fields.Album",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "albums": {
        "items": {
          "$ref": "Audio.Details.Album"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* [ ''[[#Audio.Details.Song|Audio.Details.Song]]''[] songs ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve recently played songs",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Audio.Fields.Song",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "songs": {
        "items": {
          "$ref": "Audio.Details.Song"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* ''[[#Audio.Details.Role|Audio.Details.Role]]''[] roles
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all contributor roles",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Audio.Fields.Role",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "roles": {
        "items": {
          "$ref": "Audio.Details.Role"
        },
        "type": "array",
        "required": true
      }
    }
  }
}</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
# [ ''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific song",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "songid",
      "required": true
    },
    {
      "$ref": "Audio.Fields.Song",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "songdetails": {
        "$ref": "Audio.Details.Song",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''mixed'' filter ]
# [ ''boolean'' includesingles = true ]
# [ ''boolean'' allroles = false ]
</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
* [ ''[[#Audio.Details.Song|Audio.Details.Song]]''[] songs ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all songs from specified album, artist or genre",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Audio.Fields.Song",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "description": "Song genre. Filter for existance of songs with this genre",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "description": "Song genre. Filter for existance of songs with this genre",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            },
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            },
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "albumid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "album": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.Songs"
        }
      ],
      "name": "filter",
      "required": false
    },
    {
      "default": "true",
      "type": "boolean",
      "name": "includesingles",
      "required": false
    },
    {
      "default": "false",
      "description": "Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value.",
      "type": "boolean",
      "name": "allroles",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "songs": {
        "items": {
          "$ref": "Audio.Details.Song"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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 ]
# [ ''boolean'' showdialogs = true ]
</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 lang="javascript" enclose="div">{
  "description": "Scans the audio sources for new library items",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "default": "",
      "type": "string",
      "name": "directory",
      "required": false
    },
    {
      "default": "true",
      "description": "Whether or not to show the progress bar or any other GUI dialog",
      "type": "boolean",
      "name": "showdialogs",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' title ]
# [ ''mixed'' artist ]
# [ ''[[#Optional.String|Optional.String]]'' description ]
# [ ''mixed'' genre ]
# [ ''mixed'' theme ]
# [ ''mixed'' mood ]
# [ ''mixed'' style ]
# [ ''[[#Optional.String|Optional.String]]'' type ]
# [ ''[[#Optional.String|Optional.String]]'' albumlabel ]
# [ ''[[#Optional.Number|Optional.Number]]'' rating ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' year ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' userrating ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' votes ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given album with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "albumid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "title",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "artist",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "description",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "genre",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "theme",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "mood",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "style",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "type",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "albumlabel",
      "required": false
    },
    {
      "$ref": "Optional.Number",
      "name": "rating",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "year",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "userrating",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "votes",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' artist ]
# [ ''mixed'' instrument ]
# [ ''mixed'' style ]
# [ ''mixed'' mood ]
# [ ''[[#Optional.String|Optional.String]]'' born ]
# [ ''[[#Optional.String|Optional.String]]'' formed ]
# [ ''[[#Optional.String|Optional.String]]'' description ]
# [ ''mixed'' genre ]
# [ ''[[#Optional.String|Optional.String]]'' died ]
# [ ''[[#Optional.String|Optional.String]]'' disbanded ]
# [ ''mixed'' yearsactive ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given artist with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "artistid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "artist",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "instrument",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "style",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "mood",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "born",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "formed",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "description",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "genre",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "died",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "disbanded",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "yearsactive",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' title ]
# [ ''mixed'' artist ]
# [ ''mixed'' albumartist ]
# [ ''mixed'' genre ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' year ]
# [ ''[[#Optional.Number|Optional.Number]]'' rating ]
# [ ''[[#Optional.String|Optional.String]]'' album ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' track ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' disc ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' duration ]
# [ ''[[#Optional.String|Optional.String]]'' comment ]
# [ ''[[#Optional.String|Optional.String]]'' musicbrainztrackid ]
# [ ''[[#Optional.String|Optional.String]]'' musicbrainzartistid ]
# [ ''[[#Optional.String|Optional.String]]'' musicbrainzalbumid ]
# [ ''[[#Optional.String|Optional.String]]'' musicbrainzalbumartistid ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' playcount ]
# [ ''[[#Optional.String|Optional.String]]'' lastplayed ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' userrating ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' votes ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given song with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "songid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "title",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "artist",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "albumartist",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "genre",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "year",
      "required": false
    },
    {
      "$ref": "Optional.Number",
      "name": "rating",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "album",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "track",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "disc",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "duration",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "comment",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "musicbrainztrackid",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "musicbrainzartistid",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "musicbrainzalbumid",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "musicbrainzalbumartistid",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "playcount",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "lastplayed",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "userrating",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "votes",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''[[#Favourite.Type|Favourite.Type]]'' type
# [ ''[[#Optional.String|Optional.String]]'' path ]
# [ ''[[#Optional.String|Optional.String]]'' window ]
# [ ''[[#Optional.String|Optional.String]]'' windowparameter ]
# [ ''[[#Optional.String|Optional.String]]'' thumbnail ]
</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 lang="javascript" enclose="div">{
  "description": "Add a favourite with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "title",
      "required": true
    },
    {
      "$ref": "Favourite.Type",
      "name": "type",
      "required": true
    },
    {
      "description": "Required for media and script favourites types",
      "$ref": "Optional.String",
      "name": "path",
      "required": false
    },
    {
      "description": "Required for window favourite type",
      "$ref": "Optional.String",
      "name": "window",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "windowparameter",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "thumbnail",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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'' type ]
# [ ''[[#Favourite.Fields.Favourite|Favourite.Fields.Favourite]]'' properties ]
</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:'''
* [ ''[[#Favourite.Details.Favourite|Favourite.Details.Favourite]]''[] favourites ]
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve all favourites",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Favourite.Type"
        }
      ],
      "name": "type",
      "required": false
    },
    {
      "$ref": "Favourite.Fields.Favourite",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "favourites": {
        "items": {
          "$ref": "Favourite.Details.Favourite"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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
# [ ''[[#Files.Media|Files.Media]]'' media = "files" ]
# [ ''[[#List.Fields.Files|List.Fields.Files]]'' properties ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
</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]]''[] files
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Get the directories and files in the given directory",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "directory",
      "required": true
    },
    {
      "default": "files",
      "$ref": "Files.Media",
      "name": "media",
      "required": false
    },
    {
      "$ref": "List.Fields.Files",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "description": "Limits are applied after getting the directory content thus retrieval is not faster when they are applied.",
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "files": {
        "items": {
          "$ref": "List.Item.File"
        },
        "type": "array",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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
# [ ''[[#Files.Media|Files.Media]]'' media = "files" ]
# [ ''[[#List.Fields.Files|List.Fields.Files]]'' properties ]
</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
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Get details for a specific file",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "description": "Full path to the file",
      "type": "string",
      "name": "file",
      "required": true
    },
    {
      "default": "files",
      "$ref": "Files.Media",
      "name": "media",
      "required": false
    },
    {
      "$ref": "List.Fields.Files",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "filedetails": {
        "$ref": "List.Item.File",
        "required": true
      }
    }
  }
}</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
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* ''[[#List.Items.Sources|List.Items.Sources]]'' sources
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Get the sources of the media windows",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Files.Media",
      "name": "media",
      "required": true
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "sources": {
        "$ref": "List.Items.Sources",
        "required": true
      }
    }
  }
}</syntaxhighlight>}}
==== Files.PrepareDownload ====
Provides a way to download a given file (e.g. providing an URL to the real file location)<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''string'' path
</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:'''
* ''mixed'' details
* ''string'' mode
* ''string'' protocol
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Provides a way to download a given file (e.g. providing an URL to the real file location)",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "path",
      "required": true
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "details": {
        "description": "Transport specific details on how/from where to download the given file",
        "type": "any",
        "required": true
      },
      "mode": {
        "description": "Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol",
        "type": "string",
        "required": true
      },
      "protocol": {
        "type": "string",
        "required": true
      }
    }
  }
}</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
# ''[[#Files.Media|Files.Media]]'' media
# [ ''[[#Optional.Integer|Optional.Integer]]'' playcount ]
# [ ''[[#Optional.String|Optional.String]]'' lastplayed ]
# [ ''mixed'' resume ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given specific file with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "description": "Full path to the file",
      "type": "string",
      "name": "file",
      "required": true
    },
    {
      "description": "File type to update correct database. Currently only \"video\" is supported.",
      "$ref": "Files.Media",
      "name": "media",
      "required": true
    },
    {
      "$ref": "Optional.Integer",
      "name": "playcount",
      "required": false
    },
    {
      "description": "Setting a valid lastplayed without a playcount will force playcount to 1.",
      "$ref": "Optional.String",
      "name": "lastplayed",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Video.Resume"
        }
      ],
      "name": "resume",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#|]]''[] parameters ]
</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 lang="javascript" enclose="div">{
  "description": "Activates the given window",
  "permission": "ControlGUI",
  "type": "method",
  "params": [
    {
      "$ref": "GUI.Window",
      "name": "window",
      "required": true
    },
    {
      "items": {},
      "type": "array",
      "name": "parameters",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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">
# ''[[#GUI.Property.Name|GUI.Property.Name]]''[] properties
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the values of the given properties",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "items": {
        "$ref": "GUI.Property.Name"
      },
      "type": "array",
      "name": "properties",
      "required": true
    }
  ],
  "returns": {
    "$ref": "GUI.Property.Value"
  }
}</syntaxhighlight>}}
==== GUI.GetStereoscopicModes ====
Returns the supported stereoscopic modes of the GUI<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">
</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:'''
* [ ''[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]''[] stereoscopicmodes ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Returns the supported stereoscopic modes of the GUI",
  "permission": "ReadData",
  "type": "method",
  "params": [],
  "returns": {
    "type": "object",
    "properties": {
      "stereoscopicmodes": {
        "items": {
          "$ref": "GUI.Stereoscopy.Mode"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Toggle fullscreen/GUI",
  "permission": "ControlGUI",
  "type": "method",
  "params": [
    {
      "$ref": "Global.Toggle",
      "name": "fullscreen",
      "required": true
    }
  ],
  "returns": {
    "type": "boolean",
    "description": "Fullscreen state"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Sets the stereoscopic mode of the GUI to the given mode",
  "permission": "ControlGUI",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "mode",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''string'' message
# [ ''mixed'' image ]
# [ ''integer'' displaytime = "5000" ]
</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 lang="javascript" enclose="div">{
  "description": "Shows a GUI notification",
  "permission": "ControlGUI",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "title",
      "required": true
    },
    {
      "type": "string",
      "name": "message",
      "required": true
    },
    {
      "default": "",
      "type": [
        {
          "enums": [
            "info",
            "warning",
            "error"
          ],
          "type": "string"
        },
        {
          "type": "string"
        }
      ],
      "name": "image",
      "required": false
    },
    {
      "default": "5000",
      "description": "The time in milliseconds the notification will be visible",
      "type": "integer",
      "name": "displaytime",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
=== Input ===
==== Input.Back ====
Goes back in GUI<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">
</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 lang="javascript" enclose="div">{
  "description": "Goes back in GUI",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.ContextMenu ====
Shows the context menu<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">
</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 lang="javascript" enclose="div">{
  "description": "Shows the context menu",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.Down ====
Navigate down in GUI<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">
</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 lang="javascript" enclose="div">{
  "description": "Navigate down in GUI",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Execute a specific action",
  "permission": "Navigate",
  "type": "method",
  "params": [
    {
      "$ref": "Input.Action",
      "name": "action",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.Home ====
Goes to home window in GUI<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">
</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 lang="javascript" enclose="div">{
  "description": "Goes to home window in GUI",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.Info ====
Shows the information dialog<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">
</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 lang="javascript" enclose="div">{
  "description": "Shows the information dialog",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.Left ====
Navigate left in GUI<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">
</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 lang="javascript" enclose="div">{
  "description": "Navigate left in GUI",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.Right ====
Navigate right in GUI<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">
</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 lang="javascript" enclose="div">{
  "description": "Navigate right in GUI",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.Select ====
Select current item in GUI<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">
</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 lang="javascript" enclose="div">{
  "description": "Select current item in GUI",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</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
# [ ''boolean'' done = true ]
</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 lang="javascript" enclose="div">{
  "description": "Send a generic (unicode) text",
  "permission": "Navigate",
  "type": "method",
  "params": [
    {
      "description": "Unicode text",
      "type": "string",
      "name": "text",
      "required": true
    },
    {
      "default": "true",
      "description": "Whether this is the whole input or not (closes an open input dialog if true).",
      "type": "boolean",
      "name": "done",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.ShowCodec ====
Show codec information of the playing item<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">
</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 lang="javascript" enclose="div">{
  "description": "Show codec information of the playing item",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.ShowOSD ====
Show the on-screen display for the current player<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">
</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 lang="javascript" enclose="div">{
  "description": "Show the on-screen display for the current player",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.ShowPlayerProcessInfo ====
Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...<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">
</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 lang="javascript" enclose="div">{
  "description": "Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== Input.Up ====
Navigate up in GUI<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">
</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 lang="javascript" enclose="div">{
  "description": "Navigate up in GUI",
  "permission": "Navigate",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</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 ]
# [ ''boolean'' getmetadata = false ]
# [ ''boolean'' filterbytransport = true ]
# [ ''mixed'' filter ]
</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 lang="javascript" enclose="div">{
  "description": "Enumerates all actions and descriptions",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "true",
      "type": "boolean",
      "name": "getdescriptions",
      "required": false
    },
    {
      "default": "false",
      "type": "boolean",
      "name": "getmetadata",
      "required": false
    },
    {
      "default": "true",
      "type": "boolean",
      "name": "filterbytransport",
      "required": false
    },
    {
      "type": "object",
      "name": "filter",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "additionalProperties": false
  }
}</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
# ''string'' message
# [ ''mixed'' data ]
</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 lang="javascript" enclose="div">{
  "description": "Notify all other connected clients",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "sender",
      "required": true
    },
    {
      "type": "string",
      "name": "message",
      "required": true
    },
    {
      "type": "any",
      "name": "data",
      "required": false
    }
  ],
  "returns": {
    "type": "any"
  }
}</syntaxhighlight>}}
==== JSONRPC.Permission ====
Retrieve the clients permissions<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">
</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:'''
* ''boolean'' controlgui
* ''boolean'' controlnotify
* ''boolean'' controlplayback
* ''boolean'' controlpower
* ''boolean'' controlpvr
* ''boolean'' controlsystem
* ''boolean'' executeaddon
* ''boolean'' manageaddon
* ''boolean'' navigate
* ''boolean'' readdata
* ''boolean'' removedata
* ''boolean'' updatedata
* ''boolean'' writefile
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve the clients permissions",
  "permission": "ReadData",
  "type": "method",
  "params": [],
  "returns": {
    "type": "object",
    "properties": {
      "controlgui": {
        "type": "boolean",
        "required": true
      },
      "controlnotify": {
        "type": "boolean",
        "required": true
      },
      "controlplayback": {
        "type": "boolean",
        "required": true
      },
      "controlpower": {
        "type": "boolean",
        "required": true
      },
      "controlpvr": {
        "type": "boolean",
        "required": true
      },
      "controlsystem": {
        "type": "boolean",
        "required": true
      },
      "executeaddon": {
        "type": "boolean",
        "required": true
      },
      "manageaddon": {
        "type": "boolean",
        "required": true
      },
      "navigate": {
        "type": "boolean",
        "required": true
      },
      "readdata": {
        "type": "boolean",
        "required": true
      },
      "removedata": {
        "type": "boolean",
        "required": true
      },
      "updatedata": {
        "type": "boolean",
        "required": true
      },
      "writefile": {
        "type": "boolean",
        "required": true
      }
    }
  }
}</syntaxhighlight>}}
==== JSONRPC.Ping ====
Ping responder<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">
</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 lang="javascript" enclose="div">{
  "description": "Ping responder",
  "permission": "ReadData",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== JSONRPC.Version ====
Retrieve the JSON-RPC protocol version.<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">
</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:'''
* ''mixed'' version
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve the JSON-RPC protocol version.",
  "permission": "ReadData",
  "type": "method",
  "params": [],
  "returns": {
    "type": "object",
    "properties": {
      "version": {
        "type": "object",
        "required": true
      }
    }
  }
}</syntaxhighlight>}}
=== Player ===
==== Player.GetActivePlayers ====
Returns all active 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">
</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 lang="javascript" enclose="div">{
  "description": "Returns all active players",
  "permission": "ReadData",
  "type": "method",
  "params": [],
  "returns": {
    "type": "array"
  }
}</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
# [ ''[[#List.Fields.All|List.Fields.All]]'' properties ]
</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
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the currently played item",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "$ref": "List.Fields.All",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "item": {
        "$ref": "List.Item.All",
        "required": true
      }
    }
  }
}</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" ]
</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 lang="javascript" enclose="div">{
  "description": "Get a list of available players",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "all",
      "type": "string",
      "name": "media",
      "required": false
    }
  ],
  "returns": {
    "type": "array"
  }
}</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
# ''[[#Player.Property.Name|Player.Property.Name]]''[] properties
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the values of the given properties",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "items": {
        "$ref": "Player.Property.Name"
      },
      "type": "array",
      "name": "properties",
      "required": true
    }
  ],
  "returns": {
    "$ref": "Player.Property.Value"
  }
}</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
# ''mixed'' to
</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 lang="javascript" enclose="div">{
  "description": "Go to previous/next/specific item in the playlist",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "enums": [
            "previous",
            "next"
          ],
          "type": "string"
        },
        {
          "$ref": "Playlist.Position",
          "description": "position in playlist"
        }
      ],
      "name": "to",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''string'' direction
</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 lang="javascript" enclose="div">{
  "description": "If picture is zoomed move viewport left/right/up/down otherwise skip previous/next",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": "string",
      "name": "direction",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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'' item ]
# [ ''mixed'' options ]
</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 lang="javascript" enclose="div">{
  "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",
  "type": "method",
  "params": [
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "playlistid": {
              "$ref": "Playlist.Id",
              "required": true
            },
            "position": {
              "$ref": "Playlist.Position",
              "default": 0
            }
          },
          "type": "object"
        },
        {
          "$ref": "Playlist.Item"
        },
        {
          "additionalProperties": false,
          "properties": {
            "path": {
              "required": true,
              "type": "string"
            },
            "random": {
              "default": true,
              "description": "Deprecated, use the shuffled property of the options parameter instead",
              "type": "boolean"
            },
            "recursive": {
              "default": true,
              "type": "boolean"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "partymode": {
              "default": "",
              "type": [
                {
                  "enums": [
                    "music",
                    "video"
                  ],
                  "type": "string"
                },
                {
                  "description": "Path to a smartplaylist (*.xsp) file",
                  "minLength": 5,
                  "type": "string"
                }
              ]
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "channelid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "recordingid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        }
      ],
      "name": "item",
      "required": false
    },
    {
      "type": "object",
      "name": "options",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Global.Toggle|Global.Toggle]]'' play = "toggle" ]
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Pauses or unpause playback and returns the new state",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "default": "toggle",
      "$ref": "Global.Toggle",
      "name": "play",
      "required": false
    }
  ],
  "returns": {
    "$ref": "Player.Speed"
  }
}</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
# [ ''string'' value = "clockwise" ]
</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 lang="javascript" enclose="div">{
  "description": "Rotates current picture",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "default": "clockwise",
      "type": "string",
      "name": "value",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''mixed'' value
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Properties:'''
* [ ''[[#Player.Position.Percentage|Player.Position.Percentage]]''  = "0"percentage ]
* [ ''[[#Global.Time|Global.Time]]'' time ]
* [ ''[[#Global.Time|Global.Time]]'' totaltime ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Seek through the playing item",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "$ref": "Player.Position.Percentage",
          "description": "Percentage value to seek to"
        },
        {
          "$ref": "Player.Position.Time",
          "description": "Time to seek to"
        },
        {
          "description": "Seek by predefined jumps",
          "enums": [
            "smallforward",
            "smallbackward",
            "bigforward",
            "bigbackward"
          ],
          "type": "string"
        },
        {
          "additionalProperties": false,
          "properties": {
            "percentage": {
              "$ref": "Player.Position.Percentage",
              "description": "Percentage value to seek to",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "time": {
              "$ref": "Player.Position.Time",
              "description": "Time to seek to",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "step": {
              "description": "Seek by predefined jumps",
              "enums": [
                "smallforward",
                "smallbackward",
                "bigforward",
                "bigbackward"
              ],
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "seconds": {
              "description": "Seek by the given number of seconds",
              "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        }
      ],
      "name": "value",
      "required": true
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "percentage": {
        "default": "0",
        "$ref": "Player.Position.Percentage",
        "required": false
      },
      "time": {
        "$ref": "Global.Time",
        "required": false
      },
      "totaltime": {
        "$ref": "Global.Time",
        "required": false
      }
    }
  }
}</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
# ''mixed'' stream
</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 lang="javascript" enclose="div">{
  "description": "Set the audio stream played by the player",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "enums": [
            "previous",
            "next"
          ],
          "type": "string"
        },
        {
          "description": "Index of the audio stream to play",
          "minimum": 0,
          "type": "integer"
        }
      ],
      "name": "stream",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''[[#Global.Toggle|Global.Toggle]]'' partymode
</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 lang="javascript" enclose="div">{
  "description": "Turn partymode on or off",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "$ref": "Global.Toggle",
      "name": "partymode",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''mixed'' repeat
</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 lang="javascript" enclose="div">{
  "description": "Set the repeat mode of the player",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "$ref": "Player.Repeat"
        },
        {
          "enums": [
            "cycle"
          ],
          "type": "string"
        }
      ],
      "name": "repeat",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''[[#Global.Toggle|Global.Toggle]]'' shuffle
</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 lang="javascript" enclose="div">{
  "description": "Shuffle/Unshuffle items in the player",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "$ref": "Global.Toggle",
      "name": "shuffle",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''mixed'' speed
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Set the speed of the current playback",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "enums": [
            -32,
            -16,
            -8,
            -4,
            -2,
            -1,
            0,
            1,
            2,
            4,
            8,
            16,
            32
          ],
          "type": "integer"
        },
        {
          "$ref": "Global.IncrementDecrement"
        }
      ],
      "name": "speed",
      "required": true
    }
  ],
  "returns": {
    "$ref": "Player.Speed"
  }
}</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
# ''mixed'' subtitle
# [ ''boolean'' enable = false ]
</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 lang="javascript" enclose="div">{
  "description": "Set the subtitle displayed by the player",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "enums": [
            "previous",
            "next",
            "off",
            "on"
          ],
          "type": "string"
        },
        {
          "description": "Index of the subtitle to display",
          "minimum": 0,
          "type": "integer"
        }
      ],
      "name": "subtitle",
      "required": true
    },
    {
      "default": "false",
      "description": "Whether to enable subtitles to be displayed after setting the new subtitle",
      "type": "boolean",
      "name": "enable",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''mixed'' stream
</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 lang="javascript" enclose="div">{
  "description": "Set the video stream played by the player",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "enums": [
            "previous",
            "next"
          ],
          "type": "string"
        },
        {
          "description": "Index of the video stream to play",
          "minimum": 0,
          "type": "integer"
        }
      ],
      "name": "stream",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Stops playback",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''mixed'' zoom
</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 lang="javascript" enclose="div">{
  "description": "Zoom current picture",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "type": [
        {
          "enums": [
            "in",
            "out"
          ],
          "type": "string"
        },
        {
          "description": "zoom level",
          "maximum": 10,
          "minimum": 1,
          "type": "integer"
        }
      ],
      "name": "zoom",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''mixed'' item
</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 lang="javascript" enclose="div">{
  "description": "Add item(s) to playlist",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Playlist.Id",
      "name": "playlistid",
      "required": true
    },
    {
      "type": [
        {
          "$ref": "Playlist.Item"
        },
        {
          "items": {
            "$ref": "Playlist.Item"
          },
          "type": "array"
        }
      ],
      "name": "item",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Clear playlist",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Playlist.Id",
      "name": "playlistid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#List.Fields.All|List.Fields.All]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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]]''[] items
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Get all items from playlist",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Playlist.Id",
      "name": "playlistid",
      "required": true
    },
    {
      "$ref": "List.Fields.All",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "items": {
        "items": {
          "$ref": "List.Item.All"
        },
        "type": "array",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</syntaxhighlight>}}
==== Playlist.GetPlaylists ====
Returns all existing playlists<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">
</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 lang="javascript" enclose="div">{
  "description": "Returns all existing playlists",
  "permission": "ReadData",
  "type": "method",
  "params": [],
  "returns": {
    "type": "array"
  }
}</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
# ''[[#Playlist.Property.Name|Playlist.Property.Name]]''[] properties
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the values of the given properties",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Playlist.Id",
      "name": "playlistid",
      "required": true
    },
    {
      "items": {
        "$ref": "Playlist.Property.Name"
      },
      "type": "array",
      "name": "properties",
      "required": true
    }
  ],
  "returns": {
    "$ref": "Playlist.Property.Value"
  }
}</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
# ''[[#Playlist.Position|Playlist.Position]]'' position
# ''mixed'' item
</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 lang="javascript" enclose="div">{
  "description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Playlist.Id",
      "name": "playlistid",
      "required": true
    },
    {
      "$ref": "Playlist.Position",
      "name": "position",
      "required": true
    },
    {
      "type": [
        {
          "$ref": "Playlist.Item"
        },
        {
          "items": {
            "$ref": "Playlist.Item"
          },
          "type": "array"
        }
      ],
      "name": "item",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''[[#Playlist.Position|Playlist.Position]]'' position
</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 lang="javascript" enclose="div">{
  "description": "Remove item from playlist. Does not work for picture playlists (aka slideshows).",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Playlist.Id",
      "name": "playlistid",
      "required": true
    },
    {
      "$ref": "Playlist.Position",
      "name": "position",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''[[#Playlist.Position|Playlist.Position]]'' position1
# ''[[#Playlist.Position|Playlist.Position]]'' position2
</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 lang="javascript" enclose="div">{
  "description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows).",
  "permission": "ControlPlayback",
  "type": "method",
  "params": [
    {
      "$ref": "Playlist.Id",
      "name": "playlistid",
      "required": true
    },
    {
      "$ref": "Playlist.Position",
      "name": "position1",
      "required": true
    },
    {
      "$ref": "Playlist.Position",
      "name": "position2",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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 ]
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve the current profile",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Profiles.Fields.Profile",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "$ref": "Profiles.Details.Profile"
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* ''[[#Profiles.Details.Profile|Profiles.Details.Profile]]''[] profiles
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all profiles",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Profiles.Fields.Profile",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "profiles": {
        "items": {
          "$ref": "Profiles.Details.Profile"
        },
        "type": "array",
        "required": true
      }
    }
  }
}</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
# [ ''boolean'' prompt = false ]
# [ ''[[#Profiles.Password|Profiles.Password]]'' password ]
</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 lang="javascript" enclose="div">{
  "description": "Load the specified profile",
  "permission": "Navigate",
  "type": "method",
  "params": [
    {
      "description": "Profile name",
      "type": "string",
      "name": "profile",
      "required": true
    },
    {
      "default": "false",
      "description": "Prompt for password",
      "type": "boolean",
      "name": "prompt",
      "required": false
    },
    {
      "$ref": "Profiles.Password",
      "name": "password",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''boolean'' timerrule = false ]
</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 lang="javascript" enclose="div">{
  "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",
  "type": "method",
  "params": [
    {
      "description": "the broadcast id of the item to record",
      "$ref": "Library.Id",
      "name": "broadcastid",
      "required": true
    },
    {
      "default": "false",
      "description": "controls whether to create a timer rule or a onetime timer",
      "type": "boolean",
      "name": "timerrule",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Deletes a onetime timer or a timer rule",
  "permission": "ControlPVR",
  "type": "method",
  "params": [
    {
      "description": "the id of the onetime timer or timer rule to delete",
      "$ref": "Library.Id",
      "name": "timerid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the details of a specific broadcast",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "broadcastid",
      "required": true
    },
    {
      "$ref": "PVR.Fields.Broadcast",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "broadcastdetails": {
        "$ref": "PVR.Details.Broadcast",
        "required": false
      }
    }
  }
}</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
# [ ''[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
</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]]''[] broadcasts
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieves the program of a specific channel",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "channelid",
      "required": true
    },
    {
      "$ref": "PVR.Fields.Broadcast",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "broadcasts": {
        "items": {
          "$ref": "PVR.Details.Broadcast"
        },
        "type": "array",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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
# [ ''[[#PVR.Fields.Channel|PVR.Fields.Channel]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the details of a specific channel",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "channelid",
      "required": true
    },
    {
      "$ref": "PVR.Fields.Channel",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "channeldetails": {
        "$ref": "PVR.Details.Channel",
        "required": false
      }
    }
  }
}</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
# [ ''mixed'' channels ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the details of a specific channel group",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "PVR.ChannelGroup.Id",
      "name": "channelgroupid",
      "required": true
    },
    {
      "type": "object",
      "name": "channels",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "channelgroupdetails": {
        "$ref": "PVR.Details.ChannelGroup.Extended",
        "required": false
      }
    }
  }
}</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
# [ ''[[#List.Limits|List.Limits]]'' limits ]
</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|PVR.Details.ChannelGroup]]''[] channelgroups
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieves the channel groups for the specified type",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "PVR.Channel.Type",
      "name": "channeltype",
      "required": true
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "channelgroups": {
        "items": {
          "$ref": "PVR.Details.ChannelGroup"
        },
        "type": "array",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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
# [ ''[[#PVR.Fields.Channel|PVR.Fields.Channel]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
</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]]''[] 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 lang="javascript" enclose="div">{
  "description": "Retrieves the channel list",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "PVR.ChannelGroup.Id",
      "name": "channelgroupid",
      "required": true
    },
    {
      "$ref": "PVR.Fields.Channel",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "channels": {
        "items": {
          "$ref": "PVR.Details.Channel"
        },
        "type": "array",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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">
# ''[[#PVR.Property.Name|PVR.Property.Name]]''[] properties
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the values of the given properties",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "items": {
        "$ref": "PVR.Property.Name"
      },
      "type": "array",
      "name": "properties",
      "required": true
    }
  ],
  "returns": {
    "$ref": "PVR.Property.Value"
  }
}</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
# [ ''[[#PVR.Fields.Recording|PVR.Fields.Recording]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the details of a specific recording",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "recordingid",
      "required": true
    },
    {
      "$ref": "PVR.Fields.Recording",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "recordingdetails": {
        "$ref": "PVR.Details.Recording",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
</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
* ''[[#PVR.Details.Recording|PVR.Details.Recording]]''[] recordings
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the recordings",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "PVR.Fields.Recording",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "recordings": {
        "items": {
          "$ref": "PVR.Details.Recording"
        },
        "type": "array",
        "required": true
      }
    }
  }
}</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
# [ ''[[#PVR.Fields.Timer|PVR.Fields.Timer]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the details of a specific timer",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "timerid",
      "required": true
    },
    {
      "$ref": "PVR.Fields.Timer",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "timerdetails": {
        "$ref": "PVR.Details.Timer",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
</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
* ''[[#PVR.Details.Timer|PVR.Details.Timer]]''[] timers
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the timers",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "PVR.Fields.Timer",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "timers": {
        "items": {
          "$ref": "PVR.Details.Timer"
        },
        "type": "array",
        "required": true
      }
    }
  }
}</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" ]
# [ ''mixed'' channel = "current" ]
</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 lang="javascript" enclose="div">{
  "description": "Toggle recording of a channel",
  "permission": "ControlPVR",
  "type": "method",
  "params": [
    {
      "default": "toggle",
      "$ref": "Global.Toggle",
      "name": "record",
      "required": false
    },
    {
      "default": "current",
      "type": [
        {
          "enums": [
            "current"
          ],
          "type": "string"
        },
        {
          "$ref": "Library.Id"
        }
      ],
      "name": "channel",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== PVR.Scan ====
Starts a channel scan<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">
</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 lang="javascript" enclose="div">{
  "description": "Starts a channel scan",
  "permission": "ControlPVR",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</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
# [ ''boolean'' timerrule = false ]
</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 lang="javascript" enclose="div">{
  "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",
  "type": "method",
  "params": [
    {
      "description": "the broadcast id of the item to toggle a onetime timer or time rule for",
      "$ref": "Library.Id",
      "name": "broadcastid",
      "required": true
    },
    {
      "default": "false",
      "description": "controls whether to create / delete a timer rule or a onetime timer",
      "type": "boolean",
      "name": "timerrule",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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" ]
# [ ''string'' section ]
# [ ''mixed'' properties ]
</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.Details.Category|Setting.Details.Category]]''[] categories ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves all setting categories",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "standard",
      "$ref": "Setting.Level",
      "name": "level",
      "required": false
    },
    {
      "default": "",
      "type": "string",
      "name": "section",
      "required": false
    },
    {
      "items": {},
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "categories": {
        "items": {
          "$ref": "Setting.Details.Category"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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" ]
# [ ''mixed'' properties ]
</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.Details.Section|Setting.Details.Section]]''[] sections ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves all setting sections",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "standard",
      "$ref": "Setting.Level",
      "name": "level",
      "required": false
    },
    {
      "items": {},
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "sections": {
        "items": {
          "$ref": "Setting.Details.Section"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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" ]
# [ ''mixed'' filter ]
</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.Details.Setting|Setting.Details.Setting]]''[] settings ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves all settings",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "standard",
      "$ref": "Setting.Level",
      "name": "level",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "category": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "section": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        }
      ],
      "name": "filter",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "settings": {
        "items": {
          "$ref": "Setting.Details.Setting"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
</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
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the value of a setting",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "setting",
      "required": true
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "value": {
        "$ref": "Setting.Value.Extended",
        "required": true
      }
    }
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Resets the value of a setting",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "setting",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# ''[[#Setting.Value.Extended|Setting.Value.Extended]]'' value
</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 lang="javascript" enclose="div">{
  "description": "Changes the value of a setting",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "setting",
      "required": true
    },
    {
      "$ref": "Setting.Value.Extended",
      "name": "value",
      "required": true
    }
  ],
  "returns": {
    "type": "boolean"
  }
}</syntaxhighlight>}}
=== System ===
==== System.EjectOpticalDrive ====
Ejects or closes the optical disc drive (if available)<br />
'''Permissions:'''
* ControlSystem
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
</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 lang="javascript" enclose="div">{
  "description": "Ejects or closes the optical disc drive (if available)",
  "permission": "ControlSystem",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</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">
# ''[[#System.Property.Name|System.Property.Name]]''[] properties
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieves the values of the given properties",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "items": {
        "$ref": "System.Property.Name"
      },
      "type": "array",
      "name": "properties",
      "required": true
    }
  ],
  "returns": {
    "$ref": "System.Property.Value"
  }
}</syntaxhighlight>}}
==== System.Hibernate ====
Puts the system running Kodi into hibernate mode<br />
'''Permissions:'''
* ControlPower
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
</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 lang="javascript" enclose="div">{
  "description": "Puts the system running Kodi into hibernate mode",
  "permission": "ControlPower",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== System.Reboot ====
Reboots the system running Kodi<br />
'''Permissions:'''
* ControlPower
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
</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 lang="javascript" enclose="div">{
  "description": "Reboots the system running Kodi",
  "permission": "ControlPower",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== System.Shutdown ====
Shuts the system running Kodi down<br />
'''Permissions:'''
* ControlPower
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
</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 lang="javascript" enclose="div">{
  "description": "Shuts the system running Kodi down",
  "permission": "ControlPower",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
==== System.Suspend ====
Suspends the system running Kodi<br />
'''Permissions:'''
* ControlPower
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
</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 lang="javascript" enclose="div">{
  "description": "Suspends the system running Kodi",
  "permission": "ControlPower",
  "type": "method",
  "params": [],
  "returns": {
    "type": "string"
  }
}</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 ]
# [ ''[[#List.Filter.Textures|List.Filter.Textures]]'' filter ]
</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:'''
* ''[[#Textures.Details.Texture|Textures.Details.Texture]]''[] textures
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all textures",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Textures.Fields.Texture",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Filter.Textures",
      "name": "filter",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "textures": {
        "items": {
          "$ref": "Textures.Details.Texture"
        },
        "type": "array",
        "required": true
      }
    }
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Remove the specified texture",
  "permission": "RemoveData",
  "type": "method",
  "params": [
    {
      "description": "Texture database identifier",
      "$ref": "Library.Id",
      "name": "textureid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</syntaxhighlight>}}
=== VideoLibrary ===
==== VideoLibrary.Clean ====
Cleans the video 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 ]
</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 lang="javascript" enclose="div">{
  "description": "Cleans the video library from non-existent items",
  "permission": "RemoveData",
  "type": "method",
  "params": [
    {
      "default": "true",
      "description": "Whether or not to show the progress bar or any other GUI dialog",
      "type": "boolean",
      "name": "showdialogs",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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'' options ]
</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 lang="javascript" enclose="div">{
  "description": "Exports all items from the video library",
  "permission": "WriteFile",
  "type": "method",
  "params": [
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "path": {
              "description": "Path to the directory to where the data should be exported",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "actorthumbs": {
              "default": false,
              "description": "Whether to export actor thumbnails",
              "type": "boolean"
            },
            "images": {
              "default": false,
              "description": "Whether to export thumbnails and fanart images",
              "type": "boolean"
            },
            "overwrite": {
              "default": false,
              "description": "Whether to overwrite existing exported files",
              "type": "boolean"
            }
          },
          "type": "object"
        }
      ],
      "name": "options",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific tv show episode",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "episodeid",
      "required": true
    },
    {
      "$ref": "Video.Fields.Episode",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "episodedetails": {
        "$ref": "Video.Details.Episode",
        "required": false
      }
    }
  }
}</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" ]
# [ ''integer'' season = "-1" ]
# [ ''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''mixed'' filter ]
</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]]''[] episodes ]
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve all tv show episodes",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "-1",
      "$ref": "Library.Id",
      "name": "tvshowid",
      "required": false
    },
    {
      "default": "-1",
      "type": "integer",
      "name": "season",
      "required": false
    },
    {
      "$ref": "Video.Fields.Episode",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "description": "Requires tvshowid to be set",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "description": "Requires tvshowid to be set",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "year": {
              "minimum": 0,
              "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "actor": {
              "description": "Requires tvshowid to be set",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "director": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.Episodes"
        }
      ],
      "name": "filter",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "episodes": {
        "items": {
          "$ref": "Video.Details.Episode"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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
# [ ''[[#Library.Fields.Genre|Library.Fields.Genre]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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:'''
* ''[[#Library.Details.Genre|Library.Details.Genre]]''[] genres
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve all genres",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "type",
      "required": true
    },
    {
      "$ref": "Library.Fields.Genre",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "genres": {
        "items": {
          "$ref": "Library.Details.Genre"
        },
        "type": "array",
        "required": true
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* [ ''[[#Video.Details.TVShow|Video.Details.TVShow]]''[] tvshows ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all in progress tvshows",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.TVShow",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "tvshows": {
        "items": {
          "$ref": "Video.Details.TVShow"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
# [ ''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific movie",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "movieid",
      "required": true
    },
    {
      "$ref": "Video.Fields.Movie",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "moviedetails": {
        "$ref": "Video.Details.Movie",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''mixed'' filter ]
</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
* [ ''[[#Video.Details.Movie|Video.Details.Movie]]''[] movies ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all movies",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.Movie",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "year": {
              "minimum": 0,
              "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "actor": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "director": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "studio": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "country": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "setid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "set": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "tag": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.Movies"
        }
      ],
      "name": "filter",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "movies": {
        "items": {
          "$ref": "Video.Details.Movie"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
# [ ''[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]'' properties ]
# [ ''mixed'' movies ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific movie set",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "setid",
      "required": true
    },
    {
      "$ref": "Video.Fields.MovieSet",
      "name": "properties",
      "required": false
    },
    {
      "type": "object",
      "name": "movies",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "setdetails": {
        "$ref": "Video.Details.MovieSet.Extended",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* [ ''[[#Video.Details.MovieSet|Video.Details.MovieSet]]''[] sets ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all movie sets",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.MovieSet",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "sets": {
        "items": {
          "$ref": "Video.Details.MovieSet"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
# [ ''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific music video",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "musicvideoid",
      "required": true
    },
    {
      "$ref": "Video.Fields.MusicVideo",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "musicvideodetails": {
        "$ref": "Video.Details.MusicVideo",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''mixed'' filter ]
</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
* [ ''[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]''[] musicvideos ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all music videos",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.MusicVideo",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "year": {
              "minimum": 0,
              "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "director": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "studio": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "tag": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.MusicVideos"
        }
      ],
      "name": "filter",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "musicvideos": {
        "items": {
          "$ref": "Video.Details.MusicVideo"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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]]''[] episodes ]
* ''[[#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 lang="javascript" enclose="div">{
  "description": "Retrieve all recently added tv episodes",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.Episode",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "episodes": {
        "items": {
          "$ref": "Video.Details.Episode"
        },
        "type": "array",
        "required": false
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* [ ''[[#Video.Details.Movie|Video.Details.Movie]]''[] movies ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all recently added movies",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.Movie",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "movies": {
        "items": {
          "$ref": "Video.Details.Movie"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* [ ''[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]''[] musicvideos ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all recently added music videos",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.MusicVideo",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "musicvideos": {
        "items": {
          "$ref": "Video.Details.MusicVideo"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
# [ ''[[#Video.Fields.Season|Video.Fields.Season]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific tv show season",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "seasonid",
      "required": true
    },
    {
      "$ref": "Video.Fields.Season",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "seasondetails": {
        "$ref": "Video.Details.Season",
        "required": false
      }
    }
  }
}</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" ]
# [ ''[[#Video.Fields.Season|Video.Fields.Season]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* [ ''[[#Video.Details.Season|Video.Details.Season]]''[] seasons ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all tv seasons",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "default": "-1",
      "$ref": "Library.Id",
      "name": "tvshowid",
      "required": false
    },
    {
      "$ref": "Video.Fields.Season",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "seasons": {
        "items": {
          "$ref": "Video.Details.Season"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
# [ ''[[#Library.Fields.Tag|Library.Fields.Tag]]'' properties ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
</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
* ''[[#Library.Details.Tag|Library.Details.Tag]]''[] tags
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all tags",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "type": "string",
      "name": "type",
      "required": true
    },
    {
      "$ref": "Library.Fields.Tag",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "tags": {
        "items": {
          "$ref": "Library.Details.Tag"
        },
        "type": "array",
        "required": true
      }
    }
  }
}</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
# [ ''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties ]
</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 ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve details about a specific tv show",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "tvshowid",
      "required": true
    },
    {
      "$ref": "Video.Fields.TVShow",
      "name": "properties",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "tvshowdetails": {
        "$ref": "Video.Details.TVShow",
        "required": false
      }
    }
  }
}</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 ]
# [ ''[[#List.Limits|List.Limits]]'' limits ]
# [ ''[[#List.Sort|List.Sort]]'' sort ]
# [ ''mixed'' filter ]
</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
* [ ''[[#Video.Details.TVShow|Video.Details.TVShow]]''[] tvshows ]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="javascript" enclose="div">{
  "description": "Retrieve all tv shows",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "$ref": "Video.Fields.TVShow",
      "name": "properties",
      "required": false
    },
    {
      "$ref": "List.Limits",
      "name": "limits",
      "required": false
    },
    {
      "$ref": "List.Sort",
      "name": "sort",
      "required": false
    },
    {
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "year": {
              "minimum": 0,
              "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "actor": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "studio": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "tag": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.TVShows"
        }
      ],
      "name": "filter",
      "required": false
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "tvshows": {
        "items": {
          "$ref": "Video.Details.TVShow"
        },
        "type": "array",
        "required": false
      }
    }
  }
}</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
# [ ''boolean'' ignorenfo = false ]
# [ ''string'' title ]
</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 lang="javascript" enclose="div">{
  "description": "Refresh the given episode in the library",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "episodeid",
      "required": true
    },
    {
      "default": "false",
      "description": "Whether or not to ignore a local NFO if present.",
      "type": "boolean",
      "name": "ignorenfo",
      "required": false
    },
    {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
      "type": "string",
      "name": "title",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''boolean'' ignorenfo = false ]
# [ ''string'' title ]
</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 lang="javascript" enclose="div">{
  "description": "Refresh the given movie in the library",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "movieid",
      "required": true
    },
    {
      "default": "false",
      "description": "Whether or not to ignore a local NFO if present.",
      "type": "boolean",
      "name": "ignorenfo",
      "required": false
    },
    {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
      "type": "string",
      "name": "title",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''boolean'' ignorenfo = false ]
# [ ''string'' title ]
</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 lang="javascript" enclose="div">{
  "description": "Refresh the given music video in the library",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "musicvideoid",
      "required": true
    },
    {
      "default": "false",
      "description": "Whether or not to ignore a local NFO if present.",
      "type": "boolean",
      "name": "ignorenfo",
      "required": false
    },
    {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
      "type": "string",
      "name": "title",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''boolean'' ignorenfo = false ]
# [ ''boolean'' refreshepisodes = false ]
# [ ''string'' title ]
</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 lang="javascript" enclose="div">{
  "description": "Refresh the given tv show in the library",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "tvshowid",
      "required": true
    },
    {
      "default": "false",
      "description": "Whether or not to ignore a local NFO if present.",
      "type": "boolean",
      "name": "ignorenfo",
      "required": false
    },
    {
      "default": "false",
      "description": "Whether or not to refresh all episodes belonging to the TV show.",
      "type": "boolean",
      "name": "refreshepisodes",
      "required": false
    },
    {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
      "type": "string",
      "name": "title",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Removes the given episode from the library",
  "permission": "RemoveData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "episodeid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Removes the given movie from the library",
  "permission": "RemoveData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "movieid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Removes the given music video from the library",
  "permission": "RemoveData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "musicvideoid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
</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 lang="javascript" enclose="div">{
  "description": "Removes the given tv show from the library",
  "permission": "RemoveData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "tvshowid",
      "required": true
    }
  ],
  "returns": {
    "type": "string"
  }
}</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 ]
# [ ''boolean'' showdialogs = true ]
</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 lang="javascript" enclose="div">{
  "description": "Scans the video sources for new library items",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "default": "",
      "type": "string",
      "name": "directory",
      "required": false
    },
    {
      "default": "true",
      "description": "Whether or not to show the progress bar or any other GUI dialog",
      "type": "boolean",
      "name": "showdialogs",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' title ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' playcount ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' runtime ]
# [ ''mixed'' director ]
# [ ''[[#Optional.String|Optional.String]]'' plot ]
# [ ''[[#Optional.Number|Optional.Number]]'' rating ]
# [ ''[[#Optional.String|Optional.String]]'' votes ]
# [ ''[[#Optional.String|Optional.String]]'' lastplayed ]
# [ ''mixed'' writer ]
# [ ''[[#Optional.String|Optional.String]]'' firstaired ]
# [ ''[[#Optional.String|Optional.String]]'' productioncode ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' season ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' episode ]
# [ ''[[#Optional.String|Optional.String]]'' originaltitle ]
# [ ''[[#Optional.String|Optional.String]]'' thumbnail ]
# [ ''[[#Optional.String|Optional.String]]'' fanart ]
# [ ''mixed'' art ]
# [ ''mixed'' resume ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' userrating ]
# [ ''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings ]
# [ ''[[#Optional.String|Optional.String]]'' dateadded ]
# [ ''mixed'' uniqueid ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given episode with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "episodeid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "title",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "playcount",
      "required": false
    },
    {
      "description": "Runtime in seconds",
      "$ref": "Optional.Integer",
      "name": "runtime",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "director",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "plot",
      "required": false
    },
    {
      "$ref": "Optional.Number",
      "name": "rating",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "votes",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "lastplayed",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "writer",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "firstaired",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "productioncode",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "season",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "episode",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "originaltitle",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "thumbnail",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "fanart",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.Artwork.Set"
        }
      ],
      "name": "art",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Video.Resume"
        }
      ],
      "name": "resume",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "userrating",
      "required": false
    },
    {
      "$ref": "Video.Ratings.Set",
      "name": "ratings",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "dateadded",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.UniqueID.Set"
        }
      ],
      "name": "uniqueid",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' title ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' playcount ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' runtime ]
# [ ''mixed'' director ]
# [ ''mixed'' studio ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' year ]
# [ ''[[#Optional.String|Optional.String]]'' plot ]
# [ ''mixed'' genre ]
# [ ''[[#Optional.Number|Optional.Number]]'' rating ]
# [ ''[[#Optional.String|Optional.String]]'' mpaa ]
# [ ''[[#Optional.String|Optional.String]]'' imdbnumber ]
# [ ''[[#Optional.String|Optional.String]]'' votes ]
# [ ''[[#Optional.String|Optional.String]]'' lastplayed ]
# [ ''[[#Optional.String|Optional.String]]'' originaltitle ]
# [ ''[[#Optional.String|Optional.String]]'' trailer ]
# [ ''[[#Optional.String|Optional.String]]'' tagline ]
# [ ''[[#Optional.String|Optional.String]]'' plotoutline ]
# [ ''mixed'' writer ]
# [ ''mixed'' country ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' top250 ]
# [ ''[[#Optional.String|Optional.String]]'' sorttitle ]
# [ ''[[#Optional.String|Optional.String]]'' set ]
# [ ''mixed'' showlink ]
# [ ''[[#Optional.String|Optional.String]]'' thumbnail ]
# [ ''[[#Optional.String|Optional.String]]'' fanart ]
# [ ''mixed'' tag ]
# [ ''mixed'' art ]
# [ ''mixed'' resume ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' userrating ]
# [ ''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings ]
# [ ''[[#Optional.String|Optional.String]]'' dateadded ]
# [ ''[[#Optional.String|Optional.String]]'' premiered ]
# [ ''mixed'' uniqueid ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given movie with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "movieid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "title",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "playcount",
      "required": false
    },
    {
      "description": "Runtime in seconds",
      "$ref": "Optional.Integer",
      "name": "runtime",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "director",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "studio",
      "required": false
    },
    {
      "description": "linked with premiered. Overridden by premiered parameter",
      "$ref": "Optional.Integer",
      "name": "year",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "plot",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "genre",
      "required": false
    },
    {
      "$ref": "Optional.Number",
      "name": "rating",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "mpaa",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "imdbnumber",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "votes",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "lastplayed",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "originaltitle",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "trailer",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "tagline",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "plotoutline",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "writer",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "country",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "top250",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "sorttitle",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "set",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "showlink",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "thumbnail",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "fanart",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "tag",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.Artwork.Set"
        }
      ],
      "name": "art",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Video.Resume"
        }
      ],
      "name": "resume",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "userrating",
      "required": false
    },
    {
      "$ref": "Video.Ratings.Set",
      "name": "ratings",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "dateadded",
      "required": false
    },
    {
      "description": "linked with year. Overriedes year",
      "$ref": "Optional.String",
      "name": "premiered",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.UniqueID.Set"
        }
      ],
      "name": "uniqueid",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' title ]
# [ ''mixed'' art ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given movie set with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "setid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "title",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.Artwork.Set"
        }
      ],
      "name": "art",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' title ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' playcount ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' runtime ]
# [ ''mixed'' director ]
# [ ''mixed'' studio ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' year ]
# [ ''[[#Optional.String|Optional.String]]'' plot ]
# [ ''[[#Optional.String|Optional.String]]'' album ]
# [ ''mixed'' artist ]
# [ ''mixed'' genre ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' track ]
# [ ''[[#Optional.String|Optional.String]]'' lastplayed ]
# [ ''[[#Optional.String|Optional.String]]'' thumbnail ]
# [ ''[[#Optional.String|Optional.String]]'' fanart ]
# [ ''mixed'' tag ]
# [ ''mixed'' art ]
# [ ''mixed'' resume ]
# [ ''[[#Optional.Number|Optional.Number]]'' rating ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' userrating ]
# [ ''[[#Optional.String|Optional.String]]'' dateadded ]
# [ ''[[#Optional.String|Optional.String]]'' premiered ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given music video with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "musicvideoid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "title",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "playcount",
      "required": false
    },
    {
      "description": "Runtime in seconds",
      "$ref": "Optional.Integer",
      "name": "runtime",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "director",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "studio",
      "required": false
    },
    {
      "description": "linked with premiered. Overridden by premiered parameter",
      "$ref": "Optional.Integer",
      "name": "year",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "plot",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "album",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "artist",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "genre",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "track",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "lastplayed",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "thumbnail",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "fanart",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "tag",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.Artwork.Set"
        }
      ],
      "name": "art",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Video.Resume"
        }
      ],
      "name": "resume",
      "required": false
    },
    {
      "$ref": "Optional.Number",
      "name": "rating",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "userrating",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "dateadded",
      "required": false
    },
    {
      "description": "linked with year. Overriedes year",
      "$ref": "Optional.String",
      "name": "premiered",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''mixed'' art ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' userrating ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given season with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "seasonid",
      "required": true
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.Artwork.Set"
        }
      ],
      "name": "art",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "userrating",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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
# [ ''[[#Optional.String|Optional.String]]'' title ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' playcount ]
# [ ''mixed'' studio ]
# [ ''[[#Optional.String|Optional.String]]'' plot ]
# [ ''mixed'' genre ]
# [ ''[[#Optional.Number|Optional.Number]]'' rating ]
# [ ''[[#Optional.String|Optional.String]]'' mpaa ]
# [ ''[[#Optional.String|Optional.String]]'' imdbnumber ]
# [ ''[[#Optional.String|Optional.String]]'' premiered ]
# [ ''[[#Optional.String|Optional.String]]'' votes ]
# [ ''[[#Optional.String|Optional.String]]'' lastplayed ]
# [ ''[[#Optional.String|Optional.String]]'' originaltitle ]
# [ ''[[#Optional.String|Optional.String]]'' sorttitle ]
# [ ''[[#Optional.String|Optional.String]]'' episodeguide ]
# [ ''[[#Optional.String|Optional.String]]'' thumbnail ]
# [ ''[[#Optional.String|Optional.String]]'' fanart ]
# [ ''mixed'' tag ]
# [ ''mixed'' art ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' userrating ]
# [ ''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings ]
# [ ''[[#Optional.String|Optional.String]]'' dateadded ]
# [ ''[[#Optional.Integer|Optional.Integer]]'' runtime ]
# [ ''[[#Optional.String|Optional.String]]'' status ]
# [ ''mixed'' uniqueid ]
</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 lang="javascript" enclose="div">{
  "description": "Update the given tvshow with the given details",
  "permission": "UpdateData",
  "type": "method",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "tvshowid",
      "required": true
    },
    {
      "$ref": "Optional.String",
      "name": "title",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "playcount",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "studio",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "plot",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "genre",
      "required": false
    },
    {
      "$ref": "Optional.Number",
      "name": "rating",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "mpaa",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "imdbnumber",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "premiered",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "votes",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "lastplayed",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "originaltitle",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "sorttitle",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "episodeguide",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "thumbnail",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "fanart",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Array.String"
        }
      ],
      "name": "tag",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.Artwork.Set"
        }
      ],
      "name": "art",
      "required": false
    },
    {
      "$ref": "Optional.Integer",
      "name": "userrating",
      "required": false
    },
    {
      "$ref": "Video.Ratings.Set",
      "name": "ratings",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "dateadded",
      "required": false
    },
    {
      "description": "Runtime in seconds",
      "$ref": "Optional.Integer",
      "name": "runtime",
      "required": false
    },
    {
      "$ref": "Optional.String",
      "name": "status",
      "required": false
    },
    {
      "type": [
        {
          "type": "null"
        },
        {
          "$ref": "Media.UniqueID.Set"
        }
      ],
      "name": "uniqueid",
      "required": false
    }
  ],
  "returns": {
    "type": "string"
  }
}</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">
# ''[[#|]]''[] booleans
</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 lang="javascript" enclose="div">{
  "description": "Retrieve info booleans about Kodi and the system",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "items": {},
      "type": "array",
      "name": "booleans",
      "required": true
    }
  ],
  "returns": {
    "type": "object",
    "description": "Object containing key-value pairs of the retrieved info booleans",
    "additionalProperties": {
      "default": "",
      "type": "string"
    }
  }
}</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">
# ''[[#|]]''[] labels
</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 lang="javascript" enclose="div">{
  "description": "Retrieve info labels about Kodi and the system",
  "permission": "ReadData",
  "type": "method",
  "params": [
    {
      "description": "See http://kodi.wiki/view/InfoLabels for a list of possible info labels",
      "items": {},
      "type": "array",
      "name": "labels",
      "required": true
    }
  ],
  "returns": {
    "type": "object",
    "description": "Object containing key-value pairs of the retrieved info labels",
    "additionalProperties": {
      "default": "",
      "type": "string"
     }
     }
   }
   }
}</syntaxhighlight>}}
}</syntaxhighlight>}}

Revision as of 03:11, 19 February 2017

Methods

Addons

Addons.ExecuteAddon

Executes the given addon with the given parameters (if possible)
Permissions:

  • ExecuteAddon

Parameters:

  1. string addonid
  2. [ mixed params ]
  3. [ boolean wait = false ]

Returns:

Type: string

Addons.GetAddonDetails

Gets the details of a specific addon
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Addons.GetAddons

Gets all available addons
Permissions:

  • ReadData

Parameters:

  1. [ Addon.Types type = "unknown" ]
  2. [ Addon.Content content = "unknown" ]
  3. [ mixed enabled = "all" ]
  4. [ Addon.Fields properties ]
  5. [ List.Limits limits ]
  6. [ mixed installed = true ]

Returns:

Type: object
Properties:

Addons.SetAddonEnabled

Enables/Disables a specific addon
Permissions:

  • ManageAddon

Parameters:

  1. string addonid
  2. Global.Toggle enabled

Returns:

Type: string

Application

Application.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. Application.Property.Name[] properties

Returns:

Type: '

Application.Quit

Quit application
Permissions:

  • ControlPower

Parameters:

Returns:

Type: string

Application.SetMute

Toggle mute/unmute
Permissions:

  • ControlPlayback

Parameters:

  1. Global.Toggle mute

Returns:

Type: boolean

Application.SetVolume

Set the current volume
Permissions:

  • ControlPlayback

Parameters:

  1. mixed volume

Returns:

Type: integer

AudioLibrary

AudioLibrary.Clean

Cleans the audio library from non-existent items
Permissions:

  • RemoveData

Parameters:

  1. [ boolean showdialogs = true ]

Returns:

Type: string

AudioLibrary.Export

Exports all items from the audio library
Permissions:

  • WriteFile

Parameters:

  1. [ mixed options ]

Returns:

Type: string

AudioLibrary.GetAlbumDetails

Retrieve details about a specific album
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetAlbums

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

  • ReadData

Parameters:

  1. [ Audio.Fields.Album properties ]
  2. [ List.Limits limits ]
  3. [ List.Sort sort ]
  4. [ mixed filter ]
  5. [ boolean includesingles = false ]
  6. [ boolean allroles = false ]

Returns:

Type: object
Properties:

AudioLibrary.GetArtistDetails

Retrieve details about a specific artist
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetArtists

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

  • ReadData

Parameters:

  1. [ Optional.Boolean albumartistsonly ]
  2. [ Audio.Fields.Artist properties ]
  3. [ List.Limits limits ]
  4. [ List.Sort sort ]
  5. [ mixed filter ]
  6. [ boolean allroles = false ]

Returns:

Type: object
Properties:

AudioLibrary.GetGenres

Retrieve all genres
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetProperties

Retrieves the values of the music library properties
Permissions:

  • ReadData

Parameters:

  1. Audio.Property.Name[] properties

Returns:

Type: '

AudioLibrary.GetRecentlyAddedAlbums

Retrieve recently added albums
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetRecentlyAddedSongs

Retrieve recently added songs
Permissions:

  • ReadData

Parameters:

  1. [ List.Amount albumlimit = "-1" ]
  2. [ Audio.Fields.Song properties ]
  3. [ List.Limits limits ]
  4. [ List.Sort sort ]

Returns:

Type: object
Properties:

AudioLibrary.GetRecentlyPlayedAlbums

Retrieve recently played albums
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetRecentlyPlayedSongs

Retrieve recently played songs
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetRoles

Retrieve all contributor roles
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetSongDetails

Retrieve details about a specific song
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

AudioLibrary.GetSongs

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

  • ReadData

Parameters:

  1. [ Audio.Fields.Song properties ]
  2. [ List.Limits limits ]
  3. [ List.Sort sort ]
  4. [ mixed filter ]
  5. [ boolean includesingles = true ]
  6. [ boolean allroles = false ]

Returns:

Type: object
Properties:

AudioLibrary.Scan

Scans the audio sources for new library items
Permissions:

  • UpdateData

Parameters:

  1. [ string directory ]
  2. [ boolean showdialogs = true ]

Returns:

Type: string

AudioLibrary.SetAlbumDetails

Update the given album with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id albumid
  2. [ Optional.String title ]
  3. [ mixed artist ]
  4. [ Optional.String description ]
  5. [ mixed genre ]
  6. [ mixed theme ]
  7. [ mixed mood ]
  8. [ mixed style ]
  9. [ Optional.String type ]
  10. [ Optional.String albumlabel ]
  11. [ Optional.Number rating ]
  12. [ Optional.Integer year ]
  13. [ Optional.Integer userrating ]
  14. [ Optional.Integer votes ]

Returns:

Type: string

AudioLibrary.SetArtistDetails

Update the given artist with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id artistid
  2. [ Optional.String artist ]
  3. [ mixed instrument ]
  4. [ mixed style ]
  5. [ mixed mood ]
  6. [ Optional.String born ]
  7. [ Optional.String formed ]
  8. [ Optional.String description ]
  9. [ mixed genre ]
  10. [ Optional.String died ]
  11. [ Optional.String disbanded ]
  12. [ mixed yearsactive ]

Returns:

Type: string

AudioLibrary.SetSongDetails

Update the given song with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id songid
  2. [ Optional.String title ]
  3. [ mixed artist ]
  4. [ mixed albumartist ]
  5. [ mixed genre ]
  6. [ Optional.Integer year ]
  7. [ Optional.Number rating ]
  8. [ Optional.String album ]
  9. [ Optional.Integer track ]
  10. [ Optional.Integer disc ]
  11. [ Optional.Integer duration ]
  12. [ Optional.String comment ]
  13. [ Optional.String musicbrainztrackid ]
  14. [ Optional.String musicbrainzartistid ]
  15. [ Optional.String musicbrainzalbumid ]
  16. [ Optional.String musicbrainzalbumartistid ]
  17. [ Optional.Integer playcount ]
  18. [ Optional.String lastplayed ]
  19. [ Optional.Integer userrating ]
  20. [ Optional.Integer votes ]

Returns:

Type: string

Favourites

Favourites.AddFavourite

Add a favourite with the given details
Permissions:

  • UpdateData

Parameters:

  1. string title
  2. Favourite.Type type
  3. [ Optional.String path ]
  4. [ Optional.String window ]
  5. [ Optional.String windowparameter ]
  6. [ Optional.String thumbnail ]

Returns:

Type: string

Favourites.GetFavourites

Retrieve all favourites
Permissions:

  • ReadData

Parameters:

  1. [ mixed type ]
  2. [ Favourite.Fields.Favourite properties ]

Returns:

Type: object
Properties:

Files

Files.GetDirectory

Get the directories and files in the given directory
Permissions:

  • ReadData

Parameters:

  1. string directory
  2. [ Files.Media media = "files" ]
  3. [ List.Fields.Files properties ]
  4. [ List.Sort sort ]
  5. [ List.Limits limits ]

Returns:

Type: object
Properties:

Files.GetFileDetails

Get details for a specific file
Permissions:

  • ReadData

Parameters:

  1. string file
  2. [ Files.Media media = "files" ]
  3. [ List.Fields.Files properties ]

Returns:

Type: object
Properties:

Files.GetSources

Get the sources of the media windows
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Files.PrepareDownload

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

  • ReadData

Parameters:

  1. string path

Returns:

Type: object
Properties:

  • mixed details
  • string mode
  • string protocol

Files.SetFileDetails

Update the given specific file with the given details
Permissions:

  • UpdateData

Parameters:

  1. string file
  2. Files.Media media
  3. [ Optional.Integer playcount ]
  4. [ Optional.String lastplayed ]
  5. [ mixed resume ]

Returns:

Type: string

GUI

GUI.ActivateWindow

Activates the given window
Permissions:

  • ControlGUI

Parameters:

  1. GUI.Window window
  2. [ [[#|]][] parameters ]

Returns:

Type: string

GUI.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. GUI.Property.Name[] properties

Returns:

Type: '

GUI.GetStereoscopicModes

Returns the supported stereoscopic modes of the GUI
Permissions:

  • ReadData

Parameters:

Returns:

Type: object
Properties:

GUI.SetFullscreen

Toggle fullscreen/GUI
Permissions:

  • ControlGUI

Parameters:

  1. Global.Toggle fullscreen

Returns:

Type: boolean

GUI.SetStereoscopicMode

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

  • ControlGUI

Parameters:

  1. string mode

Returns:

Type: string

GUI.ShowNotification

Shows a GUI notification
Permissions:

  • ControlGUI

Parameters:

  1. string title
  2. string message
  3. [ mixed image ]
  4. [ integer displaytime = "5000" ]

Returns:

Type: string

Input

Input.Back

Goes back in GUI
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.ContextMenu

Shows the context menu
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.Down

Navigate down in GUI
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.ExecuteAction

Execute a specific action
Permissions:

  • Navigate

Parameters:

  1. Input.Action action

Returns:

Type: string

Input.Home

Goes to home window in GUI
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.Info

Shows the information dialog
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.Left

Navigate left in GUI
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.Right

Navigate right in GUI
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.Select

Select current item in GUI
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.SendText

Send a generic (unicode) text
Permissions:

  • Navigate

Parameters:

  1. string text
  2. [ boolean done = true ]

Returns:

Type: string

Input.ShowCodec

Show codec information of the playing item
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

Input.ShowOSD

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

  • Navigate

Parameters:

Returns:

Type: string

Input.ShowPlayerProcessInfo

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

  • Navigate

Parameters:

Returns:

Type: string

Input.Up

Navigate up in GUI
Permissions:

  • Navigate

Parameters:

Returns:

Type: string

JSONRPC

JSONRPC.Introspect

Enumerates all actions and descriptions
Permissions:

  • ReadData

Parameters:

  1. [ boolean getdescriptions = true ]
  2. [ boolean getmetadata = false ]
  3. [ boolean filterbytransport = true ]
  4. [ mixed filter ]

Returns:

Type: object

JSONRPC.NotifyAll

Notify all other connected clients
Permissions:

  • ReadData

Parameters:

  1. string sender
  2. string message
  3. [ mixed data ]

Returns:

Type: any

JSONRPC.Permission

Retrieve the clients permissions
Permissions:

  • ReadData

Parameters:

Returns:

Type: object
Properties:

  • boolean controlgui
  • boolean controlnotify
  • boolean controlplayback
  • boolean controlpower
  • boolean controlpvr
  • boolean controlsystem
  • boolean executeaddon
  • boolean manageaddon
  • boolean navigate
  • boolean readdata
  • boolean removedata
  • boolean updatedata
  • boolean writefile

JSONRPC.Ping

Ping responder
Permissions:

  • ReadData

Parameters:

Returns:

Type: string

JSONRPC.Version

Retrieve the JSON-RPC protocol version.
Permissions:

  • ReadData

Parameters:

Returns:

Type: object
Properties:

  • mixed version

Player

Player.GetActivePlayers

Returns all active players
Permissions:

  • ReadData

Parameters:

Returns:

Type: array

Player.GetItem

Retrieves the currently played item
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Player.GetPlayers

Get a list of available players
Permissions:

  • ReadData

Parameters:

  1. [ string media = "all" ]

Returns:

Type: array

Player.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. Player.Id playerid
  2. Player.Property.Name[] properties

Returns:

Type: '

Player.GoTo

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

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed to

Returns:

Type: string

Player.Move

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

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. string direction

Returns:

Type: string

Player.Open

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

  • ControlPlayback

Parameters:

  1. [ mixed item ]
  2. [ mixed options ]

Returns:

Type: string

Player.PlayPause

Pauses or unpause playback and returns the new state
Permissions:

  • ControlPlayback

Parameters:

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

Returns:

Type: '

Player.Rotate

Rotates current picture
Permissions:

  • ControlPlayback

Parameters:

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

Returns:

Type: string

Player.Seek

Seek through the playing item
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed value

Returns:

Type: object
Properties:

Player.SetAudioStream

Set the audio stream played by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed stream

Returns:

Type: string

Player.SetPartymode

Turn partymode on or off
Permissions:

  • ControlPlayback

Parameters:

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

Returns:

Type: string

Player.SetRepeat

Set the repeat mode of the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed repeat

Returns:

Type: string

Player.SetShuffle

Shuffle/Unshuffle items in the player
Permissions:

  • ControlPlayback

Parameters:

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

Returns:

Type: string

Player.SetSpeed

Set the speed of the current playback
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed speed

Returns:

Type: '

Player.SetSubtitle

Set the subtitle displayed by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed subtitle
  3. [ boolean enable = false ]

Returns:

Type: string

Player.SetVideoStream

Set the video stream played by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed stream

Returns:

Type: string

Player.Stop

Stops playback
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid

Returns:

Type: string

Player.Zoom

Zoom current picture
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed zoom

Returns:

Type: string

Playlist

Playlist.Add

Add item(s) to playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. mixed item

Returns:

Type: string

Playlist.Clear

Clear playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid

Returns:

Type: string

Playlist.GetItems

Get all items from playlist
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Playlist.GetPlaylists

Returns all existing playlists
Permissions:

  • ReadData

Parameters:

Returns:

Type: array

Playlist.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Property.Name[] properties

Returns:

Type: '

Playlist.Insert

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

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Position position
  3. mixed item

Returns:

Type: string

Playlist.Remove

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

  • ControlPlayback

Parameters:

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

Returns:

Type: string

Playlist.Swap

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

  • ControlPlayback

Parameters:

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

Returns:

Type: string

Profiles

Profiles.GetCurrentProfile

Retrieve the current profile
Permissions:

  • ReadData

Parameters:

  1. [ Profiles.Fields.Profile properties ]

Returns:

Type: '

Profiles.GetProfiles

Retrieve all profiles
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Profiles.LoadProfile

Load the specified profile
Permissions:

  • Navigate

Parameters:

  1. string profile
  2. [ boolean prompt = false ]
  3. [ Profiles.Password password ]

Returns:

Type: string

PVR

PVR.AddTimer

Adds a timer to record the given show one times or a timer rule to record all showings of the given show
Permissions:

  • ControlPVR

Parameters:

  1. Library.Id broadcastid
  2. [ boolean timerrule = false ]

Returns:

Type: string

PVR.DeleteTimer

Deletes a onetime timer or a timer rule
Permissions:

  • ControlPVR

Parameters:

  1. Library.Id timerid

Returns:

Type: string

PVR.GetBroadcastDetails

Retrieves the details of a specific broadcast
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetBroadcasts

Retrieves the program of a specific channel
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetChannelDetails

Retrieves the details of a specific channel
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetChannelGroupDetails

Retrieves the details of a specific channel group
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetChannelGroups

Retrieves the channel groups for the specified type
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetChannels

Retrieves the channel list
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. PVR.Property.Name[] properties

Returns:

Type: '

PVR.GetRecordingDetails

Retrieves the details of a specific recording
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetRecordings

Retrieves the recordings
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetTimerDetails

Retrieves the details of a specific timer
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.GetTimers

Retrieves the timers
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

PVR.Record

Toggle recording of a channel
Permissions:

  • ControlPVR

Parameters:

  1. [ Global.Toggle record = "toggle" ]
  2. [ mixed channel = "current" ]

Returns:

Type: string

PVR.Scan

Starts a channel scan
Permissions:

  • ControlPVR

Parameters:

Returns:

Type: string

PVR.ToggleTimer

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

  • ControlPVR

Parameters:

  1. Library.Id broadcastid
  2. [ boolean timerrule = false ]

Returns:

Type: string

Settings

Settings.GetCategories

Retrieves all setting categories
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Settings.GetSections

Retrieves all setting sections
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Settings.GetSettings

Retrieves all settings
Permissions:

  • ReadData

Parameters:

  1. [ Setting.Level level = "standard" ]
  2. [ mixed filter ]

Returns:

Type: object
Properties:

Settings.GetSettingValue

Retrieves the value of a setting
Permissions:

  • ReadData

Parameters:

  1. string setting

Returns:

Type: object
Properties:

Settings.ResetSettingValue

Resets the value of a setting
Permissions:

  • ReadData

Parameters:

  1. string setting

Returns:

Type: string

Settings.SetSettingValue

Changes the value of a setting
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: boolean

System

System.EjectOpticalDrive

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

  • ControlSystem

Parameters:

Returns:

Type: string

System.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. System.Property.Name[] properties

Returns:

Type: '

System.Hibernate

Puts the system running Kodi into hibernate mode
Permissions:

  • ControlPower

Parameters:

Returns:

Type: string

System.Reboot

Reboots the system running Kodi
Permissions:

  • ControlPower

Parameters:

Returns:

Type: string

System.Shutdown

Shuts the system running Kodi down
Permissions:

  • ControlPower

Parameters:

Returns:

Type: string

System.Suspend

Suspends the system running Kodi
Permissions:

  • ControlPower

Parameters:

Returns:

Type: string

Textures

Textures.GetTextures

Retrieve all textures
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

Textures.RemoveTexture

Remove the specified texture
Permissions:

  • RemoveData

Parameters:

  1. Library.Id textureid

Returns:

Type: string

VideoLibrary

VideoLibrary.Clean

Cleans the video library from non-existent items
Permissions:

  • RemoveData

Parameters:

  1. [ boolean showdialogs = true ]

Returns:

Type: string

VideoLibrary.Export

Exports all items from the video library
Permissions:

  • WriteFile

Parameters:

  1. [ mixed options ]

Returns:

Type: string

VideoLibrary.GetEpisodeDetails

Retrieve details about a specific tv show episode
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetEpisodes

Retrieve all tv show episodes
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetGenres

Retrieve all genres
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetInProgressTVShows

Retrieve all in progress tvshows
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetMovieDetails

Retrieve details about a specific movie
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetMovies

Retrieve all movies
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetMovieSetDetails

Retrieve details about a specific movie set
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetMovieSets

Retrieve all movie sets
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetMusicVideoDetails

Retrieve details about a specific music video
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetMusicVideos

Retrieve all music videos
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetRecentlyAddedEpisodes

Retrieve all recently added tv episodes
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetRecentlyAddedMovies

Retrieve all recently added movies
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetRecentlyAddedMusicVideos

Retrieve all recently added music videos
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetSeasonDetails

Retrieve details about a specific tv show season
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetSeasons

Retrieve all tv seasons
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetTags

Retrieve all tags
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetTVShowDetails

Retrieve details about a specific tv show
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.GetTVShows

Retrieve all tv shows
Permissions:

  • ReadData

Parameters:

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

Returns:

Type: object
Properties:

VideoLibrary.RefreshEpisode

Refresh the given episode in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id episodeid
  2. [ boolean ignorenfo = false ]
  3. [ string title ]

Returns:

Type: string

VideoLibrary.RefreshMovie

Refresh the given movie in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id movieid
  2. [ boolean ignorenfo = false ]
  3. [ string title ]

Returns:

Type: string

VideoLibrary.RefreshMusicVideo

Refresh the given music video in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id musicvideoid
  2. [ boolean ignorenfo = false ]
  3. [ string title ]

Returns:

Type: string

VideoLibrary.RefreshTVShow

Refresh the given tv show in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id tvshowid
  2. [ boolean ignorenfo = false ]
  3. [ boolean refreshepisodes = false ]
  4. [ string title ]

Returns:

Type: string

VideoLibrary.RemoveEpisode

Removes the given episode from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id episodeid

Returns:

Type: string

VideoLibrary.RemoveMovie

Removes the given movie from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id movieid

Returns:

Type: string

VideoLibrary.RemoveMusicVideo

Removes the given music video from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id musicvideoid

Returns:

Type: string

VideoLibrary.RemoveTVShow

Removes the given tv show from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id tvshowid

Returns:

Type: string

VideoLibrary.Scan

Scans the video sources for new library items
Permissions:

  • UpdateData

Parameters:

  1. [ string directory ]
  2. [ boolean showdialogs = true ]

Returns:

Type: string

VideoLibrary.SetEpisodeDetails

Update the given episode with the given details
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

VideoLibrary.SetMovieDetails

Update the given movie with the given details
Permissions:

  • UpdateData

Parameters:

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

Returns:

Type: string

VideoLibrary.SetMovieSetDetails

Update the given movie set with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id setid
  2. [ Optional.String title ]
  3. [ mixed art ]

Returns:

Type: string

VideoLibrary.SetMusicVideoDetails

Update the given music video with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id musicvideoid
  2. [ Optional.String title ]
  3. [ Optional.Integer playcount ]
  4. [ Optional.Integer runtime ]
  5. [ mixed director ]
  6. [ mixed studio ]
  7. [ Optional.Integer year ]
  8. [ Optional.String plot ]
  9. [ Optional.String album ]
  10. [ mixed artist ]
  11. [ mixed genre ]
  12. [ Optional.Integer track ]
  13. [ Optional.String lastplayed ]
  14. [ Optional.String thumbnail ]
  15. [ Optional.String fanart ]
  16. [ mixed tag ]
  17. [ mixed art ]
  18. [ mixed resume ]
  19. [ Optional.Number rating ]
  20. [ Optional.Integer userrating ]
  21. [ Optional.String dateadded ]
  22. [ Optional.String premiered ]

Returns:

Type: string

VideoLibrary.SetSeasonDetails

Update the given season with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id seasonid
  2. [ mixed art ]
  3. [ Optional.Integer userrating ]

Returns:

Type: string

VideoLibrary.SetTVShowDetails

Update the given tvshow with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id tvshowid
  2. [ Optional.String title ]
  3. [ Optional.Integer playcount ]
  4. [ mixed studio ]
  5. [ Optional.String plot ]
  6. [ mixed genre ]
  7. [ Optional.Number rating ]
  8. [ Optional.String mpaa ]
  9. [ Optional.String imdbnumber ]
  10. [ Optional.String premiered ]
  11. [ Optional.String votes ]
  12. [ Optional.String lastplayed ]
  13. [ Optional.String originaltitle ]
  14. [ Optional.String sorttitle ]
  15. [ Optional.String episodeguide ]
  16. [ Optional.String thumbnail ]
  17. [ Optional.String fanart ]
  18. [ mixed tag ]
  19. [ mixed art ]
  20. [ Optional.Integer userrating ]
  21. [ Video.Ratings.Set ratings ]
  22. [ Optional.String dateadded ]
  23. [ Optional.Integer runtime ]
  24. [ Optional.String status ]
  25. [ mixed uniqueid ]

Returns:

Type: string

XBMC

XBMC.GetInfoBooleans

Retrieve info booleans about Kodi and the system
Permissions:

  • ReadData

Parameters:

  1. [[#|]][] booleans

Returns:

Type: object

XBMC.GetInfoLabels

Retrieve info labels about Kodi and the system
Permissions:

  • ReadData

Parameters:

  1. [[#|]][] labels

Returns:

Type: object