<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DaveBlake</id>
	<title>Official Kodi Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DaveBlake"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/DaveBlake"/>
	<updated>2026-06-16T15:46:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=225290</id>
		<title>Advancedsettings.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=225290"/>
		<updated>2021-04-19T06:44:31Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Nothing special about &amp;lt;useartistsort&amp;gt;, it is just like all the other GUI settings that can be hidden by including in advancedsettings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}{{mininav|[[Settings]]|page=advancedsettings.xml}}&lt;br /&gt;
{{bigger|{{note|&#039;&#039;&#039;The advancedsettings.xml file does not exist by default. You have to create it first!&#039;&#039;&#039;}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The [[advancedsettings.xml]] file, which does not exist by default, can be created by a user in their &#039;&#039;&#039;[[Userdata|userdata folder]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This file is used for advanced settings and options that do not have GUI controls inside of {{kodi}}. Some settings are experimental or very rarely set, so they can only be used via the advancedsettings.xml file. The file is simply a plain text file and can be edited by various text editors, so long as the name is &amp;quot;advancedsettings.xml&amp;quot;. These advanced settings can be used to tweak various things such as episode naming patterns, special network ports, special behaviors, and more.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following page will describe the structure of the advancedsettings.xml file and the various individual settings.&lt;br /&gt;
&lt;br /&gt;
{{note|&lt;br /&gt;
# All XML tags must be lowercase. The start and end of the advancedsettings.xml file must have the &amp;lt;advancedsettings&amp;gt; and &amp;lt;/advancedsettings&amp;gt; tags.&lt;br /&gt;
# Kodi will only read the advancedsettings.xml file when it starts up. If you make changes while it is running then you must restart Kodi.&lt;br /&gt;
# For some Windows versions, Kodi has two &amp;lt;code&amp;gt;\userdata\&amp;lt;/code&amp;gt; folders. The correct one to put the advancedsettings.xml file in is not the one in Program Files, but in &amp;lt;code&amp;gt;%appdata%\Kodi\userdata\.&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
&lt;br /&gt;
The layout of &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;setting&amp;quot; gives the name of the setting, and &amp;quot;value&amp;quot; gives its value.&lt;br /&gt;
&lt;br /&gt;
A list of the available &amp;quot;setting&amp;quot; strings and their values is given below.&lt;br /&gt;
&lt;br /&gt;
= List of available settings =&lt;br /&gt;
List of available settings that are recognised in the advancedsettings.xml file &amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/blob/master/xbmc/settings/AdvancedSettings.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended: Use the table of contents or the search function in your browser to locate items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting settings ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== loglevel ===&lt;br /&gt;
{{Anchor|.3Cloglevel.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
Sets the logging level used to log errors and information. The &amp;quot;hide&amp;quot; attribute is optional. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;loglevel hide=&amp;quot;attribute&amp;quot;&amp;gt;options&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Attribute&lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;true&#039;&#039;&#039; &lt;br /&gt;
| Hides the &amp;quot;enable debugging&amp;quot; setting in the Settings page. (default)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;false&#039;&#039;&#039;&lt;br /&gt;
| Allows &amp;quot;enable debugging&amp;quot; setting to switch between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Option&lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;-1&#039;&#039;&#039;&lt;br /&gt;
| No logging, suppresses all log output &lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
| Normal logging, only logging errors (default)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
| Debug logging with freemem, fps and cpu usage (no on screen)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;2&#039;&#039;&#039; &lt;br /&gt;
| Same as 1 (with on screen display)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;3&#039;&#039;&#039; &lt;br /&gt;
| Same as 2 + full smb logging (no on screen display)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Example &lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
! Example 1:&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt;  &lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Example 2:&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel hide=&amp;quot;true&amp;quot;&amp;gt;2&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The setting is persistent through shutdown and restarts.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If debugging is enabled in the GUI, loglevel will be set to &#039;&#039;&#039;2&#039;&#039;&#039;. This will over-ride the &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; setting. You must disable the GUI Setting before adding the entry to &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
:&#039;&#039;{{see also|Log_file|label 1=Debug Log}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== jsonrpc ===&lt;br /&gt;
{{Anchor|.3Cjsonrpc.3E}}&lt;br /&gt;
To make it easier for developers using the [[JSON-RPC_API]] API in their (third party) applications to debug during development the json output of Kodi can be prettified by setting &#039;&#039;&#039;compactoutput&#039;&#039;&#039; to &#039;&#039;&#039;false&#039;&#039;&#039;. Default json output mode is a compact print which does not contain any unnecessary whitespaces and therefore is difficult to read for humans.&lt;br /&gt;
Furthermore using the &#039;&#039;&#039;tcpport&#039;&#039;&#039; setting it is possible to change the default TCP port used by Kodi for JSON RPC (which is 9090) to any other valid port.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsonrpc&amp;gt;&lt;br /&gt;
    &amp;lt;compactoutput&amp;gt;false&amp;lt;/compactoutput&amp;gt;&lt;br /&gt;
    &amp;lt;tcpport&amp;gt;9999&amp;lt;/tcpport&amp;gt;&lt;br /&gt;
&amp;lt;/jsonrpc&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio/video playback settings ==&lt;br /&gt;
&lt;br /&gt;
=== skiploopfilter ===&lt;br /&gt;
{{anchor|.3Cskiploopfilter.3E}}&lt;br /&gt;
The amount of the loop filter to skip on h.264 decoding.  This can help the performance of slower machines when decoding h264 content.  Values, in decreasing CPU usage (and decreasing quality)&lt;br /&gt;
* -16 None&lt;br /&gt;
* 0 Skip only empty frames (default)&lt;br /&gt;
* 8 Skip non-reference frames&lt;br /&gt;
* 16 Skip bi-dir frames&lt;br /&gt;
* 32 Skip all non-key frames&lt;br /&gt;
* 48 Skip all frames&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;skiploopfilter&amp;gt;8&amp;lt;/skiploopfilter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== video ===&lt;br /&gt;
{{anchor|.3Cvideo.3E}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;video&amp;gt; section also includes the following child-tags, which have their own sections:&lt;br /&gt;
*[[#cleandatetime]]&lt;br /&gt;
*[[#cleanstrings]]&lt;br /&gt;
*[[#excludefromscan]]&lt;br /&gt;
*[[#excludefromlisting]]&lt;br /&gt;
*[[#excludetvshowsfromscan]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note|Some tags that have a &amp;quot;third-level&amp;quot; and are grouped together are highlighted in color.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Parent tag that all other child tags need to be placed inside of. Do not use more than one &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039; tag, but instead place all other child-tags within a single &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;video&amp;gt;&amp;lt;/video&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039; set.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;subsdelayrange&amp;gt;10&amp;lt;/subsdelayrange&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Delay range for subtitles, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;maxtempo&amp;gt;2.1&amp;lt;/maxtempo&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Allow further increase of playback speed over the default of 1.5&amp;lt;br&amp;gt;&lt;br /&gt;
maxtempo must be in the range of 1.5 to 2.1 &amp;lt;br&amp;gt;&lt;br /&gt;
Be aware of the limitations of your platform / hardware as not all are capable of the increased maxtempo &amp;lt;ref&amp;gt;https://forum.kodi.tv/showthread.php?tid=10023&amp;amp;pid=2795069#pid2795069&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;audiodelayrange&amp;gt;10&amp;lt;/audiodelayrange&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Delay range for audio/video sync, in seconds.&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;usetimeseeking&amp;gt;true&amp;lt;/usetimeseeking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Whether to use time based or percentage based seeking. {{small see also|Skip steps}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforwardbig&amp;gt;600&amp;lt;/timeseekforwardbig&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackwardbig&amp;gt;-600&amp;lt;/timeseekbackwardbig&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes) and -600 (-10 minutes) respectively. &#039;&#039;{{small|See also: [[Skip steps]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforward&amp;gt;2&amp;lt;/percentseekforward&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackward&amp;gt;-2&amp;lt;/percentseekbackward&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Amount to seek forward as a percentage, when doing a short seek.  Defaults to 2 (2%) and -2 (2%) respectively. &#039;&#039;{{small|See also: [[Skip steps]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforwardbig&amp;gt;10&amp;lt;/percentseekforwardbig&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackwardbig&amp;gt;-10&amp;lt;/percentseekbackwardbig&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Amount to seek forward as a percentage, when doing a long seek.  Defaults to 10 (10%) and -10 (10%) respectively. &#039;&#039;{{small|See also: [[Skip steps]] }}&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;fullscreenonmoviestart&amp;gt;true&amp;lt;/fullscreenonmoviestart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Whether to go to fullscreen or not when starting a movie. Defaults to true.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;VideoPlayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Set the default video player: VideoPlayer or an external player. See &#039;&#039;&#039;[[External players]]&#039;&#039;&#039; for more info.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Regular expressions that if evaluated to true won&#039;t be added to library.  It is possible to add multiple &amp;lt;code&amp;gt;&amp;lt;regexp&amp;gt;&amp;lt;/code&amp;gt; tags to match multiple patterns&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Regular expressions that if evaluated to true won&#039;t be displayed in files view.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;90&amp;lt;/playcountminimumpercent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Minimum percentage that has to be played before it is marked as watched. Set to 101 to never auto-mark items as watched. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ignoresecondsatstart&amp;gt;180&amp;lt;/ignoresecondsatstart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Number of seconds to ignore at video start after which a resume point is created. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ignorepercentatend&amp;gt;8&amp;lt;/ignorepercentatend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Percentage of video to ignore at the end. If you stop watching the video here no resume point is created. Set to 101 to never save a resume point. The video is already marked as watched at 90%, see above. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;vdpauscaling&amp;gt;true&amp;lt;/vdpauscaling&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Scales with vdpau instead of opengl and turns on its HQ scaler when available, enabling this might slow down rendering and cause framedrops especially on ION systems, this setting requires a vdpau feature set C GPU.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;enablehighqualityhwscalers&amp;gt;true&amp;lt;/enablehighqualityhwscalers&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Allow turning on the spline36 and lanczos3 shader (for GL builds).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;dxvaallowhqscaling&amp;gt;false&amp;lt;/dxvaallowhqscaling&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Enables high quality video upscaling for Windows.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ppffmpegdeinterlacing&amp;gt;linblenddeint&amp;lt;/ppffmpegdeinterlacing&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Override the deinterlacing options passed to libpostproc.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ppffmpegpostprocessing&amp;gt;ha:128:7,va,dr&amp;lt;/ppffmpegpostprocessing&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Override the post processing options passed to libpostproc when &#039;Video post-processing&#039; is activated in GUI Videos-Settings-Playback.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;autoscalemaxfps&amp;gt;30&amp;lt;/autoscalemaxfps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| When scaling method is set to auto, bilinear is chosen when the fps is higher than this limit, the default is 30.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;adjustrefreshrate&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | Settings for when &amp;quot;Adjust refreshrate to match video fps&amp;quot; is enabled in the video playback GUI settings.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fps&amp;gt;23.976&amp;lt;/fps&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;60.0&amp;lt;/refresh&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; &amp;quot;Adjust refreshrate to match video fps&amp;quot; will try to select the best refreshrate for the video fps but it doesn&#039;t always get it right, for example it might switch to an unsupported refreshrate. You can add overrides here to switch to a certain refreshrate based on video fps. It&#039;s possible to add as many overrides as you need.  Overrides are processed in order, if the first one doesn&#039;t match the fps or no refreshrates match that override, it will try the next one until no overrides are left.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;fps&#039;&#039;&#039; - if the fps is between 23.966 and 23.986&lt;br /&gt;
* &#039;&#039;&#039;refresh&#039;&#039;&#039; - switch to the first found refreshrate that is between 59.99 and 60.01&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmin&amp;gt;29.96&amp;lt;/fpsmin&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmax&amp;gt;30.01&amp;lt;/fpsmax&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;59.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;61.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;fpsmin&#039;&#039;&#039; / &#039;&#039;&#039;fpsmin&#039;&#039;&#039; - You can also specify the fps range yourself.&lt;br /&gt;
* &#039;&#039;&#039;refreshmin&#039;&#039;&#039; / &#039;&#039;&#039;refreshmax&#039;&#039;&#039; - Same for the refreshrate&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;50.0&amp;lt;/refresh&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; If none of the overrides match, or none of the refreshrates match any of the fps matching overrides, it will choose a fallback refreshrate. Fallbacks are process in order, if the first fallback doesn&#039;t match any refreshrate, it will try the next one until no fallbacks are left.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;refresh&#039;&#039;&#039; - Switch to the first found refreshrate that is between 49.99 and 50.01.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;49.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;51.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; You can also specify the range for the fallback yourself.&lt;br /&gt;
&lt;br /&gt;
If none of the overrides match the video fps, or no refreshrates match any of the fps matching overrides, and no fallbacks are specified or no refreshrates match any fallbacks, it will automatically choose the best refreshrate (same as having no overrides and fallbacks).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;/adjustrefreshrate&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;checkdxvacompatibility&amp;gt;value&amp;lt;/checkdxvacompatibility&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Advanced setting not present: let Kodi autodetect cards that support H.264 profile &amp;gt; L4.1. Set value to false to enable DXVA no matter what. Set value to true if Kodi doesn&#039;t autodetect that the graphics card doesn&#039;t support &amp;gt; L4.1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;useocclusionquery&amp;gt;-1&amp;lt;/useocclusionquery&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Use an occlusion query when capturing videoframes, -1 means auto detect, 0 means disabled, 1 means enabled, the default is -1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;fpsdetect&amp;gt;1&amp;lt;/fpsdetect&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| FPS detection for video playback&lt;br /&gt;
* 0 = trust codec fps&lt;br /&gt;
* 1 = recalculate from video timestamps with uniform spacing&lt;br /&gt;
* 2 = recalculate from video timestamps always&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;latency&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot;| Start of &#039;&#039;&#039;latency&#039;&#039;&#039; tags. Display latency (video lag). Latency is given in msecs.&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;delay&amp;gt;0&amp;lt;/delay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | Global default display latency.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | Override latency for given display (not video) refresh rates. When Kodi is in windowed mode, override is ignored. Multiple overrides are allowed.&lt;br /&gt;
&lt;br /&gt;
Syntax of an override entry:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;refresh&amp;gt;&lt;br /&gt;
  &amp;lt;min&amp;gt;, &amp;lt;max&amp;gt; refresh rate range, OR&lt;br /&gt;
  &amp;lt;rate&amp;gt; exact refresh rate&lt;br /&gt;
  &amp;lt;delay&amp;gt; display latency for the given refresh rate&lt;br /&gt;
&amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;min&amp;gt;23&amp;lt;/min&amp;gt;&lt;br /&gt;
      &amp;lt;max&amp;gt;24&amp;lt;/max&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;125&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &#039;&#039;&#039;Example:&#039;&#039;&#039; display has 125 msec latency at 23-24 Hz&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;rate&amp;gt;50&amp;lt;/rate&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;50&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &#039;&#039;&#039;Example:&#039;&#039;&#039; display has 50 msec latency at 50 (+/-0.01) Hz&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;/latency&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregex3d&amp;gt;[-. _]3d[-. _]&amp;lt;/stereoscopicregex3d&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregexsbs&amp;gt;[-. _]h?sbs[-. _]&amp;lt;/stereoscopicregexsbs&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregextab&amp;gt;[-. _]h?tab[-. _]&amp;lt;/stereoscopicregextab&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Filename triggers for 3D (stereoscopic) mode.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;assfixedworks&amp;gt;false&amp;lt;/assfixedworks&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Position behavior of ass subtitiles when setting &amp;quot;subtitle position on screen&amp;quot; set to &amp;quot;fixed&amp;quot;. True to show at the fixed position set in video calibration. False to show at the bottom of video (default).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== audio ===&lt;br /&gt;
{{anchor|.3Caudio.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;audio&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of headroom Kodi should use above the maximum volume level, in decibels.  Defaults to 0, valid values 0, 6, 12. --&amp;gt;&lt;br /&gt;
  &amp;lt;headroom&amp;gt;0&amp;lt;/headroom&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Default audio player: paplayer or videoplayer --&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;paplayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be added to library. --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of gain (dB) to be applied to AC3 streams that have been mixed-down to 2 channels. Default is 12.0. Valid values are: -96.0 to 96.0. --&amp;gt;&lt;br /&gt;
  &amp;lt;ac3downmixgain&amp;gt;12.0&amp;lt;/ac3downmixgain&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Whether to use time based or percentage based seeking. --&amp;gt;&lt;br /&gt;
  &amp;lt;usetimeseeking&amp;gt;true&amp;lt;/usetimeseeking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes) and -600 (-10 minutes) respectively. --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforwardbig&amp;gt;600&amp;lt;/timeseekfowardbig&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Time to seek backward in seconds when doing a long seek back.  Defaults to 600 (10 minutes) and -600 (-10 minutes) respectively. --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackwardbig&amp;gt;-600&amp;lt;/timeseekbackward&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Minimum percentage that has to be played before it is considered for incrementing in the Top 100 database view, or for last.fm submittal --&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;99&amp;lt;/playcountminimumpercent&amp;gt; &lt;br /&gt;
  &amp;lt;!-- Whether to use Dynamic Range Compression (DRC) on AC3 streams. 1.0 is &amp;quot;full&amp;quot; compression, as defined by the audio track&#039;s metadata, which is recommended for &amp;quot;basic&amp;quot; sound systems such as the internal speakers on a TV. 0.0 is no compression at all, which is recommended for people with nice multi-speaker sound systems. -1.0 (default) defaults to whatever ffmpeg uses, which is currently the same as 1.0. This has no effect if passthrough is enabled for AC3. --&amp;gt;&lt;br /&gt;
  &amp;lt;applydrc&amp;gt;-1.0&amp;lt;/applydrc&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterhold&amp;gt;0.025&amp;lt;/limiterhold&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterrelease&amp;gt;0.1&amp;lt;/limiterrelease&amp;gt; &lt;br /&gt;
&amp;lt;/audio&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== forcedswaptime ===&lt;br /&gt;
{{anchor|.3Cforcedswaptime.3E}}&lt;br /&gt;
Use to force a backbuffer-&amp;gt;frontbuffer swap while vsync is enabled. Set to the time (in ms) to allow for the swap (e.g. &amp;lt;forcedswaptime&amp;gt;1&amp;lt;/forcedswaptime&amp;gt; is typical).  &lt;br /&gt;
&lt;br /&gt;
Default: Off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== edl ===&lt;br /&gt;
{{anchor|.3Cedl.3E}}&lt;br /&gt;
{{main|Edit_decision_list}}&lt;br /&gt;
Commercial break detection not as good you think it could be? Are some commercial breaks in a series of adverts not being skipped? Are some parts being skipped that are clearly not commercials? Does the end of the previous recording still show? The following advanced settings can be used to better identify full commercial break sequences, remove incorrectly flagged commercial breaks, and have playback start at the actual beginning of the recording.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edl&amp;gt;&lt;br /&gt;
  &amp;lt;!-- if true, commercial breaks will be merged according to the remaining options. --&amp;gt;&lt;br /&gt;
  &amp;lt;mergeshortcommbreaks&amp;gt;false&amp;lt;/mergeshortcommbreaks&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks won&#039;t be merged if the total length of the commercial break would be greater than this (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreaklength&amp;gt;250&amp;lt;/maxcommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- After merging, commercial breaks shorter than this will be removed (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;mincommbreaklength&amp;gt;90&amp;lt;/mincommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks that are further apart than this won&#039;t be merged (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreakgap&amp;gt;120&amp;lt;/maxcommbreakgap&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to wait before automatically skipping when the start of a commercial break reached (seconds). Possible values: from -60 to 60--&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowait&amp;gt;0&amp;lt;/commbreakautowait&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to rewind after automatically skipping to the end of the commercial break (seconds). Possible values: from -60 to 60 --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowind&amp;gt;0&amp;lt;/commbreakautowind&amp;gt;&lt;br /&gt;
&amp;lt;/edl&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PVR &amp;amp; Live TV ==&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
Settings available for PVR, EPG and Live TV. Edit Decision List settings are located in the previous section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== pvr ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;pvr&amp;gt;&lt;br /&gt;
  &amp;lt;timecorrection&amp;gt;0&amp;lt;/timecorrection&amp;gt;  &amp;lt;!-- Correct all times (epg tags, timer tags, recording tags) by this amount of minutes. --&amp;gt;&lt;br /&gt;
  &amp;lt;infotoggleinterval&amp;gt;3000&amp;lt;/infotoggleinterval&amp;gt;  &amp;lt;!-- If there is more than one pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. --&amp;gt;&lt;br /&gt;
  &amp;lt;channeliconsautoscan&amp;gt;true&amp;lt;/channeliconsautoscan&amp;gt; &amp;lt;!-- Automatically scan user defined folder for channel icons when loading internal channel groups. --&amp;gt;&lt;br /&gt;
  &amp;lt;autoscaniconsuserset&amp;gt;false&amp;lt;/autoscaniconsuserset&amp;gt; &amp;lt;!-- Mark channel icons populated by auto scan as &amp;quot;user set&amp;quot;. --&amp;gt;&lt;br /&gt;
  &amp;lt;numericchannelswitchtimeout&amp;gt;1000&amp;lt;/numericchannelswitchtimeout&amp;gt; &amp;lt;!-- Time in ms before the numeric dialog auto closes when confirmchannelswitch is disabled. --&amp;gt;&lt;br /&gt;
&amp;lt;/pvr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pvrrecordings ====&lt;br /&gt;
{{Future|19|&#039;&#039;&#039;pvrrecordings&#039;&#039;&#039; describes features that are a future part of the Kodi v19 release, codename &amp;quot;Matrix&amp;quot;}}&lt;br /&gt;
Allows users to modify sort type and order of pvr recordings. &amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/pull/18605&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Note- These settings are child tags to the &#039;&#039;&amp;lt;pvr&amp;gt;&#039;&#039; tag in the previous section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;pvr&amp;gt;&lt;br /&gt;
   &amp;lt;pvrrecordings&amp;gt;&lt;br /&gt;
      &amp;lt;sortmethod&amp;gt;2&amp;lt;/sortmethod&amp;gt;  &amp;lt;!-- 1=Name 2=Date 3=Size 4=File --&amp;gt;&lt;br /&gt;
      &amp;lt;sortorder&amp;gt;2&amp;lt;/sortorder&amp;gt;    &amp;lt;!-- 1=Ascending 2=Descending --&amp;gt;&lt;br /&gt;
   &amp;lt;/pvrrecordings&amp;gt;&lt;br /&gt;
&amp;lt;/pvr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== epg ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;epg&amp;gt;&lt;br /&gt;
  &amp;lt;updatecheckinterval&amp;gt;300&amp;lt;/updatecheckinterval&amp;gt;  &amp;lt;!-- Check every X seconds, if EPG data need to be updated. This does not mean that every X seconds an EPG update is actually triggered, it&#039;s just the interval how often to check whether an update should be triggered. If this value is greater than GUI setting &#039;epg.epgupdate&#039; value, then EPG updates will done with the value specified for &#039;updatecheckinterval&#039;, effectively overriding the GUI setting&#039;s value. --&amp;gt;&lt;br /&gt;
  &amp;lt;updateemptytagsinterval&amp;gt;60&amp;lt;/updateemptytagsinterval&amp;gt;  &amp;lt;!-- If a TV channel has no EPG data, try to obtain data for that channel every X seconds. This overrides the GUI setting &#039;epg.epgupdate&#039; value, but only for channels without EPG data. If this value is less than &#039;updatecheckinterval&#039; value, then data update will be done with the interval specified by &#039;updatecheckinterval&#039;. Example 1: epg.epgupdate = 120 (minutes!), updatecheckinterval = 300, updateemptytagsinterval = 60 =&amp;gt; trigger an EPG update for every channel without EPG data every 5 minutes and trigger an EPG update for every channel with EPG data every 2 hours. Example 2: epg.epgupdate = 120 (minutes!), updatecheckinterval = 300, updateemptytagsinterval = 3600 =&amp;gt; trigger an EPG update for every channel without EPG data every 2 hours and trigger an EPG update for every channel with EPG data every 1 hour. --&amp;gt;&lt;br /&gt;
  &amp;lt;cleanupinterval&amp;gt;900&amp;lt;/cleanupinterval&amp;gt;  &amp;lt;!-- remove old entries from the EPG every X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;activetagcheckinterval&amp;gt;60&amp;lt;/activetagcheckinterval&amp;gt;  &amp;lt;!-- check for updated active tags every X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;retryinterruptedupdateinterval&amp;gt;60&amp;lt;/retryinterruptedupdateinterval&amp;gt;  &amp;lt;!-- retry an interrupted EPG update after X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;displayupdatepopup&amp;gt;true&amp;lt;/displayupdatepopup&amp;gt;  &amp;lt;!-- display a progress popup while updating EPG data from clients --&amp;gt;&lt;br /&gt;
  &amp;lt;displayincrementalupdatepopup&amp;gt;false&amp;lt;/displayincrementalupdatepopup&amp;gt;  &amp;lt;!-- also display a progress popup while doing incremental EPG updates --&amp;gt;&lt;br /&gt;
&amp;lt;/epg&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video library settings ==&lt;br /&gt;
&lt;br /&gt;
=== videoextensions ===&lt;br /&gt;
{{anchor|.3Cvideoextensions.3E}}&amp;lt;section begin=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Video windows.&lt;br /&gt;
&lt;br /&gt;
Default extensions for VIDEOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.m4v .3g2 .3gp .nsv .tp .ts .ty .strm .pls .rm .rmvb .mpd .m3u .m3u8 .ifo .mov .qt .divx .xvid&lt;br /&gt;
.bivx .vob .nrg .img .iso .udf .pva .wmv .asf .asx .ogm .m2v .avi .bin .dat .mpg .mpeg .mp4&lt;br /&gt;
.mkv .mk3d .avc .vp3 .svq3 .nuv .viv .dv .fli .flv .001 .wpl .xspf .zip .vdr .dvr-ms .xsp .mts&lt;br /&gt;
.m2t .m2ts .evo .ogv .sdp .avs .rec .url .pxml .vc1 .h264 .rcv .rss .mpls .mpl .webm .bdmv&lt;br /&gt;
.bdm .wtv .trp .f4v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;videoextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/videoextensions&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== discstubextensions ===&lt;br /&gt;
{{main|Media stubs}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;discstubextensions&amp;quot; /&amp;gt;&lt;br /&gt;
The default filename extension for Disc Stubs is:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.disc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Using the following tags, it is possible to &amp;lt;tt&amp;gt;&amp;lt;add&amp;gt;&amp;lt;/tt&amp;gt; additional or &amp;lt;tt&amp;gt;&amp;lt;remove&amp;gt;&amp;lt;/tt&amp;gt; existing disc stub extensions to better suit your requirements.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;discstubextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.disk|.stub&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.disc&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/discstubextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;discstubextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== languagecodes ===&lt;br /&gt;
{{anchor|.3Clanguagecodes.3E}}&lt;br /&gt;
Translation table for subtitle and audio names.  Contains entries of the form&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;languagecodes&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;short&amp;gt;alt&amp;lt;/short&amp;gt;&lt;br /&gt;
    &amp;lt;long&amp;gt;Alternate&amp;lt;/long&amp;gt;&lt;br /&gt;
  &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/languagecodes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== moviestacking ===&lt;br /&gt;
{{anchor|.3Cmoviestacking.3E}}&amp;lt;section begin=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
{{main|Naming_video_files/Movies}}&lt;br /&gt;
This is used by the [[Naming_video_files/Movies#Split_Video_Files|file stacking]] algorithm to combine multi-part files and contains a list of &amp;quot;&#039;&#039;[[RegEx_tutorial|regular expressions]]&#039;&#039;&amp;quot;. For stacking videos that are contained in folders, such as VIDEO_TS folders, see &#039;&#039;&#039;[[advancedsettings.xml#folderstacking|&amp;lt;folderstacking&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As of v9.11, video stacking regular expressions &#039;&#039;&#039;must&#039;&#039;&#039; contain exactly four (4) capture expressions. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[0-9]+)(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;a-d&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- movienamea-xvid.avi, movienameb-xvid.avi --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;append=&amp;quot;yes&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the end.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;append&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This expression will match movename1-xvid.avi, moviename2-xvid.avi.&lt;br /&gt;
         Be warned that it will likely stack sequels in a flat directory layout,&lt;br /&gt;
         so it is only recommend in a dir-per-video layout. --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[0-9])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the beginning. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;prepend&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(Title)(Volume)(Ignore)(Extension)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no argument is supplied, or the argument &amp;lt;tt&amp;gt;append=&amp;quot;no&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions are overwritten by the user specified ones.&lt;br /&gt;
&amp;lt;section end=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== folderstacking ===&lt;br /&gt;
{{main|Naming_video_files/Movies}}&lt;br /&gt;
This is similar to &#039;&#039;&#039;[[advancedsettings.xml#moviestacking|&amp;lt;moviestacking&amp;gt;]]&#039;&#039;&#039;, but is used for videos that are contained in folders that use the folder names to stack, such as VIDEO_TS folders (DVD rips that are not in ISO format).&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;folderstacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;((cd|dvd|dis[ck])[0-9]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/folderstacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cleandatetime ===&lt;br /&gt;
{{anchor|.3Ccleandatetime.3E}}&lt;br /&gt;
Matches a year number in a string using a &#039;&#039;[[RegEx_tutorial|Regular Expression]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Default expression:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleandatetime&amp;gt;(.*[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-9][0-9])([ _\,\.\(\)\[\]\-]|[^0-9]$)?&amp;lt;/cleandatetime&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* The string found before will be used as basis string getting cleaned by the cleanstrings expressions. &lt;br /&gt;
:* By default date formats like MM:YY are ignored.&lt;br /&gt;
&lt;br /&gt;
=== cleanstrings ===&lt;br /&gt;
{{anchor|.3Ccleanstrings.3E}}&lt;br /&gt;
Clean unwanted characters from filenames or folders by using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;. Please note that everything right of the match (at the end of the file name) is removed, so if you would have a file named &#039;&#039;Super movie.mp4&#039;&#039; and would add &amp;lt;tt&amp;gt;&amp;lt;regexp&amp;gt; &amp;lt;/regexp&amp;gt;&amp;lt;/tt&amp;gt; (only a space), the only thing that would be left is &#039;&#039;Super&#039;&#039;, which is probably not what you want.&lt;br /&gt;
&lt;br /&gt;
Default expressions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleanstrings&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;[ _\,\.\(\)\[\]\-](ac3|dts|custom|dc|remastered|divx|divx5|dsr|dsrip|dutch|dvd|dvd5|dvd9|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multisubs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|r3|r5|bd5|se|svcd|swedish|german|read.nfo|nfofix|unrated|extended|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|3d|hrhd|hrhdtv|hddvd|bluray|x264|h264|xvid|xvidvd|xxx|www.www|cd[1-9]|\[.*\])([ _\,\.\(\)\[\]\-]|$)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;(\[.*\])&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/cleanstrings&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== tvshowmatching ===&lt;br /&gt;
{{anchor|.3Ctvshowmatching.3E}}&lt;br /&gt;
Matches the season and episode numbers in file paths by using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvshowmatching&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;s([0-9]+)[ ._x-]*e([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)([^\\\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.s01.e01, foo.s01_e01, S01E02 foo, S01 - E02, S01xE02 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\._ -]()[Ee][Pp]_?([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.ep01, foo.EP_01 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{4})[\.-]([0-9]{2})[\.-]([0-9]{2})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.yyyy.mm.dd.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{2})[\.-]([0-9]{2})[\.-]([0-9]{4})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.mm.dd.yyyy.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ \[\(-]([0-9]+)x([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.1x09* or just /1x09* --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ -]([0-9]+)([0-9][0-9])([\._ -][^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.103*, 103 foo --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\/._ -]p(?:ar)?t[_. -]()([ivx]+)([._ -][^\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- Part I, Pt.VI --&amp;gt;&lt;br /&gt;
&amp;lt;/tvshowmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
:* Paths are converted to lower case before matching.&lt;br /&gt;
:* Examples of matching regexps for certain filenames can be found on the [[Naming_video_files/TV_shows|TV shows]] page.&lt;br /&gt;
&lt;br /&gt;
:* For multi-episode matching to work, there needs to be a third set of parentheses &#039;()&#039; at the end, this part is fed back into the regexp engine.&lt;br /&gt;
&lt;br /&gt;
:* A [https://forum.kodi.tv/showthread.php?tid=51614 forum thread] has a discussion of pre-made regex lists to match common names. These might improve Kodi&#039;s ability to match TV show names in some situations, at the risk of additional false positives.&lt;br /&gt;
&lt;br /&gt;
==== Filenames without Season ====&lt;br /&gt;
There are two methods to add episodes without a season in their file path. Both ways will force the season to &#039;1&#039; by default, so that you can use&lt;br /&gt;
the &#039;Use Absolute Ordering (Single Season)&#039; setting from the TheTvDb.com scraper.&lt;br /&gt;
&lt;br /&gt;
; Simple Method &#039;&#039;(XBMC v9.11 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Use only one pair of parentheses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]([0-9]+)&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
; Advanced Method &#039;&#039;(XBMC v10.05 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Supports multi-episode files without season&lt;br /&gt;
: Use an empty pair of parentheses for the season&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Specifying Default Season &#039;&#039;(XBMC v12.0 onwards and Kodi)&#039;&#039;&lt;br /&gt;
It is possible to set the default season for specific regular expressions by setting the &#039;defaultseason&#039; attribute.&lt;br /&gt;
: Works with both the simple method and advanced method&lt;br /&gt;
: If not used, the season will be set to &#039;1&#039;&lt;br /&gt;
: Useful for setting specials to season &#039;0&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp defaultseason=&amp;quot;0&amp;quot;&amp;gt;[/\._ \-]X()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;regexp defaultseason=&amp;quot;1&amp;quot;&amp;gt;[/\._ \-]E()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== tvmultipartmatching ===&lt;br /&gt;
{{anchor|.3Ctvmultipartmatching.3E}}&lt;br /&gt;
Matches a multipart episode number based on a previously identified episode file, using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvmultipartmatching&amp;gt;^[-_ex]+([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)&amp;lt;/tvmultipartmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* Text matching is compared case-insensitive.&lt;br /&gt;
:* Specifying this option &#039;&#039;&#039;replaces&#039;&#039;&#039; the default value&lt;br /&gt;
&lt;br /&gt;
=== excludefromscan ===&lt;br /&gt;
{{anchor|.3Cexcludefromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a library scan (except tvshows) using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;. This can be for both Video or Audio sections of &amp;lt;tt&amp;gt;advancedsettings.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;-trailer&amp;lt;/regexp&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== excludefromlisting ===&lt;br /&gt;
{{anchor|.3Cexcludefromlisting.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;  &lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== excludetvshowsfromscan ===&lt;br /&gt;
{{anchor|.3Cexcludetvshowsfromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a tvshow library scan using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludetvshowsfromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludetvshowsfromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== trailermatching ===&lt;br /&gt;
{{anchor|.3Ctrailermatching.3E}}&lt;br /&gt;
Contains &amp;quot;&#039;&#039;[[RegEx_tutorial|Regular Expression]]&#039;&#039;&amp;quot; syntax (commonly referred to as &amp;quot;&#039;&#039;[[RegEx_tutorial|RegEx]]&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;[[RegEx_tutorial|RegExp]]&#039;&#039;&amp;quot;) to match the locally stored trailers to movies in the library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;trailermatching&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This regexp will match moviename_Trailer.avi --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;(.*?)(_Trailer)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/trailermatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videolibrary ===&lt;br /&gt;
{{anchor|.3Cvideolibrary.3E}}&lt;br /&gt;
Options specific to the Video Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;false&amp;lt;/allitemsonbottom&amp;gt;  &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;cleanonupdate&amp;gt;false&amp;lt;/cleanonupdate&amp;gt;  &amp;lt;!-- default set to false to prevent Kodi from removing items from the database while updating.  --&amp;gt;&lt;br /&gt;
    &amp;lt;usefasthash&amp;gt;true&amp;lt;/usefasthash&amp;gt; &amp;lt;!-- defaults to true. Set to false in order to skip hashing based on the folders modification time. --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt; &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;  &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* --&amp;gt;&lt;br /&gt;
    &amp;lt;exportautothumbs&amp;gt;false&amp;lt;/exportautothumbs&amp;gt;  &amp;lt;!-- export auto-generated thumbs. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importwatchedstate&amp;gt;false&amp;lt;/importwatchedstate&amp;gt;  &amp;lt;!-- import previously exported playdate and playcount from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importresumepoint&amp;gt;false&amp;lt;/importresumepoint&amp;gt;  &amp;lt;!-- import previously exported resume point from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt; &amp;lt;!-- 0 results in using the current datetime when adding a video;&lt;br /&gt;
                                  1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                  2 results in using the newer datetime of the file&#039;s mtime and ctime --&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Extra artwork ====&lt;br /&gt;
&lt;br /&gt;
Applies to Kodi v18 only.&lt;br /&gt;
&lt;br /&gt;
Configuration to expand the artwork automatically added by Kodi to media items in the library, either from local files or online scrapers.&lt;br /&gt;
&lt;br /&gt;
The original basic artwork types are still hardcoded so they don&#039;t need to be configured here (and can&#039;t be removed). &amp;quot;poster&amp;quot; and &amp;quot;fanart&amp;quot; for movies, movie sets, TV shows, seasons, and music videos; &amp;quot;banner&amp;quot; for TV shows and seasons; and &amp;quot;thumb&amp;quot; for episodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;!-- ... combine with &amp;quot;videolibrary&amp;quot; settings above --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for TV shows --&amp;gt;&lt;br /&gt;
    &amp;lt;tvshowextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;characterart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;keyart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/tvshowextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for TV show seasons --&amp;gt;&lt;br /&gt;
    &amp;lt;tvseasonextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/tvseasonextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for TV show episodes --&amp;gt;&lt;br /&gt;
    &amp;lt;episodeextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;fanart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/episodeextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for movies --&amp;gt;&lt;br /&gt;
    &amp;lt;movieextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;keyart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/movieextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for movie sets / collections --&amp;gt;&lt;br /&gt;
    &amp;lt;moviesetextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;keyart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/moviesetextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for musicvideos --&amp;gt;&lt;br /&gt;
    &amp;lt;musicvideoextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/musicvideoextraart&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videoscanner ===&lt;br /&gt;
{{anchor|.3Cvideoscanner.3E}}&lt;br /&gt;
Options specific to the Video scanner&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videoscanner&amp;gt;&lt;br /&gt;
    &amp;lt;ignoreerrors&amp;gt;true&amp;lt;/ignoreerrors&amp;gt; &amp;lt;!-- Set to true to silently ignore errors while scanning videos. This prevents the error dialogue box, so you don&#039;t have to keep hitting &amp;quot;yes&amp;quot; to keep scanning.--&amp;gt;&lt;br /&gt;
  &amp;lt;/videoscanner&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Library artwork ==&lt;br /&gt;
&lt;br /&gt;
{{note|Using &amp;lt;imageres&amp;gt;9999&amp;lt;/imageres&amp;gt; and &amp;lt;fanartres&amp;gt;9999&amp;lt;/fanartres&amp;gt; will allow caching artwork at original size.}}&lt;br /&gt;
&lt;br /&gt;
=== imageres ===&lt;br /&gt;
{{anchor|.3Cimageres.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;imageres description&amp;quot; /&amp;gt;Specify the maximum resolution that [[Artwork/Cache#Texture optimization| cached artwork]] (other than fanart / 16:9 images) should be resized to in pixels. The width is automatically calculated as being 16/9*height.  The image will be resized to fit within this size. e.g. an image that is 2000x500 will be cached at size 1280x320. An image that is 500x800 will be cached at size 450x720 using the default value of 720.&amp;lt;section end=&amp;quot;imageres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imageres&amp;gt;720&amp;lt;/imageres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanartres ===&lt;br /&gt;
{{anchor|.3Cfanartres.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;fanartres description&amp;quot; /&amp;gt;Specify the maximum resolution that [[Artwork/Cache#Texture optimization| cached fanart]] should be resized to in pixels. The width is automatically calculated as being 16/9*height. Only images that are exactly 16x9 and equal to or greater than this resolution will be cached at this size - all other images will be cached using &amp;lt;imageres&amp;gt;. The default value is 1080.&amp;lt;section end=&amp;quot;fanartres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanartres&amp;gt;1080&amp;lt;/fanartres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanart ===&lt;br /&gt;
{{anchor|.3Cfanart.3E}}&lt;br /&gt;
A list of additional files to scan when searching for local fanart images.  (The defaults are fanart.jpg and fanart.png which can be removed.)&lt;br /&gt;
*Used for &#039;&#039;&#039;music only&#039;&#039;&#039;&lt;br /&gt;
*Cannot be used in conjunction with &#039;&#039;[[Advancedsettings.xml#Music_library_extra_artwork|2.6.5.1 Music library extra artwork]]&#039;&#039; to rename extra fanart.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanart&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;fanart.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;backdrop.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/fanart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicthumbs ===&lt;br /&gt;
{{anchor|.3Cmusicthumbs.3E}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;musicthumbs&amp;quot; /&amp;gt;A list of additional files to try when searching for music thumbnail images.  (The default is folder.jpg which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicthumbs&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;folder.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;thumb.jpg|cover.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/musicthumbs&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;section end=&amp;quot;musicthumbs&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== imagescalingalgorithm ===&lt;br /&gt;
Specify the image scaling algorithm for image resizing when [[Artwork/Cache#Texture optimization| caching artwork]] to the local texture cache.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imagescalingalgorithm&amp;gt;bicubic&amp;lt;/imagescalingalgorithm&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/xbmc/xbmc/blob/1a8753d5cd93890dc6a9f9d4b2ce8848066ea5d0/xbmc/pictures/PictureScalingAlgorithm.cpp#L32-L43 Available image scaling algorithms]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
fast_bilinear&lt;br /&gt;
bilinear&lt;br /&gt;
bicubic&lt;br /&gt;
experimental&lt;br /&gt;
nearest_neighbor&lt;br /&gt;
averaging_area&lt;br /&gt;
bicublin&lt;br /&gt;
gaussian&lt;br /&gt;
sinc&lt;br /&gt;
lanczos&lt;br /&gt;
bicubic_spline&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video and music library settings ==&lt;br /&gt;
&lt;br /&gt;
=== playlistasfolders ===&lt;br /&gt;
{{anchor|.3Cplaylistasfolders.3E}}&lt;br /&gt;
In the recent releases, playlists are treated as folders. Selecting a playlist no longer plays it, but opens it, as if it were a folder.&lt;br /&gt;
&lt;br /&gt;
Set to false to revert to the previous behaviour. When you select a playlist, its content is added to the list of elements to be played.&lt;br /&gt;
&lt;br /&gt;
:{{note|This setting will not affect smart playlists, they will always show as folders.}}&lt;br /&gt;
&lt;br /&gt;
;Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlistasfolders&amp;gt;true&amp;lt;/playlistasfolders&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlistretries ===&lt;br /&gt;
{{anchor|.3Cplaylistretries.3E}}&lt;br /&gt;
The number of retries attempted if a source is offline. With this control you can alter the number of consecutive failed items before a playlist fails.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;playlistretries&amp;gt;100&amp;lt;/playlistretries&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlisttimeout ===&lt;br /&gt;
{{anchor|.3Cplaylisttimeout.3E}}&lt;br /&gt;
The timeout, in seconds, before item failure.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlisttimeout&amp;gt;20&amp;lt;/playlisttimeout&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== sorttokens ===&lt;br /&gt;
Allows you to specify additional tokens that will be ignored at the start of lines during sorting.&lt;br /&gt;
{{note|Sort tokens are case sensitive.}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
  &amp;lt;token&amp;gt;the&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example &amp;quot;the &amp;quot;, &amp;quot;the.&amp;quot; and &amp;quot;the_&amp;quot; will be ignored at the start of titles or names when sorting items, in both video and music libraries. A separator can also be specified, for example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
    &amp;lt;token separators=&amp;quot;&#039;&amp;quot;&amp;gt;L&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In that case the value L&#039;, as in French movie name &#039;&#039;L&#039;argent&#039;&#039;, will be ignored and the item listed under &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== musicdatabase/videodatabase ===&lt;br /&gt;
{{anchor|.3Cmusicdatabase.3E/.3Cvideodatabase.3E|musicdatabase/videodatabase|database tags music/video/tv/epg/adsp}}&lt;br /&gt;
{{main|MySQL}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
Allows advanced customization of the default database settings for music, video, TV, EPG, and ADSP databases.&lt;br /&gt;
&lt;br /&gt;
:{{note| &#039;&#039;&#039;It is HIGHLY recommended that you not attempt to place an sqlite3 database outside of kodi&#039;s path.  sqlite3 contains no filesystem abstraction, so this will plain break on any non-local (as far as Kodi is concerned) paths.  Use this for mysql only.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parent tags:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
{{MySQL warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Child tags: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;type&amp;gt;&lt;br /&gt;
: &#039;&#039;Required&#039;&#039; - Can be either &amp;quot;sqlite3&amp;quot; or &amp;quot;mysql&amp;quot; (default: sqlite3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;host&amp;gt;&lt;br /&gt;
:&#039;&#039;Required&#039;&#039; - &lt;br /&gt;
* sqlite3: defines the relative path to the database file (eg. /usr/local/kodi/databases).&lt;br /&gt;
* mysql: defines the host of the mysql socket (eg. localhost, 192.168.0.1, etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;port&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the port of the mysql socket (default: 3306)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;name&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
:by default &amp;quot;MyVideos&amp;quot;+DB number will be used.&lt;br /&gt;
* sqlite3: defines the name of the database file to read from, excluding the &amp;quot;.db&amp;quot; extension.&lt;br /&gt;
* mysql: defines the name of the database to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;user&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;pass&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the password for the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;compression&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - Defaults to false. Set to &amp;quot;true&amp;quot; to enable MySQL compression protocol. Performance benefit is going to be largely dependent on the network bandwidth, latency between database and clients and on the size of the result sets. [https://github.com/xbmc/xbmc/pull/6484]&lt;br /&gt;
: {{Note|Slower clients (such as the RPi and others) won&#039;t benefit from it as the zlib de-compression overhead is higher than the actual compression savings}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;key&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;cert&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ca&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;capath&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ciphers&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) Configure a database for MySQL.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;videodatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;mysql&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;192.168.0.10&amp;lt;/host&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;kodi_video&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;user&amp;gt;kodi&amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;pass&amp;gt;kodi&amp;lt;/pass&amp;gt;&lt;br /&gt;
&amp;lt;/videodatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Configure a database for an sqlite database.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicdatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;sqlite3&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;/usr/local/share/kodi/databases&amp;lt;/host&amp;gt;&lt;br /&gt;
&amp;lt;/musicdatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externalplayer ===&lt;br /&gt;
{{anchor|.3Cexternalplayer.3E}}&lt;br /&gt;
{{see|External players}}&lt;br /&gt;
&lt;br /&gt;
== Music settings ==&lt;br /&gt;
&lt;br /&gt;
=== musicextensions ===&lt;br /&gt;
{{anchor|.3Cmusicextensions.3E}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;musicextensions&amp;quot; /&amp;gt;&lt;br /&gt;
Default extensions for MUSIC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.nsv .m4a .flac .aac .strm .pls .rm .rma .mpa .wav .wma .ogg .mp3 .mp2 .m3u .gdm .imf .m15 .sfx&lt;br /&gt;
.uni .ac3 .dts .cue .aif .aiff .wpl .xspf .ape .mac .mpc .mp+ .mpp .shn .zip .wv .dsp .xsp .xwav&lt;br /&gt;
.waa .wvs .wam .gcm .idsp .mpdsp .mss .spt .rsd .sap .cmc .cmr .dmc .mpt .mpd .rmt .tmc .tm8&lt;br /&gt;
.tm2 .oga .url .pxml .tta .rss .wtv .mka .tak .opus .dff .dsf .m4b .dtshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is possible to add or remove extensions for Music, using the following XML tags. Useful if you keep, say, FLAC and mp3 versions of music in the same folder. The &amp;lt;remove&amp;gt; tag can be used to remove mp3 from being listed in the library, leaving only the higher quality FLAC being displayed.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;musicextensions&amp;gt;&lt;br /&gt;
   &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
   &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
 &amp;lt;/musicextensions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;musicextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cddbaddress ===&lt;br /&gt;
{{anchor|.3Ccddbaddress.3E}}&lt;br /&gt;
The address of the online CDDb database.  You may set this to another freedb mirror if there is a more suitable one.  &lt;br /&gt;
&lt;br /&gt;
Default: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;gt;&lt;br /&gt;
&amp;lt;cddbaddress&amp;gt;freedb.freedb.org&amp;lt;/cddbaddress&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== songinfoduration ===&lt;br /&gt;
{{anchor|.3Csonginfoduration.3E}}&lt;br /&gt;
This controls how long the song information will remain onscreen when the song changes during visualisations.  The valid range is &amp;quot;1&amp;quot; to &amp;quot;Indefinite (0)&amp;quot;, in seconds.  This does not include the duration of any transition effects. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;songinfoduration&amp;gt;10&amp;lt;/songinfoduration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicfilenamefilters ===&lt;br /&gt;
{{anchor|.3Cmusicfilenamefilters.3E}}&lt;br /&gt;
Contains filters to match music information (artist, title etc.) from a tag-less music filename.  The first &amp;lt;filter&amp;gt; to match completely is used. Matched items include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%A - Artist&lt;br /&gt;
%T - Title&lt;br /&gt;
%B - Album&lt;br /&gt;
%N - Track number&lt;br /&gt;
%S - Part of set (disk number)&lt;br /&gt;
%D - Duration&lt;br /&gt;
%G - Genre&lt;br /&gt;
%Y - Year&lt;br /&gt;
%R - Rating&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicfilenamefilters&amp;gt;&lt;br /&gt;
  &amp;lt;filter&amp;gt;%A - %T&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/musicfilenamefilters&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musiclibrary ===&lt;br /&gt;
Options specific to the Music Library&lt;br /&gt;
&amp;lt;section begin=&amp;quot;MusicLibrary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;true&amp;lt;/allitemsonbottom&amp;gt;       &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;cleanonupdate&amp;gt;false&amp;lt;/cleanonupdate&amp;gt;            &amp;lt;!-- default set to false to prevent Kodi from removing items from the database while updating.  --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt;     &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;albumformat&amp;gt;%B - %Y&amp;lt;/albumformat&amp;gt;              &amp;lt;!-- album label template, default is &amp;quot;%B&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;prioritiseapetags&amp;gt;true&amp;lt;/prioritiseapetags&amp;gt;     &amp;lt;!-- prioritise APEv2 tags over ID3v1/2 tags, default is false. --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;              &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* See Note below--&amp;gt;&lt;br /&gt;
    &amp;lt;artistseparators&amp;gt;                              &amp;lt;!-- separator used for multiple artists. Note that spaces are used for some separators. See Note below--&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;;&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;:&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;|&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt; feat. &amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt; ft. &amp;lt;/separator&amp;gt;&lt;br /&gt;
    &amp;lt;/artistseparators&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt;                        &amp;lt;!--0 results in using the current datetime when adding a song;&lt;br /&gt;
                                                        1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                                        2 results in using the newer datetime of the file&#039;s mtime and ctime   --&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;!-- New for v19 and later releases --&amp;gt;&lt;br /&gt;
    &amp;lt;useisodates&amp;gt;false&amp;lt;/useisodates&amp;gt;                &amp;lt;!-- When &amp;quot;true&amp;quot; all dates displayed in the music library will be in ISO 8601 format (YYYY-MM-DD or part thereof).&lt;br /&gt;
                                                         Defaults to &amp;quot;false&amp;quot; (use localized dates) --&amp;gt;  &lt;br /&gt;
&amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Note|Changing the &amp;lt;itemseparator&amp;gt; or &amp;lt;artistseparators&amp;gt; will only affect newly added items. A rescan won&#039;t change the existing ones. Remove the Source(s) or delete the Music DB and rebuild. This process should be made easier from v18 and up using &amp;lt;promptfulltagscan&amp;gt;}}&amp;lt;section end=&amp;quot;MusicLibrary&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Music library extra artwork ====&lt;br /&gt;
&lt;br /&gt;
New for Kodi v18.&lt;br /&gt;
Configuration to expand the artwork automatically added by Kodi to media items in the library, either from local files or online scrapers.&lt;br /&gt;
&lt;br /&gt;
The original basic artwork types are still hardcoded so they don&#039;t need to be configured here (and can&#039;t be removed). &amp;quot;thumb&amp;quot; for artists and albums, and &amp;quot;fanart&amp;quot; for artists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
    &amp;lt;!-- ... combine with &amp;quot;musiclibrary&amp;quot; section above --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for artists --&amp;gt;&lt;br /&gt;
    &amp;lt;artistextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/artistextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for albums --&amp;gt;&lt;br /&gt;
    &amp;lt;albumextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;spine&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;back&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/albumextraart&amp;gt;&lt;br /&gt;
  &amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Photos settings ==&lt;br /&gt;
&lt;br /&gt;
=== pictureextensions ===&lt;br /&gt;
{{anchor|.3Cpictureextensions.3E}}&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Pictures window.&lt;br /&gt;
&lt;br /&gt;
Default extensions for PICTURES:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.png .jpg .jpeg .bmp .gif .ico .tif .tiff .tga .pcx .cbz .zip .rss .webp .jp2 .apng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/pictureextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pictureexcludes ===&lt;br /&gt;
{{anchor|.3Cpictureexcludes.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from being displayed in My Pictures using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureexcludes&amp;gt;  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in My Pictures --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;small&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/pictureexcludes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== slideshow ===&lt;br /&gt;
{{anchor|.3Cslideshow.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;slideshow&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to pan images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;panamount&amp;gt;2.5&amp;lt;/panamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to zoom images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;zoomamount&amp;gt;5.0&amp;lt;/zoomamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to compensate (zoom) images to attempt to reduce black bars. --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Results in cropping of the longer length of the image in order to reduce the black bars on the shorter length of the image.  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Defaults to 20. --&amp;gt;&lt;br /&gt;
  &amp;lt;blackbarcompensation&amp;gt;20&amp;lt;/blackbarcompensation&amp;gt;  &lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network settings ==&lt;br /&gt;
&lt;br /&gt;
=== ftp ===&lt;br /&gt;
{{anchor|.3Cftp.3DE}}&lt;br /&gt;
Specific settings if a ftp server is in use as a source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftp&amp;gt;&lt;br /&gt;
  &amp;lt;remotethumbs&amp;gt;true&amp;lt;/remotethumbs&amp;gt; &amp;lt;!-- enable extraction of flag and thumb for ftp --&amp;gt;&lt;br /&gt;
&amp;lt;/ftp&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== samba ===&lt;br /&gt;
{{anchor|.3Csamba.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;samba&amp;gt;&lt;br /&gt;
  &amp;lt;doscodepage&amp;gt;&amp;lt;/doscodepage&amp;gt;  &amp;lt;!-- code page to use for filenames --&amp;gt;&lt;br /&gt;
  &amp;lt;clienttimeout&amp;gt;10&amp;lt;/clienttimeout&amp;gt;  &amp;lt;!-- timeout (in seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;statfiles&amp;gt;true&amp;lt;/statfiles&amp;gt;  &amp;lt;!-- Set to false to disable smb stat() on files to speed up listings of large directories (over slow links) --&amp;gt;&lt;br /&gt;
&amp;lt;/samba&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hosts ===&lt;br /&gt;
{{anchor|.3Cfhosts.3E}}&lt;br /&gt;
Static dns entries which take precedence over your dns server.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hosts&amp;gt;&lt;br /&gt;
  &amp;lt;entry name=&amp;quot;HOSTNAME&amp;quot;&amp;gt;IPADDRESS&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/hosts&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== network ===&lt;br /&gt;
{{anchor|.3Cnetwork.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;network&amp;gt;&lt;br /&gt;
  &amp;lt;curlclienttimeout&amp;gt;10&amp;lt;/curlclienttimeout&amp;gt;  &amp;lt;!-- Timeout in seconds for libcurl (http/ftp) connections --&amp;gt;&lt;br /&gt;
  &amp;lt;curllowspeedtime&amp;gt;20&amp;lt;/curllowspeedtime&amp;gt;    &amp;lt;!-- Time in seconds for libcurl to consider a connection lowspeed --&amp;gt;&lt;br /&gt;
  &amp;lt;curlretries&amp;gt;2&amp;lt;/curlretries&amp;gt;               &amp;lt;!-- Amount of retries for certain failed libcurl operations (e.g. timeout) --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxyusername&amp;gt;&amp;lt;/httpproxyusername&amp;gt;    &amp;lt;!-- username for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxypassword&amp;gt;&amp;lt;/httpproxypassword&amp;gt;    &amp;lt;!-- password for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
  &amp;lt;disableipv6&amp;gt;false&amp;lt;/disableipv6&amp;gt;           &amp;lt;!-- Certain hardware/OS combinations have trouble with ipv6. Set &amp;quot;true&amp;quot; to disable --&amp;gt;&lt;br /&gt;
  &amp;lt;disablehttp2&amp;gt;false&amp;lt;/disablehttp2&amp;gt;         &amp;lt;!-- Added in v19- Allows disabling HTTP2 for broken Curl / HTTP2 servers --&amp;gt;&lt;br /&gt;
  &amp;lt;nfstimeout&amp;gt;30&amp;lt;/nfstimeout&amp;gt;                &amp;lt;!-- Added in v19- Timeout in seconds for NFS access, 0 = wait forever (previous behaviour) default is 5s  --&amp;gt;&lt;br /&gt;
  &amp;lt;catrustfile&amp;gt;filepath&amp;lt;/catrustfile&amp;gt;        &amp;lt;!-- Added in v19- Allows specifying a custom SSL CA trust store bundle. e.g. special://masterprofile/cacerts.pem --&amp;gt;&lt;br /&gt;
&amp;lt;/network&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In Kodi v17, the three buffer settings are removed from the &amp;lt;code&amp;gt;&amp;lt;network&amp;gt;&amp;lt;/code&amp;gt; tag and now placed under the new &amp;lt;code&amp;gt;&amp;lt;cache&amp;gt;&amp;lt;/code&amp;gt; tag. See &#039;&#039;&#039;[[#cache]]&#039;&#039;&#039; for full details.}}&lt;br /&gt;
&lt;br /&gt;
=== cache ===&lt;br /&gt;
{{see also|HOW-TO:Modify_the_video_cache}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cache&amp;gt;&lt;br /&gt;
  &amp;lt;memorysize&amp;gt;0&amp;lt;/memorysize&amp;gt;   &amp;lt;!-- Number of bytes used for buffering streams in memory when set to 0 the cache will be written to disk instead of RAM --&amp;gt;&lt;br /&gt;
  &amp;lt;buffermode&amp;gt;0&amp;lt;/buffermode&amp;gt;   &amp;lt;!-- Choose what to buffer:&lt;br /&gt;
                                    0) Buffer all internet filesystems (like &amp;quot;2&amp;quot; but additionally also ftp, webdav, etc.) (default)&lt;br /&gt;
                                    1) Buffer all filesystems (including local)&lt;br /&gt;
                                    2) Only buffer true internet filesystems (streams) (http, https, etc.)&lt;br /&gt;
                                    3) No buffer&lt;br /&gt;
                                    4) Buffer all network filesystems (incl. smb, nfs, etc.) --&amp;gt;&lt;br /&gt;
  &amp;lt;readfactor&amp;gt;4.0&amp;lt;/readfactor&amp;gt; &amp;lt;!-- This factor determines the max readrate in terms of readfactor * avg bitrate of a video file. &lt;br /&gt;
                                    This can help on bad connections to keep the cache filled. It will also greatly speed up buffering. Default value 4.0. --&amp;gt;&lt;br /&gt;
&amp;lt;/cache&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airtunesport ===&lt;br /&gt;
{{anchor|.3Cairtunesport.3E}}&amp;lt;section begin=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the defalt listening port of the AirTunes server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airplayport ===&lt;br /&gt;
{{anchor|.3Cairplayport.3E}}&amp;lt;section begin=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the default listening port of the AirPlay server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File system settings ==&lt;br /&gt;
&lt;br /&gt;
=== packagefoldersize ===&lt;br /&gt;
&amp;lt;section begin=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
{{anchor|.3Cpackagefoldersize.3E}}&lt;br /&gt;
{{xml setting&lt;br /&gt;
 | tag name = packagefoldersize&lt;br /&gt;
 | option type = numerical&lt;br /&gt;
 | option values = &lt;br /&gt;
 | default values = 200&lt;br /&gt;
 | platform = all&lt;br /&gt;
 | XBMC version = 12&lt;br /&gt;
 | description = The amount (in megabytes) of add-on zip packages saved from previous add-on installs. These packages are mainly used for the [[Add-ons|add-on]] rollback feature. Increasing the size should increase the amount of past versions saved. Defaults to 200 MB.&lt;br /&gt;
 | example = Example: &amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;packagefoldersize&amp;gt;200&amp;lt;/packagefoldersize&amp;gt; &amp;lt;!-- this example would keep up to 200MB of add-on packages. --&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== detectasudf ===&lt;br /&gt;
{{anchor|.3Cdetectasudf.3E}}&lt;br /&gt;
Set to true if you wish to detect joint ISO9660/UDF disks as UDF.  &lt;br /&gt;
&lt;br /&gt;
Default: False&lt;br /&gt;
&lt;br /&gt;
=== pathsubstitution ===&lt;br /&gt;
{{anchor|.3Cpathsubstitution.3E}}&lt;br /&gt;
{{main|Path substitution}}&lt;br /&gt;
&lt;br /&gt;
{{divbox|red||&#039;&#039;&#039;Note:&#039;&#039;&#039; Path substition for &amp;quot;sources&amp;quot; and profiles is broken, and will &#039;&#039;&#039;NOT&#039;&#039;&#039; be fixed.}}&lt;br /&gt;
&lt;br /&gt;
Path substitutions are for use for redirecting file paths.  These are processed in order, and are useful for substituting an absolute path on a PC with a path suitable for Kodi to handle.  &lt;br /&gt;
&lt;br /&gt;
Default: No path substitutions defined.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pathsubstitution&amp;gt;&lt;br /&gt;
  &amp;lt;substitute&amp;gt;&lt;br /&gt;
    &amp;lt;from&amp;gt;G:\dvds\&amp;lt;/from&amp;gt;&lt;br /&gt;
    &amp;lt;to&amp;gt;smb://somecomputer/g-share/dvds/&amp;lt;/to&amp;gt; &amp;lt;!-- Note the difference between the usage of forward and backslashes --&amp;gt;&lt;br /&gt;
  &amp;lt;/substitute&amp;gt;&lt;br /&gt;
&amp;lt;/pathsubstitution&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input control settings ==&lt;br /&gt;
&lt;br /&gt;
=== remotedelay ===&lt;br /&gt;
{{anchor|.3Cremotedelay.3E}}&lt;br /&gt;
The repeat delay for a LIRC remote control. A delay value between 1 and 20 before a remote button starts repeating on a long keypress (i.e. continuously sending button pushes while it&#039;s held down). &lt;br /&gt;
&lt;br /&gt;
Default: 3&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remotedelay&amp;gt;10&amp;lt;/remotedelay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== controllerdeadzone ===&lt;br /&gt;
{{anchor|.3Ccontrollerdeadzone.3E}}&lt;br /&gt;
This advanced settings has been removed. &lt;br /&gt;
Since v17, the [[Advancedsettings.xml#controllerdeadzone|&amp;amp;lt;controllerdeadzone&amp;amp;gt;]] advanced setting has been removed. Deadzones can now be configured by plugging in the controller and selecting it in Settings -&amp;gt; System settings -&amp;gt; Input -&amp;gt; Peripherals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== enablemultimediakeys ===&lt;br /&gt;
{{anchor|.3Cenablemultimediakeys.3E}}&lt;br /&gt;
This setting only has any effect on Windows versions of Kodi, and only applies to builds from 28th May 2011 onwards.&lt;br /&gt;
In Windows the multimedia keys generate a WM_APPCOMMAND message in addition the keypress. Kodi processes both keypresses and the WM_APPCOMMAND messages, and the end result would be that the command is executed twice. To avoid this, by default multimedia keypresses are disabled. Although it should rarely be necessary, the enablemultimediakeys setting allows you to enable the multimedia keys.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;enablemultimediakeys&amp;gt;true&amp;lt;/enablemultimediakeys&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seeksteps ===&lt;br /&gt;
{{Main|Skip steps}}&lt;br /&gt;
&lt;br /&gt;
This setting changes which increments are available in the settings GUI for additive seeking. Note that &amp;lt;code&amp;gt;&amp;lt;seeksteps&amp;gt;&amp;lt;/code&amp;gt; is not used to actually choose which seek steps are enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;seeksteps&amp;gt;7, 15, 30, 60, 180, 300, 600, 900, 1800&amp;lt;/seeksteps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{editor note|the defaults need to be updated for seeksteps.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== touchscreen ===&lt;br /&gt;
{{anchor|.3Ctouchscreen.3E}}&lt;br /&gt;
This setting allows you to move/align the origin of the touch screen with the origin of the display used. If touch input does not result in a correct movement of the mouse pointer, the behaviour can be corrected with an offset and a stretch/compress factor.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;touchscreen&amp;gt;&lt;br /&gt;
		&amp;lt;x_offset&amp;gt;0&amp;lt;/x_offset&amp;gt; &amp;lt;!-- set pixel x offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;y_offset&amp;gt;0&amp;lt;/y_offset&amp;gt; &amp;lt;!-- set pixel y offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;x_stretch_factor&amp;gt;1.0&amp;lt;/x_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch x axis--&amp;gt;&lt;br /&gt;
		&amp;lt;y_stretch_factor&amp;gt;1.0&amp;lt;/y_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch y axis--&amp;gt;&lt;br /&gt;
    &amp;lt;/touchscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== scanirserver ===&lt;br /&gt;
Introduced in v18 and used in MS Windows setups only.&amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/pull/13896&amp;lt;/ref&amp;gt;&lt;br /&gt;
Used to disable the regular connection attempts to the IR Server Suite when there is no remote to connect to.&lt;br /&gt;
&lt;br /&gt;
The default setting is to allow connection attempts. To disable connection attempts change value to &#039;&#039;&#039;false&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;scanirserver&amp;gt;true&amp;lt;/scanirserver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other interface settings ==&lt;br /&gt;
&lt;br /&gt;
=== window ===&lt;br /&gt;
{{anchor|.3Cwindow.3E}}&lt;br /&gt;
{{note|This is a &amp;quot;hidden&amp;quot; guisettings.xml setting (defined by the mouse moving the window size), but it is mentioned here because it is a particularly useful override when used in advancedsettings.xml}}&lt;br /&gt;
This allows you to manually set the default size of Kodi&#039;s windowed mode.  If you resize the window, it will return to the set size when restarting.&lt;br /&gt;
&lt;br /&gt;
WIDTH and HEIGHT are the values for each dimension, in pixels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;window&amp;gt;&lt;br /&gt;
    &amp;lt;width&amp;gt;WIDTH&amp;lt;/width&amp;gt;&lt;br /&gt;
    &amp;lt;height&amp;gt;HEIGHT&amp;lt;/height&amp;gt;&lt;br /&gt;
&amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== restrictcapsmask ===&lt;br /&gt;
{{anchor|.3Crestrictcapsmask.3E}}&lt;br /&gt;
Windows only. A bitmask to prevent Kodi from using detected texture capabilities of the GPU. This helps work around buggy hardware/drivers.&lt;br /&gt;
&lt;br /&gt;
1: prevent the use of compressed textures (DXT1, DXT3, DXT5)&lt;br /&gt;
2: prevent the use of non-power-of-two dimensions for textures&lt;br /&gt;
4: prevent the use of compressed textures with non-power-of-two dimensions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;restrictcapsmask&amp;gt;0&amp;lt;/restrictcapsmask&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== algorithmdirtyregions ===&lt;br /&gt;
{{anchor|.3Calgorithmdirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;{{note|Some GPU/hardware configurations will have some minor issues (such as a visual &amp;quot;flicker&amp;quot;). For those situations try mode 2 or use the default (mode 3, which requires no advancedsetting). Almost all ARM-based devices (such as [[Android]]) willl likely have flickering issues.}}&lt;br /&gt;
 &lt;br /&gt;
Enable dirty-region processing. Dirty regions are any parts of the screen that have changed since the last frame. By not re-rendering what hasn&#039;t changed the GUI can be sped up. Because all GPUs work differently, only Mode 3 is guaranteed to work for everyone without flickering issues. This mode will reduce CPU/GPU usage, but will not increase GUI speed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! value !! result !! description&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| Off&lt;br /&gt;
| The entire viewport is always rendered.&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
|Union&lt;br /&gt;
|All dirty regions are grouped into the smallest possible rectangle. This is typically the fastest mode for slower GPUs due to only making one pass.&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| {{nowrap|Cost reduction}}&lt;br /&gt;
| Each dirty region is presented separately, in as many passes as there are regions.&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| {{nowrap|Whole Screen}}&lt;br /&gt;
| The entire screen is rendered if there are any dirty regions. This is a safe default for drivers that clear buffer contents (manifests as blinking or vibrating images). &#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|}&amp;lt;section end=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;algorithmdirtyregions&amp;gt;1&amp;lt;/algorithmdirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== visualizedirtyregions ===&lt;br /&gt;
{{anchor|.3Cvisualizedirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;Enable dirty-region visualization. Paints a rectangle over marked controls.&lt;br /&gt;
&lt;br /&gt;
* true: on&lt;br /&gt;
* false: off &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{note|This is only a development mode and isn&#039;t of use to normal users.}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;visualizedirtyregions&amp;gt;true&amp;lt;/visualizedirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== smartredraw ===&lt;br /&gt;
&lt;br /&gt;
{{note|This is an experimental feature and you might face issues using it. So please be aware of that.}}&lt;br /&gt;
&lt;br /&gt;
This new feature was introduced in Kodi 18 and if enabled, the GUI process call (and therefore the render call) is only done if anything has changed. The result will be a faster GUI and less load if Kodi plays a video&lt;br /&gt;
&lt;br /&gt;
* true: on&lt;br /&gt;
* false: off &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;smartredraw&amp;gt;true&amp;lt;/smartredraw&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== showexitbutton ===&lt;br /&gt;
{{anchor|.3Cshowexitbutton.3E}}&lt;br /&gt;
Setting to hide the exit button, useful for people running appliance based setups where exit would only confuse/complicate the user. Modifiable via the advancedsettings.xml by setting showexitbutton to false, default is true (show)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;showexitbutton&amp;gt;true&amp;lt;/showexitbutton&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== fullscreen ===&lt;br /&gt;
{{anchor|.3Cfullscreen.3E}}&lt;br /&gt;
Starts Kodi in full screen (check resolutions!).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fullscreen&amp;gt;false&amp;lt;/fullscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== splash ===&lt;br /&gt;
{{anchor|.3Csplash.3E}}&lt;br /&gt;
Set to false if you wish to disable the startup splash image. Defaults to true.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;splash&amp;gt;true&amp;lt;/splash&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== cputempcommand ===&lt;br /&gt;
{{anchor|.3Ccputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get CPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia and Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sed -e &#039;s/\([0-9]*\)[0-9]\{3\}.*/\1 C/&#039; /sys/class/thermal/thermal_zone0/temp&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;echo &amp;quot;$(sensors -u | tail -n64 | grep temp1_input | awk &#039;{print $2 }&#039; |awk &#039;{printf(&amp;quot;%d\n&amp;quot;,$1 + 0.5);}&#039;) C&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sensors|sed -ne &amp;quot;s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== gputempcommand ===&lt;br /&gt;
{{anchor|.3Cgputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get GPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-settings -tq gpuCoreTemp) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-smi -q -d TEMPERATURE | grep Gpu | cut -c35-36) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d &amp;quot;-&amp;quot; | cut -f 1 -d &amp;quot;.&amp;quot; | sed -e &amp;quot;s, ,,&amp;quot; | sed &#039;s/$/ C/&#039;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;u&amp;gt;For Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/opt/vc/bin/vcgencmd measure_temp | sed -e &amp;quot;s/temp=//&amp;quot; -e &amp;quot;s/\..*&#039;/ /&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== glrectanglehack ===&lt;br /&gt;
{{anchor|.3Cglrectanglehack.3E}}&lt;br /&gt;
Problems with ghosting or videos which are only played back in the left upper quarter? The following ATI hack may solve it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;glrectanglehack&amp;gt;yes&amp;lt;/glrectanglehack&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== alwaysontop ===&lt;br /&gt;
{{anchor|.3Calwaysontop.3E}}&lt;br /&gt;
Added in XBMC v9.11 (Windows OS only). Keeps Kodi always on top when windowed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;alwaysontop&amp;gt;yes&amp;lt;/alwaysontop&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a fake fullscreen GUI option in Kodi&#039;s settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== minimizetotray ===&lt;br /&gt;
{{anchor|.3Cminimizetotray.3E}}&lt;br /&gt;
{{note|Available in Kodi v20 and above.}}&lt;br /&gt;
&lt;br /&gt;
Windows only. Minimizes Kodi to the system tray. Defaults to false.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;minimizetotray&amp;gt;true&amp;lt;/minimizetotray&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Removed tags =&lt;br /&gt;
{{anchor|Recently removed tags}}&lt;br /&gt;
* {{anchor|.3Cthumbsize.3E}}&#039;&#039;&#039;&amp;lt;thumbsize&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#imageres|imageres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cfanartheight.3E}}&#039;&#039;&#039;&amp;lt;fanartheight&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#fanartres|fanartres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cdvdthumbs.3E}}&#039;&#039;&#039;&amp;lt;dvdthumbs&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbusydialogdelayms.3E}}&#039;&#039;&#039;&amp;lt;busydialogdelayms&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbginfoloadermaxthreads.3E}}&#039;&#039;&#039;&amp;lt;bginfoloadermaxthreads&amp;gt;&#039;&#039;&#039; - removed in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;showepginfoonselect&amp;gt;&#039;&#039;&#039; - replaced by a GUI setting in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;resample&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;forceDirectSound&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiophile&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiosinkbufferdurationmsec&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;allowtranscode44100&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;streamsilence&amp;gt;&#039;&#039;&#039; - These were various sub-tags for &amp;lt;audio&amp;gt; that were removed in v13 Gotham and either replaced by GUI settings or were no longer needed.&lt;br /&gt;
* {{anchor|.3Cenableairtunesdebuglog.3E}}&#039;&#039;&#039;&amp;lt;enableairtunesdebuglog&amp;gt;&#039;&#039;&#039; - replaced by a GUI option in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videoDisableHi10pMultithreading&amp;gt;&#039;&#039;&#039; - renamed to &amp;lt;disableswmultithreading&amp;gt; in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideallitems&amp;gt;&#039;&#039;&#039; - For both the &amp;lt;code&amp;gt;&amp;lt;videolibrary&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;musiclibrary&amp;gt;&amp;lt;/code&amp;gt; sections, this is replaced by a GUI option in v15 Isengard&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;SmallStepBackSeconds&amp;gt;&#039;&#039;&#039; - In v15 the &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; [[Action_IDs]] has been replaced by &amp;lt;code&amp;gt;seek(-7)&amp;lt;/code&amp;gt; in default keymaps. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details. When the original &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; action ID is used it defaults to the first backwards [[skip steps|additive seeking value]].&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;timeseekforward&amp;gt;/&amp;lt;timeseekbackward&amp;gt;&#039;&#039;&#039; - In v15 these tags are replaced by GUI options via [[skip steps|additive seeking]], which is configured in the GUI. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details.&lt;br /&gt;
* {{anchor|.3Ckaraoke.3E}}&#039;&#039;&#039;&amp;lt;karaoke&amp;gt;&#039;&#039;&#039; - In v16 all of the karaoke features in Kodi were removed.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useddsfanart&amp;gt;&#039;&#039;&#039; - removed in v17 Krypton.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;readbufferfactor&amp;gt;&#039;&#039;&#039; - In v17 &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; is renamed to &#039;&#039;&#039;&amp;lt;memorysize&amp;gt;&#039;&#039;&#039; and &amp;lt;code&amp;gt;&amp;lt;readbufferfactor&amp;gt;&amp;lt;/code&amp;gt; is renamed to &amp;lt;code&amp;gt;&amp;lt;readfactor&amp;gt;&amp;lt;/code&amp;gt;. In addition, all three buffer related settings in &amp;lt;network&amp;gt; are moved out of &amp;lt;network&amp;gt; and into a new &amp;lt;cache&amp;gt; parent tag.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;minvideocachelevel&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;minaudiocachelevel&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;cacheindvdplayer&amp;gt;&#039;&#039;&#039; have been removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useffmpegvda&amp;gt;&#039;&#039;&#039; - Tag was only used for development testing. Removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nofliptimeout&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;blackbarcolour&amp;gt;&#039;&#039;&#039; - Removed in v17 (maybe?)&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;disableswmultithreading&amp;gt;&#039;&#039;&#039; - Removed in v17 (maybe?)&lt;br /&gt;
* {{anchor|.3Cmeasurerefreshrate.3E}}&#039;&#039;&#039;&amp;lt;measurerefreshrate&amp;gt;&#039;&#039;&#039; - Removed in v17 or v18?&lt;br /&gt;
* {{anchor|.3Cmyth.3E}}&#039;&#039;&#039;&amp;lt;myth&amp;gt;&#039;&#039;&#039; - Removed sometime between v16 to v18&lt;br /&gt;
* {{anchor|.3Ctuxbox.3E}}&#039;&#039;&#039;&amp;lt;tuxbox&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;backgroundupdate&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideemptyseries&amp;gt;&#039;&#039;&#039; - Replaced by a GUI option.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;mymovies&amp;gt;&#039;&#039;&#039; and child tag &#039;&#039;&#039;&amp;lt;categoriestogenres&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;albumssortbyartistthenyear&#039;&#039;&#039;&amp;gt; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;albumformatright&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* {{anchor|.3Cremoterepeat.3E}}&#039;&#039;&#039;&amp;lt;remoterepeat&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* {{anchor|.3Callowd3d9ex.3E}}&#039;&#039;&#039;&amp;lt;allowd3d9ex&amp;gt;&#039;&#039;&#039; and {{anchor|.3Cforced3d9ex.3E}}&#039;&#039;&#039;&amp;lt;forced3d9ex&amp;gt;&#039;&#039;&#039; - Removed sometime between v16 to v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;lingertime&amp;gt;&#039;&#039;&#039; - Replaced by a GUI setting in v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;forcevaapienabled&amp;gt;&#039;&#039;&#039; - Removed in v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;promptfulltagscan&amp;gt;false&amp;lt;/promptfulltagscan&amp;gt;&#039;&#039;&#039; Removed in v18. Now automatically asked each time a scan is conducted.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;controllerdeadzone&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;omxdecodestartwithvalidframe&amp;gt;&#039;&#039;&#039; - This tag is only in some Raspberry Pi specific distributions, such as OpenELEC. As of March 2015, this tag has not been merged into &amp;quot;vanilla&amp;quot; Kodi builds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= guisettings.xml Setting Conversion =&lt;br /&gt;
It is possible to convert settings found in the &#039;&#039;&#039;[[Settings]]&#039;&#039;&#039; &#039;&#039;(guisettings.xml)&#039;&#039; pages of {{kodi}} into entries for the advancedsettings.xml file.&lt;br /&gt;
&lt;br /&gt;
When a setting from the guisettings.xml is added to the advancedsettings.xml file, it will override the existing guisettings.xml values and the setting will be removed from the settings pages.&lt;br /&gt;
&lt;br /&gt;
Why would I need to do this?&lt;br /&gt;
* You set up multiple devices and then need to individually change settings and preferences on each device. Using this conversion method, you save those settings in the advancedsettings.xml file and simply add the file to each device&lt;br /&gt;
* You need to hide settings to prevent those settings from being modified&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To convert a guisetting to advancedsettings.xml follow these steps:&lt;br /&gt;
# In the {{kodi}} settings pages, adjust the setting(s) to your preference.&lt;br /&gt;
# Back out of the settings pages to the main menu, which forces {{kodi}} to save the adjusted settings to the guisettings.xml file&lt;br /&gt;
# Locate the guisettings.xml file in the [[Userdata]] folder and open it&lt;br /&gt;
# Locate the setting(s) to be converted. The list can be overwhelming so make use of the Search feature of whichever editor you are using&lt;br /&gt;
# Using the following setting as an example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;videolibrary.showemptytvshows&amp;quot;&amp;gt;true&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Breaking down the string:&lt;br /&gt;
::&#039;&#039;&#039;videolibrary&#039;&#039;&#039;- parent tag&lt;br /&gt;
::&#039;&#039;&#039;showemptytvshows&#039;&#039;&#039;- child tag&lt;br /&gt;
::&#039;&#039;&#039;true&#039;&#039;&#039;- value&lt;br /&gt;
: The conversion is as follows and place this in the advancedsettings.xml file&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
          &amp;lt;showemptytvshows&amp;gt;true&amp;lt;/showemptytvshows&amp;gt;&lt;br /&gt;
     &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Some parent tags may already be in use in your advancedsettings.xml file. Do not duplicate them, but add the child tag beneath the existing parent tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Updated|18}}&lt;br /&gt;
{{DISPLAYTITLE:advancedsettings.xml}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Settings]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=221965</id>
		<title>Advancedsettings.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=221965"/>
		<updated>2020-11-20T14:25:42Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* network */  add NFS timeout&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}{{mininav|[[Settings]]|page=advancedsettings.xml}}&lt;br /&gt;
{{bigger|{{note|&#039;&#039;&#039;The advancedsettings.xml file does not exist by default. You have to create it first!&#039;&#039;&#039;}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The [[advancedsettings.xml]] file, which does not exist by default, can be created by a user in their &#039;&#039;&#039;[[Userdata|userdata folder]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This file is used for advanced settings and options that do not have GUI controls inside of {{kodi}}. Some settings are experimental or very rarely set, so they can only be used via the advancedsettings.xml file. The file is simply a plain text file and can be edited by various text editors, so long as the name is &amp;quot;advancedsettings.xml&amp;quot;. These advanced settings can be used to tweak various things such as episode naming patterns, special network ports, special behaviors, and more.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following page will describe the structure of the advancedsettings.xml file and the various individual settings.&lt;br /&gt;
&lt;br /&gt;
{{note|&lt;br /&gt;
# All XML tags must be lowercase. The start and end of the advancedsettings.xml file must have the &amp;lt;advancedsettings&amp;gt; and &amp;lt;/advancedsettings&amp;gt; tags.&lt;br /&gt;
# Kodi will only read the advancedsettings.xml file when it starts up. If you make changes while it is running then you must restart Kodi.&lt;br /&gt;
# For some Windows versions, Kodi has two &amp;lt;code&amp;gt;\userdata\&amp;lt;/code&amp;gt; folders. The correct one to put the advancedsettings.xml file in is not the one in Program Files, but in &amp;lt;code&amp;gt;%appdata%\Kodi\userdata\.&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
&lt;br /&gt;
The layout of &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;setting&amp;quot; gives the name of the setting, and &amp;quot;value&amp;quot; gives its value.&lt;br /&gt;
&lt;br /&gt;
A list of the available &amp;quot;setting&amp;quot; strings and their values is given below.&lt;br /&gt;
&lt;br /&gt;
= List of available settings =&lt;br /&gt;
List of available settings that are recognised in the advancedsettings.xml file &amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/blob/master/xbmc/settings/AdvancedSettings.cpp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recommended: Use the table of contents or the search function in your browser to locate items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting settings ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== loglevel ===&lt;br /&gt;
{{Anchor|.3Cloglevel.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
Sets the logging level used to log errors and information. The &amp;quot;hide&amp;quot; attribute is optional. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;loglevel hide=&amp;quot;attribute&amp;quot;&amp;gt;options&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Attribute&lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;true&#039;&#039;&#039; &lt;br /&gt;
| Hides the &amp;quot;enable debugging&amp;quot; setting in the Settings page. (default)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;false&#039;&#039;&#039;&lt;br /&gt;
| Allows &amp;quot;enable debugging&amp;quot; setting to switch between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Option&lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;-1&#039;&#039;&#039;&lt;br /&gt;
| No logging, suppresses all log output &lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
| Normal logging, only logging errors (default)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
| Debug logging with freemem, fps and cpu usage (no on screen)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;2&#039;&#039;&#039; &lt;br /&gt;
| Same as 1 (with on screen display)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;3&#039;&#039;&#039; &lt;br /&gt;
| Same as 2 + full smb logging (no on screen display)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Example &lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
! Example 1:&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt;  &lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Example 2:&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel hide=&amp;quot;true&amp;quot;&amp;gt;2&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The setting is persistent through shutdown and restarts.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If debugging is enabled in the GUI, loglevel will be set to &#039;&#039;&#039;2&#039;&#039;&#039;. This will over-ride the &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; setting. You must disable the GUI Setting before adding the entry to &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
:&#039;&#039;{{see also|Log_file|label 1=Debug Log}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== jsonrpc ===&lt;br /&gt;
{{Anchor|.3Cjsonrpc.3E}}&lt;br /&gt;
To make it easier for developers using the [[JSON-RPC_API]] API in their (third party) applications to debug during development the json output of Kodi can be prettified by setting &#039;&#039;&#039;compactoutput&#039;&#039;&#039; to &#039;&#039;&#039;false&#039;&#039;&#039;. Default json output mode is a compact print which does not contain any unnecessary whitespaces and therefore is difficult to read for humans.&lt;br /&gt;
Furthermore using the &#039;&#039;&#039;tcpport&#039;&#039;&#039; setting it is possible to change the default TCP port used by Kodi for JSON RPC (which is 9090) to any other valid port.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsonrpc&amp;gt;&lt;br /&gt;
    &amp;lt;compactoutput&amp;gt;false&amp;lt;/compactoutput&amp;gt;&lt;br /&gt;
    &amp;lt;tcpport&amp;gt;9999&amp;lt;/tcpport&amp;gt;&lt;br /&gt;
&amp;lt;/jsonrpc&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio/video playback settings ==&lt;br /&gt;
&lt;br /&gt;
=== skiploopfilter ===&lt;br /&gt;
{{anchor|.3Cskiploopfilter.3E}}&lt;br /&gt;
The amount of the loop filter to skip on h.264 decoding.  This can help the performance of slower machines when decoding h264 content.  Values, in decreasing CPU usage (and decreasing quality)&lt;br /&gt;
* -16 None&lt;br /&gt;
* 0 Skip only empty frames (default)&lt;br /&gt;
* 8 Skip non-reference frames&lt;br /&gt;
* 16 Skip bi-dir frames&lt;br /&gt;
* 32 Skip all non-key frames&lt;br /&gt;
* 48 Skip all frames&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;skiploopfilter&amp;gt;8&amp;lt;/skiploopfilter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== video ===&lt;br /&gt;
{{anchor|.3Cvideo.3E}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;video&amp;gt; section also includes the following child-tags, which have their own sections:&lt;br /&gt;
*[[#cleandatetime]]&lt;br /&gt;
*[[#cleanstrings]]&lt;br /&gt;
*[[#excludefromscan]]&lt;br /&gt;
*[[#excludefromlisting]]&lt;br /&gt;
*[[#excludetvshowsfromscan]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note|Some tags that have a &amp;quot;third-level&amp;quot; and are grouped together are highlighted in color.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Parent tag that all other child tags need to be placed inside of. Do not use more than one &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039; tag, but instead place all other child-tags within a single &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;video&amp;gt;&amp;lt;/video&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039; set.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;subsdelayrange&amp;gt;10&amp;lt;/subsdelayrange&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Delay range for subtitles, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;maxtempo&amp;gt;2.1&amp;lt;/maxtempo&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Allow further increase of playback speed over the default of 1.5&amp;lt;br&amp;gt;&lt;br /&gt;
maxtempo must be in the range of 1.5 to 2.1 &amp;lt;br&amp;gt;&lt;br /&gt;
Be aware of the limitations of your platform / hardware as not all are capable of the increased maxtempo &amp;lt;ref&amp;gt;https://forum.kodi.tv/showthread.php?tid=10023&amp;amp;pid=2795069#pid2795069&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;audiodelayrange&amp;gt;10&amp;lt;/audiodelayrange&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Delay range for audio/video sync, in seconds.&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;usetimeseeking&amp;gt;true&amp;lt;/usetimeseeking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Whether to use time based or percentage based seeking. {{small see also|Skip steps}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforwardbig&amp;gt;600&amp;lt;/timeseekforwardbig&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackwardbig&amp;gt;-600&amp;lt;/timeseekbackwardbig&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes) and -600 (-10 minutes) respectively. &#039;&#039;{{small|See also: [[Skip steps]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforward&amp;gt;2&amp;lt;/percentseekforward&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackward&amp;gt;-2&amp;lt;/percentseekbackward&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Amount to seek forward as a percentage, when doing a short seek.  Defaults to 2 (2%) and -2 (2%) respectively. &#039;&#039;{{small|See also: [[Skip steps]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforwardbig&amp;gt;10&amp;lt;/percentseekforwardbig&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackwardbig&amp;gt;-10&amp;lt;/percentseekbackwardbig&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Amount to seek forward as a percentage, when doing a long seek.  Defaults to 10 (10%) and -10 (10%) respectively. &#039;&#039;{{small|See also: [[Skip steps]] }}&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;fullscreenonmoviestart&amp;gt;true&amp;lt;/fullscreenonmoviestart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Whether to go to fullscreen or not when starting a movie. Defaults to true.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;VideoPlayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Set the default video player: VideoPlayer or an external player. See &#039;&#039;&#039;[[External players]]&#039;&#039;&#039; for more info.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Regular expressions that if evaluated to true won&#039;t be added to library.  It is possible to add multiple &amp;lt;code&amp;gt;&amp;lt;regexp&amp;gt;&amp;lt;/code&amp;gt; tags to match multiple patterns&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Regular expressions that if evaluated to true won&#039;t be displayed in files view.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;90&amp;lt;/playcountminimumpercent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Minimum percentage that has to be played before it is marked as watched. Set to 101 to never auto-mark items as watched. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ignoresecondsatstart&amp;gt;180&amp;lt;/ignoresecondsatstart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Number of seconds to ignore at video start after which a resume point is created. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ignorepercentatend&amp;gt;8&amp;lt;/ignorepercentatend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Percentage of video to ignore at the end. If you stop watching the video here no resume point is created. Set to 101 to never save a resume point. The video is already marked as watched at 90%, see above. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;vdpauscaling&amp;gt;true&amp;lt;/vdpauscaling&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Scales with vdpau instead of opengl and turns on its HQ scaler when available, enabling this might slow down rendering and cause framedrops especially on ION systems, this setting requires a vdpau feature set C GPU.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;enablehighqualityhwscalers&amp;gt;true&amp;lt;/enablehighqualityhwscalers&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Allow turning on the spline36 and lanczos3 shader (for GL builds).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;dxvaallowhqscaling&amp;gt;false&amp;lt;/dxvaallowhqscaling&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Enables high quality video upscaling for Windows.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ppffmpegdeinterlacing&amp;gt;linblenddeint&amp;lt;/ppffmpegdeinterlacing&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Override the deinterlacing options passed to libpostproc.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ppffmpegpostprocessing&amp;gt;ha:128:7,va,dr&amp;lt;/ppffmpegpostprocessing&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Override the post processing options passed to libpostproc when &#039;Video post-processing&#039; is activated in GUI Videos-Settings-Playback.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;autoscalemaxfps&amp;gt;30&amp;lt;/autoscalemaxfps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| When scaling method is set to auto, bilinear is chosen when the fps is higher than this limit, the default is 30.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;adjustrefreshrate&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | Settings for when &amp;quot;Adjust refreshrate to match video fps&amp;quot; is enabled in the video playback GUI settings.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fps&amp;gt;23.976&amp;lt;/fps&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;60.0&amp;lt;/refresh&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; &amp;quot;Adjust refreshrate to match video fps&amp;quot; will try to select the best refreshrate for the video fps but it doesn&#039;t always get it right, for example it might switch to an unsupported refreshrate. You can add overrides here to switch to a certain refreshrate based on video fps. It&#039;s possible to add as many overrides as you need.  Overrides are processed in order, if the first one doesn&#039;t match the fps or no refreshrates match that override, it will try the next one until no overrides are left.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;fps&#039;&#039;&#039; - if the fps is between 23.966 and 23.986&lt;br /&gt;
* &#039;&#039;&#039;refresh&#039;&#039;&#039; - switch to the first found refreshrate that is between 59.99 and 60.01&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmin&amp;gt;29.96&amp;lt;/fpsmin&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmax&amp;gt;30.01&amp;lt;/fpsmax&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;59.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;61.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;fpsmin&#039;&#039;&#039; / &#039;&#039;&#039;fpsmin&#039;&#039;&#039; - You can also specify the fps range yourself.&lt;br /&gt;
* &#039;&#039;&#039;refreshmin&#039;&#039;&#039; / &#039;&#039;&#039;refreshmax&#039;&#039;&#039; - Same for the refreshrate&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;50.0&amp;lt;/refresh&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; If none of the overrides match, or none of the refreshrates match any of the fps matching overrides, it will choose a fallback refreshrate. Fallbacks are process in order, if the first fallback doesn&#039;t match any refreshrate, it will try the next one until no fallbacks are left.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;refresh&#039;&#039;&#039; - Switch to the first found refreshrate that is between 49.99 and 50.01.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;49.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;51.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; You can also specify the range for the fallback yourself.&lt;br /&gt;
&lt;br /&gt;
If none of the overrides match the video fps, or no refreshrates match any of the fps matching overrides, and no fallbacks are specified or no refreshrates match any fallbacks, it will automatically choose the best refreshrate (same as having no overrides and fallbacks).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;/adjustrefreshrate&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;checkdxvacompatibility&amp;gt;value&amp;lt;/checkdxvacompatibility&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Advanced setting not present: let Kodi autodetect cards that support H.264 profile &amp;gt; L4.1. Set value to false to enable DXVA no matter what. Set value to true if Kodi doesn&#039;t autodetect that the graphics card doesn&#039;t support &amp;gt; L4.1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;useocclusionquery&amp;gt;-1&amp;lt;/useocclusionquery&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Use an occlusion query when capturing videoframes, -1 means auto detect, 0 means disabled, 1 means enabled, the default is -1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;fpsdetect&amp;gt;1&amp;lt;/fpsdetect&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| FPS detection for video playback&lt;br /&gt;
* 0 = trust codec fps&lt;br /&gt;
* 1 = recalculate from video timestamps with uniform spacing&lt;br /&gt;
* 2 = recalculate from video timestamps always&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;latency&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot;| Start of &#039;&#039;&#039;latency&#039;&#039;&#039; tags. Display latency (video lag). Latency is given in msecs.&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;delay&amp;gt;0&amp;lt;/delay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | Global default display latency.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | Override latency for given display (not video) refresh rates. When Kodi is in windowed mode, override is ignored. Multiple overrides are allowed.&lt;br /&gt;
&lt;br /&gt;
Syntax of an override entry:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;refresh&amp;gt;&lt;br /&gt;
  &amp;lt;min&amp;gt;, &amp;lt;max&amp;gt; refresh rate range, OR&lt;br /&gt;
  &amp;lt;rate&amp;gt; exact refresh rate&lt;br /&gt;
  &amp;lt;delay&amp;gt; display latency for the given refresh rate&lt;br /&gt;
&amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;min&amp;gt;23&amp;lt;/min&amp;gt;&lt;br /&gt;
      &amp;lt;max&amp;gt;24&amp;lt;/max&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;125&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &#039;&#039;&#039;Example:&#039;&#039;&#039; display has 125 msec latency at 23-24 Hz&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;rate&amp;gt;50&amp;lt;/rate&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;50&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &#039;&#039;&#039;Example:&#039;&#039;&#039; display has 50 msec latency at 50 (+/-0.01) Hz&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;/latency&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregex3d&amp;gt;[-. _]3d[-. _]&amp;lt;/stereoscopicregex3d&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregexsbs&amp;gt;[-. _]h?sbs[-. _]&amp;lt;/stereoscopicregexsbs&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregextab&amp;gt;[-. _]h?tab[-. _]&amp;lt;/stereoscopicregextab&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Filename triggers for 3D (stereoscopic) mode.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;assfixedworks&amp;gt;false&amp;lt;/assfixedworks&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Position behavior of ass subtitiles when setting &amp;quot;subtitle position on screen&amp;quot; set to &amp;quot;fixed&amp;quot;. True to show at the fixed position set in video calibration. False to show at the bottom of video (default).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== audio ===&lt;br /&gt;
{{anchor|.3Caudio.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;audio&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of headroom Kodi should use above the maximum volume level, in decibels.  Defaults to 0, valid values 0, 6, 12. --&amp;gt;&lt;br /&gt;
  &amp;lt;headroom&amp;gt;0&amp;lt;/headroom&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Default audio player: paplayer or videoplayer --&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;paplayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be added to library. --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of gain (dB) to be applied to AC3 streams that have been mixed-down to 2 channels. Default is 12.0. Valid values are: -96.0 to 96.0. --&amp;gt;&lt;br /&gt;
  &amp;lt;ac3downmixgain&amp;gt;12.0&amp;lt;/ac3downmixgain&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Whether to use time based or percentage based seeking. --&amp;gt;&lt;br /&gt;
  &amp;lt;usetimeseeking&amp;gt;true&amp;lt;/usetimeseeking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes) and -600 (-10 minutes) respectively. --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforwardbig&amp;gt;600&amp;lt;/timeseekfowardbig&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Time to seek backward in seconds when doing a long seek back.  Defaults to 600 (10 minutes) and -600 (-10 minutes) respectively. --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackwardbig&amp;gt;-600&amp;lt;/timeseekbackward&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Minimum percentage that has to be played before it is considered for incrementing in the Top 100 database view, or for last.fm submittal --&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;99&amp;lt;/playcountminimumpercent&amp;gt; &lt;br /&gt;
  &amp;lt;!-- Whether to use Dynamic Range Compression (DRC) on AC3 streams. 1.0 is &amp;quot;full&amp;quot; compression, as defined by the audio track&#039;s metadata, which is recommended for &amp;quot;basic&amp;quot; sound systems such as the internal speakers on a TV. 0.0 is no compression at all, which is recommended for people with nice multi-speaker sound systems. -1.0 (default) defaults to whatever ffmpeg uses, which is currently the same as 1.0. This has no effect if passthrough is enabled for AC3. --&amp;gt;&lt;br /&gt;
  &amp;lt;applydrc&amp;gt;-1.0&amp;lt;/applydrc&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterhold&amp;gt;0.025&amp;lt;/limiterhold&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterrelease&amp;gt;0.1&amp;lt;/limiterrelease&amp;gt; &lt;br /&gt;
&amp;lt;/audio&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== forcedswaptime ===&lt;br /&gt;
{{anchor|.3Cforcedswaptime.3E}}&lt;br /&gt;
Use to force a backbuffer-&amp;gt;frontbuffer swap while vsync is enabled. Set to the time (in ms) to allow for the swap (e.g. &amp;lt;forcedswaptime&amp;gt;1&amp;lt;/forcedswaptime&amp;gt; is typical).  &lt;br /&gt;
&lt;br /&gt;
Default: Off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== edl ===&lt;br /&gt;
{{anchor|.3Cedl.3E}}&lt;br /&gt;
{{main|Edit_decision_list}}&lt;br /&gt;
Commercial break detection not as good you think it could be? Are some commercial breaks in a series of adverts not being skipped? Are some parts being skipped that are clearly not commercials? Does the end of the previous recording still show? The following advanced settings can be used to better identify full commercial break sequences, remove incorrectly flagged commercial breaks, and have playback start at the actual beginning of the recording.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edl&amp;gt;&lt;br /&gt;
  &amp;lt;!-- if true, commercial breaks will be merged according to the remaining options. --&amp;gt;&lt;br /&gt;
  &amp;lt;mergeshortcommbreaks&amp;gt;false&amp;lt;/mergeshortcommbreaks&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks won&#039;t be merged if the total length of the commercial break would be greater than this (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreaklength&amp;gt;250&amp;lt;/maxcommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- After merging, commercial breaks shorter than this will be removed (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;mincommbreaklength&amp;gt;90&amp;lt;/mincommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks that are further apart than this won&#039;t be merged (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreakgap&amp;gt;120&amp;lt;/maxcommbreakgap&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to wait before automatically skipping when the start of a commercial break reached (seconds). Possible values: from -60 to 60--&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowait&amp;gt;0&amp;lt;/commbreakautowait&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to rewind after automatically skipping to the end of the commercial break (seconds). Possible values: from -60 to 60 --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowind&amp;gt;0&amp;lt;/commbreakautowind&amp;gt;&lt;br /&gt;
&amp;lt;/edl&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PVR &amp;amp; Live TV ==&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
Settings available for PVR, EPG and Live TV. Edit Decision List settings are located in the previous section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== pvr ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;pvr&amp;gt;&lt;br /&gt;
  &amp;lt;timecorrection&amp;gt;0&amp;lt;/timecorrection&amp;gt;  &amp;lt;!-- Correct all times (epg tags, timer tags, recording tags) by this amount of minutes. --&amp;gt;&lt;br /&gt;
  &amp;lt;infotoggleinterval&amp;gt;3000&amp;lt;/infotoggleinterval&amp;gt;  &amp;lt;!-- If there is more than one pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. --&amp;gt;&lt;br /&gt;
  &amp;lt;channeliconsautoscan&amp;gt;true&amp;lt;/channeliconsautoscan&amp;gt; &amp;lt;!-- Automatically scan user defined folder for channel icons when loading internal channel groups. --&amp;gt;&lt;br /&gt;
  &amp;lt;autoscaniconsuserset&amp;gt;false&amp;lt;/autoscaniconsuserset&amp;gt; &amp;lt;!-- Mark channel icons populated by auto scan as &amp;quot;user set&amp;quot;. --&amp;gt;&lt;br /&gt;
  &amp;lt;numericchannelswitchtimeout&amp;gt;1000&amp;lt;/numericchannelswitchtimeout&amp;gt; &amp;lt;!-- Time in ms before the numeric dialog auto closes when confirmchannelswitch is disabled. --&amp;gt;&lt;br /&gt;
&amp;lt;/pvr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== pvrrecordings ====&lt;br /&gt;
{{Future|19|&#039;&#039;&#039;pvrrecordings&#039;&#039;&#039; describes features that are a future part of the Kodi v19 release, codename &amp;quot;Matrix&amp;quot;}}&lt;br /&gt;
Allows users to modify sort type and order of pvr recordings. &amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/pull/18605&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Note- These settings are child tags to the &#039;&#039;&amp;lt;pvr&amp;gt;&#039;&#039; tag in the previous section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;pvr&amp;gt;&lt;br /&gt;
   &amp;lt;pvrrecordings&amp;gt;&lt;br /&gt;
      &amp;lt;sortmethod&amp;gt;2&amp;lt;/sortmethod&amp;gt;  &amp;lt;!-- 1=Name 2=Date 3=Size 4=File --&amp;gt;&lt;br /&gt;
      &amp;lt;sortorder&amp;gt;2&amp;lt;/sortorder&amp;gt;    &amp;lt;!-- 1=Ascending 2=Descending --&amp;gt;&lt;br /&gt;
   &amp;lt;/pvrrecordings&amp;gt;&lt;br /&gt;
&amp;lt;/pvr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== epg ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;epg&amp;gt;&lt;br /&gt;
  &amp;lt;updatecheckinterval&amp;gt;300&amp;lt;/updatecheckinterval&amp;gt;  &amp;lt;!-- Check every X seconds, if EPG data need to be updated. This does not mean that every X seconds an EPG update is actually triggered, it&#039;s just the interval how often to check whether an update should be triggered. If this value is greater than GUI setting &#039;epg.epgupdate&#039; value, then EPG updates will done with the value specified for &#039;updatecheckinterval&#039;, effectively overriding the GUI setting&#039;s value. --&amp;gt;&lt;br /&gt;
  &amp;lt;updateemptytagsinterval&amp;gt;60&amp;lt;/updateemptytagsinterval&amp;gt;  &amp;lt;!-- If a TV channel has no EPG data, try to obtain data for that channel every X seconds. This overrides the GUI setting &#039;epg.epgupdate&#039; value, but only for channels without EPG data. If this value is less than &#039;updatecheckinterval&#039; value, then data update will be done with the interval specified by &#039;updatecheckinterval&#039;. Example 1: epg.epgupdate = 120 (minutes!), updatecheckinterval = 300, updateemptytagsinterval = 60 =&amp;gt; trigger an EPG update for every channel without EPG data every 5 minutes and trigger an EPG update for every channel with EPG data every 2 hours. Example 2: epg.epgupdate = 120 (minutes!), updatecheckinterval = 300, updateemptytagsinterval = 3600 =&amp;gt; trigger an EPG update for every channel without EPG data every 2 hours and trigger an EPG update for every channel with EPG data every 1 hour. --&amp;gt;&lt;br /&gt;
  &amp;lt;cleanupinterval&amp;gt;900&amp;lt;/cleanupinterval&amp;gt;  &amp;lt;!-- remove old entries from the EPG every X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;activetagcheckinterval&amp;gt;60&amp;lt;/activetagcheckinterval&amp;gt;  &amp;lt;!-- check for updated active tags every X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;retryinterruptedupdateinterval&amp;gt;60&amp;lt;/retryinterruptedupdateinterval&amp;gt;  &amp;lt;!-- retry an interrupted EPG update after X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;displayupdatepopup&amp;gt;true&amp;lt;/displayupdatepopup&amp;gt;  &amp;lt;!-- display a progress popup while updating EPG data from clients --&amp;gt;&lt;br /&gt;
  &amp;lt;displayincrementalupdatepopup&amp;gt;false&amp;lt;/displayincrementalupdatepopup&amp;gt;  &amp;lt;!-- also display a progress popup while doing incremental EPG updates --&amp;gt;&lt;br /&gt;
&amp;lt;/epg&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video library settings ==&lt;br /&gt;
&lt;br /&gt;
=== videoextensions ===&lt;br /&gt;
{{anchor|.3Cvideoextensions.3E}}&amp;lt;section begin=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Video windows.&lt;br /&gt;
&lt;br /&gt;
Default extensions for VIDEOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.m4v .3g2 .3gp .nsv .tp .ts .ty .strm .pls .rm .rmvb .mpd .m3u .m3u8 .ifo .mov .qt .divx .xvid&lt;br /&gt;
.bivx .vob .nrg .img .iso .udf .pva .wmv .asf .asx .ogm .m2v .avi .bin .dat .mpg .mpeg .mp4&lt;br /&gt;
.mkv .mk3d .avc .vp3 .svq3 .nuv .viv .dv .fli .flv .001 .wpl .xspf .zip .vdr .dvr-ms .xsp .mts&lt;br /&gt;
.m2t .m2ts .evo .ogv .sdp .avs .rec .url .pxml .vc1 .h264 .rcv .rss .mpls .mpl .webm .bdmv&lt;br /&gt;
.bdm .wtv .trp .f4v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;videoextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/videoextensions&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== discstubextensions ===&lt;br /&gt;
{{main|Media stubs}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;discstubextensions&amp;quot; /&amp;gt;&lt;br /&gt;
The default filename extension for Disc Stubs is:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.disc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Using the following tags, it is possible to &amp;lt;tt&amp;gt;&amp;lt;add&amp;gt;&amp;lt;/tt&amp;gt; additional or &amp;lt;tt&amp;gt;&amp;lt;remove&amp;gt;&amp;lt;/tt&amp;gt; existing disc stub extensions to better suit your requirements.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;discstubextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.disk|.stub&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.disc&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/discstubextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;discstubextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== languagecodes ===&lt;br /&gt;
{{anchor|.3Clanguagecodes.3E}}&lt;br /&gt;
Translation table for subtitle and audio names.  Contains entries of the form&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;languagecodes&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;short&amp;gt;alt&amp;lt;/short&amp;gt;&lt;br /&gt;
    &amp;lt;long&amp;gt;Alternate&amp;lt;/long&amp;gt;&lt;br /&gt;
  &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/languagecodes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== moviestacking ===&lt;br /&gt;
{{anchor|.3Cmoviestacking.3E}}&amp;lt;section begin=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
{{main|Naming_video_files/Movies}}&lt;br /&gt;
This is used by the [[Naming_video_files/Movies#Split_Video_Files|file stacking]] algorithm to combine multi-part files and contains a list of &amp;quot;&#039;&#039;[[RegEx_tutorial|regular expressions]]&#039;&#039;&amp;quot;. For stacking videos that are contained in folders, such as VIDEO_TS folders, see &#039;&#039;&#039;[[advancedsettings.xml#folderstacking|&amp;lt;folderstacking&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As of v9.11, video stacking regular expressions &#039;&#039;&#039;must&#039;&#039;&#039; contain exactly four (4) capture expressions. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[0-9]+)(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;a-d&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- movienamea-xvid.avi, movienameb-xvid.avi --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;append=&amp;quot;yes&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the end.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;append&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This expression will match movename1-xvid.avi, moviename2-xvid.avi.&lt;br /&gt;
         Be warned that it will likely stack sequels in a flat directory layout,&lt;br /&gt;
         so it is only recommend in a dir-per-video layout. --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[0-9])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the beginning. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;prepend&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(Title)(Volume)(Ignore)(Extension)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no argument is supplied, or the argument &amp;lt;tt&amp;gt;append=&amp;quot;no&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions are overwritten by the user specified ones.&lt;br /&gt;
&amp;lt;section end=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== folderstacking ===&lt;br /&gt;
{{main|Naming_video_files/Movies}}&lt;br /&gt;
This is similar to &#039;&#039;&#039;[[advancedsettings.xml#moviestacking|&amp;lt;moviestacking&amp;gt;]]&#039;&#039;&#039;, but is used for videos that are contained in folders that use the folder names to stack, such as VIDEO_TS folders (DVD rips that are not in ISO format).&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;folderstacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;((cd|dvd|dis[ck])[0-9]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/folderstacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cleandatetime ===&lt;br /&gt;
{{anchor|.3Ccleandatetime.3E}}&lt;br /&gt;
Matches a year number in a string using a &#039;&#039;[[RegEx_tutorial|Regular Expression]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Default expression:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleandatetime&amp;gt;(.*[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-9][0-9])([ _\,\.\(\)\[\]\-]|[^0-9]$)?&amp;lt;/cleandatetime&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* The string found before will be used as basis string getting cleaned by the cleanstrings expressions. &lt;br /&gt;
:* By default date formats like MM:YY are ignored.&lt;br /&gt;
&lt;br /&gt;
=== cleanstrings ===&lt;br /&gt;
{{anchor|.3Ccleanstrings.3E}}&lt;br /&gt;
Clean unwanted characters from filenames or folders by using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;. Please note that everything right of the match (at the end of the file name) is removed, so if you would have a file named &#039;&#039;Super movie.mp4&#039;&#039; and would add &amp;lt;tt&amp;gt;&amp;lt;regexp&amp;gt; &amp;lt;/regexp&amp;gt;&amp;lt;/tt&amp;gt; (only a space), the only thing that would be left is &#039;&#039;Super&#039;&#039;, which is probably not what you want.&lt;br /&gt;
&lt;br /&gt;
Default expressions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleanstrings&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;[ _\,\.\(\)\[\]\-](ac3|dts|custom|dc|remastered|divx|divx5|dsr|dsrip|dutch|dvd|dvd5|dvd9|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multisubs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|r3|r5|bd5|se|svcd|swedish|german|read.nfo|nfofix|unrated|extended|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|3d|hrhd|hrhdtv|hddvd|bluray|x264|h264|xvid|xvidvd|xxx|www.www|cd[1-9]|\[.*\])([ _\,\.\(\)\[\]\-]|$)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;(\[.*\])&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/cleanstrings&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== tvshowmatching ===&lt;br /&gt;
{{anchor|.3Ctvshowmatching.3E}}&lt;br /&gt;
Matches the season and episode numbers in file paths by using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvshowmatching&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;s([0-9]+)[ ._x-]*e([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)([^\\\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.s01.e01, foo.s01_e01, S01E02 foo, S01 - E02, S01xE02 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\._ -]()[Ee][Pp]_?([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.ep01, foo.EP_01 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{4})[\.-]([0-9]{2})[\.-]([0-9]{2})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.yyyy.mm.dd.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{2})[\.-]([0-9]{2})[\.-]([0-9]{4})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.mm.dd.yyyy.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ \[\(-]([0-9]+)x([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.1x09* or just /1x09* --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ -]([0-9]+)([0-9][0-9])([\._ -][^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.103*, 103 foo --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\/._ -]p(?:ar)?t[_. -]()([ivx]+)([._ -][^\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- Part I, Pt.VI --&amp;gt;&lt;br /&gt;
&amp;lt;/tvshowmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
:* Paths are converted to lower case before matching.&lt;br /&gt;
:* Examples of matching regexps for certain filenames can be found on the [[Naming_video_files/TV_shows|TV shows]] page.&lt;br /&gt;
&lt;br /&gt;
:* For multi-episode matching to work, there needs to be a third set of parentheses &#039;()&#039; at the end, this part is fed back into the regexp engine.&lt;br /&gt;
&lt;br /&gt;
:* A [https://forum.kodi.tv/showthread.php?tid=51614 forum thread] has a discussion of pre-made regex lists to match common names. These might improve Kodi&#039;s ability to match TV show names in some situations, at the risk of additional false positives.&lt;br /&gt;
&lt;br /&gt;
==== Filenames without Season ====&lt;br /&gt;
There are two methods to add episodes without a season in their file path. Both ways will force the season to &#039;1&#039; by default, so that you can use&lt;br /&gt;
the &#039;Use Absolute Ordering (Single Season)&#039; setting from the TheTvDb.com scraper.&lt;br /&gt;
&lt;br /&gt;
; Simple Method &#039;&#039;(XBMC v9.11 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Use only one pair of parentheses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]([0-9]+)&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
; Advanced Method &#039;&#039;(XBMC v10.05 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Supports multi-episode files without season&lt;br /&gt;
: Use an empty pair of parentheses for the season&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Specifying Default Season &#039;&#039;(XBMC v12.0 onwards and Kodi)&#039;&#039;&lt;br /&gt;
It is possible to set the default season for specific regular expressions by setting the &#039;defaultseason&#039; attribute.&lt;br /&gt;
: Works with both the simple method and advanced method&lt;br /&gt;
: If not used, the season will be set to &#039;1&#039;&lt;br /&gt;
: Useful for setting specials to season &#039;0&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp defaultseason=&amp;quot;0&amp;quot;&amp;gt;[/\._ \-]X()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;regexp defaultseason=&amp;quot;1&amp;quot;&amp;gt;[/\._ \-]E()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== tvmultipartmatching ===&lt;br /&gt;
{{anchor|.3Ctvmultipartmatching.3E}}&lt;br /&gt;
Matches a multipart episode number based on a previously identified episode file, using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvmultipartmatching&amp;gt;^[-_ex]+([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)&amp;lt;/tvmultipartmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* Text matching is compared case-insensitive.&lt;br /&gt;
:* Specifying this option &#039;&#039;&#039;replaces&#039;&#039;&#039; the default value&lt;br /&gt;
&lt;br /&gt;
=== excludefromscan ===&lt;br /&gt;
{{anchor|.3Cexcludefromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a library scan (except tvshows) using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;. This can be for both Video or Audio sections of &amp;lt;tt&amp;gt;advancedsettings.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;-trailer&amp;lt;/regexp&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== excludefromlisting ===&lt;br /&gt;
{{anchor|.3Cexcludefromlisting.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;  &lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== excludetvshowsfromscan ===&lt;br /&gt;
{{anchor|.3Cexcludetvshowsfromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a tvshow library scan using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludetvshowsfromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludetvshowsfromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== trailermatching ===&lt;br /&gt;
{{anchor|.3Ctrailermatching.3E}}&lt;br /&gt;
Contains &amp;quot;&#039;&#039;[[RegEx_tutorial|Regular Expression]]&#039;&#039;&amp;quot; syntax (commonly referred to as &amp;quot;&#039;&#039;[[RegEx_tutorial|RegEx]]&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;[[RegEx_tutorial|RegExp]]&#039;&#039;&amp;quot;) to match the locally stored trailers to movies in the library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;trailermatching&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This regexp will match moviename_Trailer.avi --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;(.*?)(_Trailer)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/trailermatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videolibrary ===&lt;br /&gt;
{{anchor|.3Cvideolibrary.3E}}&lt;br /&gt;
Options specific to the Video Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;false&amp;lt;/allitemsonbottom&amp;gt;  &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;cleanonupdate&amp;gt;false&amp;lt;/cleanonupdate&amp;gt;  &amp;lt;!-- default set to false to prevent Kodi from removing items from the database while updating.  --&amp;gt;&lt;br /&gt;
    &amp;lt;usefasthash&amp;gt;true&amp;lt;/usefasthash&amp;gt; &amp;lt;!-- defaults to true. Set to false in order to skip hashing based on the folders modification time. --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt; &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;  &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* --&amp;gt;&lt;br /&gt;
    &amp;lt;exportautothumbs&amp;gt;false&amp;lt;/exportautothumbs&amp;gt;  &amp;lt;!-- export auto-generated thumbs. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importwatchedstate&amp;gt;false&amp;lt;/importwatchedstate&amp;gt;  &amp;lt;!-- import previously exported playdate and playcount from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importresumepoint&amp;gt;false&amp;lt;/importresumepoint&amp;gt;  &amp;lt;!-- import previously exported resume point from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt; &amp;lt;!-- 0 results in using the current datetime when adding a video;&lt;br /&gt;
                                  1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                  2 results in using the newer datetime of the file&#039;s mtime and ctime --&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Extra artwork ====&lt;br /&gt;
&lt;br /&gt;
New for Kodi v18.&lt;br /&gt;
Configuration to expand the artwork automatically added by Kodi to media items in the library, either from local files or online scrapers.&lt;br /&gt;
&lt;br /&gt;
The original basic artwork types are still hardcoded so they don&#039;t need to be configured here (and can&#039;t be removed). &amp;quot;poster&amp;quot; and &amp;quot;fanart&amp;quot; for movies, movie sets, TV shows, seasons, and music videos; &amp;quot;banner&amp;quot; for TV shows and seasons; and &amp;quot;thumb&amp;quot; for episodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;!-- ... combine with &amp;quot;videolibrary&amp;quot; settings above --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for TV shows --&amp;gt;&lt;br /&gt;
    &amp;lt;tvshowextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;characterart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;keyart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/tvshowextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for TV show seasons --&amp;gt;&lt;br /&gt;
    &amp;lt;tvseasonextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/tvseasonextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for TV show episodes --&amp;gt;&lt;br /&gt;
    &amp;lt;episodeextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;fanart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/episodeextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for movies --&amp;gt;&lt;br /&gt;
    &amp;lt;movieextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;keyart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/movieextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for movie sets / collections --&amp;gt;&lt;br /&gt;
    &amp;lt;moviesetextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;keyart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/moviesetextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for musicvideos --&amp;gt;&lt;br /&gt;
    &amp;lt;musicvideoextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/musicvideoextraart&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videoscanner ===&lt;br /&gt;
{{anchor|.3Cvideoscanner.3E}}&lt;br /&gt;
Options specific to the Video scanner&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videoscanner&amp;gt;&lt;br /&gt;
    &amp;lt;ignoreerrors&amp;gt;true&amp;lt;/ignoreerrors&amp;gt; &amp;lt;!-- Set to true to silently ignore errors while scanning videos. This prevents the error dialogue box, so you don&#039;t have to keep hitting &amp;quot;yes&amp;quot; to keep scanning.--&amp;gt;&lt;br /&gt;
  &amp;lt;/videoscanner&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Library artwork ==&lt;br /&gt;
&lt;br /&gt;
{{note|Using &amp;lt;imageres&amp;gt;9999&amp;lt;/imageres&amp;gt; and &amp;lt;fanartres&amp;gt;9999&amp;lt;/fanartres&amp;gt; will allow caching artwork at original size.}}&lt;br /&gt;
&lt;br /&gt;
=== imageres ===&lt;br /&gt;
{{anchor|.3Cimageres.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;imageres description&amp;quot; /&amp;gt;Specify the maximum resolution that [[Artwork/Cache#Texture optimization| cached artwork]] (other than fanart / 16:9 images) should be resized to in pixels. The width is automatically calculated as being 16/9*height.  The image will be resized to fit within this size. e.g. an image that is 2000x500 will be cached at size 1280x320. An image that is 500x800 will be cached at size 450x720 using the default value of 720.&amp;lt;section end=&amp;quot;imageres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imageres&amp;gt;720&amp;lt;/imageres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanartres ===&lt;br /&gt;
{{anchor|.3Cfanartres.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;fanartres description&amp;quot; /&amp;gt;Specify the maximum resolution that [[Artwork/Cache#Texture optimization| cached fanart]] should be resized to in pixels. The width is automatically calculated as being 16/9*height. Only images that are exactly 16x9 and equal to or greater than this resolution will be cached at this size - all other images will be cached using &amp;lt;imageres&amp;gt;. The default value is 1080.&amp;lt;section end=&amp;quot;fanartres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanartres&amp;gt;1080&amp;lt;/fanartres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanart ===&lt;br /&gt;
{{anchor|.3Cfanart.3E}}&lt;br /&gt;
A list of additional files to scan when searching for local fanart images.  (The defaults are fanart.jpg and fanart.png which can be removed.)&lt;br /&gt;
*Used for &#039;&#039;&#039;music only&#039;&#039;&#039;&lt;br /&gt;
*Cannot be used in conjunction with &#039;&#039;[[Advancedsettings.xml#Music_library_extra_artwork|2.6.5.1 Music library extra artwork]]&#039;&#039; to rename extra fanart.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanart&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;fanart.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;backdrop.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/fanart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicthumbs ===&lt;br /&gt;
{{anchor|.3Cmusicthumbs.3E}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;musicthumbs&amp;quot; /&amp;gt;A list of additional files to try when searching for music thumbnail images.  (The default is folder.jpg which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicthumbs&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;folder.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;thumb.jpg|cover.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/musicthumbs&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;section end=&amp;quot;musicthumbs&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== imagescalingalgorithm ===&lt;br /&gt;
Specify the image scaling algorithm for image resizing when [[Artwork/Cache#Texture optimization| caching artwork]] to the local texture cache.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imagescalingalgorithm&amp;gt;bicubic&amp;lt;/imagescalingalgorithm&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/xbmc/xbmc/blob/1a8753d5cd93890dc6a9f9d4b2ce8848066ea5d0/xbmc/pictures/PictureScalingAlgorithm.cpp#L32-L43 Available image scaling algorithms]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
fast_bilinear&lt;br /&gt;
bilinear&lt;br /&gt;
bicubic&lt;br /&gt;
experimental&lt;br /&gt;
nearest_neighbor&lt;br /&gt;
averaging_area&lt;br /&gt;
bicublin&lt;br /&gt;
gaussian&lt;br /&gt;
sinc&lt;br /&gt;
lanczos&lt;br /&gt;
bicubic_spline&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video and music library settings ==&lt;br /&gt;
&lt;br /&gt;
=== playlistasfolders ===&lt;br /&gt;
{{anchor|.3Cplaylistasfolders.3E}}&lt;br /&gt;
In the recent releases, playlists are treated as folders. Selecting a playlist no longer plays it, but opens it, as if it were a folder.&lt;br /&gt;
&lt;br /&gt;
Set to false to revert to the previous behaviour. When you select a playlist, its content is added to the list of elements to be played.&lt;br /&gt;
&lt;br /&gt;
:{{note|This setting will not affect smart playlists, they will always show as folders.}}&lt;br /&gt;
&lt;br /&gt;
;Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlistasfolders&amp;gt;true&amp;lt;/playlistasfolders&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlistretries ===&lt;br /&gt;
{{anchor|.3Cplaylistretries.3E}}&lt;br /&gt;
The number of retries attempted if a source is offline. With this control you can alter the number of consecutive failed items before a playlist fails.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;playlistretries&amp;gt;100&amp;lt;/playlistretries&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlisttimeout ===&lt;br /&gt;
{{anchor|.3Cplaylisttimeout.3E}}&lt;br /&gt;
The timeout, in seconds, before item failure.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlisttimeout&amp;gt;20&amp;lt;/playlisttimeout&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== sorttokens ===&lt;br /&gt;
Allows you to specify additional tokens that will be ignored at the start of lines during sorting.&lt;br /&gt;
{{note|Sort tokens are case sensitive.}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
  &amp;lt;token&amp;gt;the&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example &amp;quot;the &amp;quot;, &amp;quot;the.&amp;quot; and &amp;quot;the_&amp;quot; will be ignored at the start of titles or names when sorting items, in both video and music libraries. A separator can also be specified, for example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
    &amp;lt;token separators=&amp;quot;&#039;&amp;quot;&amp;gt;L&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In that case the value L&#039;, as in French movie name &#039;&#039;L&#039;argent&#039;&#039;, will be ignored and the item listed under &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== musicdatabase/videodatabase ===&lt;br /&gt;
{{anchor|.3Cmusicdatabase.3E/.3Cvideodatabase.3E|musicdatabase/videodatabase|database tags music/video/tv/epg/adsp}}&lt;br /&gt;
{{main|MySQL}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
Allows advanced customization of the default database settings for music, video, TV, EPG, and ADSP databases.&lt;br /&gt;
&lt;br /&gt;
:{{note| &#039;&#039;&#039;It is HIGHLY recommended that you not attempt to place an sqlite3 database outside of kodi&#039;s path.  sqlite3 contains no filesystem abstraction, so this will plain break on any non-local (as far as Kodi is concerned) paths.  Use this for mysql only.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parent tags:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
{{MySQL warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Child tags: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;type&amp;gt;&lt;br /&gt;
: &#039;&#039;Required&#039;&#039; - Can be either &amp;quot;sqlite3&amp;quot; or &amp;quot;mysql&amp;quot; (default: sqlite3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;host&amp;gt;&lt;br /&gt;
:&#039;&#039;Required&#039;&#039; - &lt;br /&gt;
* sqlite3: defines the relative path to the database file (eg. /usr/local/kodi/databases).&lt;br /&gt;
* mysql: defines the host of the mysql socket (eg. localhost, 192.168.0.1, etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;port&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the port of the mysql socket (default: 3306)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;name&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
:by default &amp;quot;MyVideos&amp;quot;+DB number will be used.&lt;br /&gt;
* sqlite3: defines the name of the database file to read from, excluding the &amp;quot;.db&amp;quot; extension.&lt;br /&gt;
* mysql: defines the name of the database to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;user&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;pass&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the password for the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;compression&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - Defaults to false. Set to &amp;quot;true&amp;quot; to enable MySQL compression protocol. Performance benefit is going to be largely dependent on the network bandwidth, latency between database and clients and on the size of the result sets. [https://github.com/xbmc/xbmc/pull/6484]&lt;br /&gt;
: {{Note|Slower clients (such as the RPi and others) won&#039;t benefit from it as the zlib de-compression overhead is higher than the actual compression savings}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;key&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;cert&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ca&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;capath&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ciphers&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) Configure a database for MySQL.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;videodatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;mysql&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;192.168.0.10&amp;lt;/host&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;kodi_video&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;user&amp;gt;kodi&amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;pass&amp;gt;kodi&amp;lt;/pass&amp;gt;&lt;br /&gt;
&amp;lt;/videodatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Configure a database for an sqlite database.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicdatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;sqlite3&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;/usr/local/share/kodi/databases&amp;lt;/host&amp;gt;&lt;br /&gt;
&amp;lt;/musicdatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externalplayer ===&lt;br /&gt;
{{anchor|.3Cexternalplayer.3E}}&lt;br /&gt;
{{see|External players}}&lt;br /&gt;
&lt;br /&gt;
== Music settings ==&lt;br /&gt;
&lt;br /&gt;
=== musicextensions ===&lt;br /&gt;
{{anchor|.3Cmusicextensions.3E}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;musicextensions&amp;quot; /&amp;gt;&lt;br /&gt;
Default extensions for MUSIC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.nsv .m4a .flac .aac .strm .pls .rm .rma .mpa .wav .wma .ogg .mp3 .mp2 .m3u .gdm .imf .m15 .sfx&lt;br /&gt;
.uni .ac3 .dts .cue .aif .aiff .wpl .xspf .ape .mac .mpc .mp+ .mpp .shn .zip .wv .dsp .xsp .xwav&lt;br /&gt;
.waa .wvs .wam .gcm .idsp .mpdsp .mss .spt .rsd .sap .cmc .cmr .dmc .mpt .mpd .rmt .tmc .tm8&lt;br /&gt;
.tm2 .oga .url .pxml .tta .rss .wtv .mka .tak .opus .dff .dsf .m4b .dtshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is possible to add or remove extensions for Music, using the following XML tags. Useful if you keep, say, FLAC and mp3 versions of music in the same folder. The &amp;lt;remove&amp;gt; tag can be used to remove mp3 from being listed in the library, leaving only the higher quality FLAC being displayed.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;musicextensions&amp;gt;&lt;br /&gt;
   &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
   &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
 &amp;lt;/musicextensions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;musicextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cddbaddress ===&lt;br /&gt;
{{anchor|.3Ccddbaddress.3E}}&lt;br /&gt;
The address of the online CDDb database.  You may set this to another freedb mirror if there is a more suitable one.  &lt;br /&gt;
&lt;br /&gt;
Default: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;gt;&lt;br /&gt;
&amp;lt;cddbaddress&amp;gt;freedb.freedb.org&amp;lt;/cddbaddress&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== songinfoduration ===&lt;br /&gt;
{{anchor|.3Csonginfoduration.3E}}&lt;br /&gt;
This controls how long the song information will remain onscreen when the song changes during visualisations.  The valid range is &amp;quot;1&amp;quot; to &amp;quot;Indefinite (0)&amp;quot;, in seconds.  This does not include the duration of any transition effects. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;songinfoduration&amp;gt;10&amp;lt;/songinfoduration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicfilenamefilters ===&lt;br /&gt;
{{anchor|.3Cmusicfilenamefilters.3E}}&lt;br /&gt;
Contains filters to match music information (artist, title etc.) from a tag-less music filename.  The first &amp;lt;filter&amp;gt; to match completely is used. Matched items include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%A - Artist&lt;br /&gt;
%T - Title&lt;br /&gt;
%B - Album&lt;br /&gt;
%N - Track number&lt;br /&gt;
%S - Part of set (disk number)&lt;br /&gt;
%D - Duration&lt;br /&gt;
%G - Genre&lt;br /&gt;
%Y - Year&lt;br /&gt;
%R - Rating&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicfilenamefilters&amp;gt;&lt;br /&gt;
  &amp;lt;filter&amp;gt;%A - %T&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/musicfilenamefilters&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musiclibrary ===&lt;br /&gt;
Options specific to the Music Library&lt;br /&gt;
&amp;lt;section begin=&amp;quot;MusicLibrary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;true&amp;lt;/allitemsonbottom&amp;gt;       &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;cleanonupdate&amp;gt;false&amp;lt;/cleanonupdate&amp;gt;            &amp;lt;!-- default set to false to prevent Kodi from removing items from the database while updating.  --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt;     &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;albumformat&amp;gt;%B - %Y&amp;lt;/albumformat&amp;gt;              &amp;lt;!-- album label template, default is &amp;quot;%B&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;prioritiseapetags&amp;gt;true&amp;lt;/prioritiseapetags&amp;gt;     &amp;lt;!-- prioritise APEv2 tags over ID3v1/2 tags, default is false. --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;              &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* See Note below--&amp;gt;&lt;br /&gt;
    &amp;lt;artistseparators&amp;gt;                              &amp;lt;!-- separator used for multiple artists. Note that spaces are used for some separators. See Note below--&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;;&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;:&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;|&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt; feat. &amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt; ft. &amp;lt;/separator&amp;gt;&lt;br /&gt;
    &amp;lt;/artistseparators&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt;                        &amp;lt;!--0 results in using the current datetime when adding a song;&lt;br /&gt;
                                                        1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                                        2 results in using the newer datetime of the file&#039;s mtime and ctime   --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- The following tags are available from v18 and later releases --&amp;gt;                                                    &lt;br /&gt;
    &amp;lt;useartistsortname&amp;gt;false&amp;lt;/useartistsortname&amp;gt;    &amp;lt;!-- When &amp;quot;true&amp;quot; the Artist Sort Name is used in sorting of songs, albums and artists. Artists can be sorted in surname. Default is &amp;quot;false&amp;quot; --&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;!-- New for v19 and later releases --&amp;gt;&lt;br /&gt;
    &amp;lt;useisodates&amp;gt;false&amp;lt;/useisodates&amp;gt;                &amp;lt;!-- When &amp;quot;true&amp;quot; all dates displayed in the music library will be in ISO 8601 format (YYYY-MM-DD or part thereof).&lt;br /&gt;
                                                         Defaults to &amp;quot;false&amp;quot; (use localized dates) --&amp;gt;  &lt;br /&gt;
&amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Note|Changing the &amp;lt;itemseparator&amp;gt; or &amp;lt;artistseparators&amp;gt; will only affect newly added items. A rescan won&#039;t change the existing ones. Remove the Source(s) or delete the Music DB and rebuild. This process should be made easier from v18 and up using &amp;lt;promptfulltagscan&amp;gt;}}&amp;lt;section end=&amp;quot;MusicLibrary&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Music library extra artwork ====&lt;br /&gt;
&lt;br /&gt;
New for Kodi v18.&lt;br /&gt;
Configuration to expand the artwork automatically added by Kodi to media items in the library, either from local files or online scrapers.&lt;br /&gt;
&lt;br /&gt;
The original basic artwork types are still hardcoded so they don&#039;t need to be configured here (and can&#039;t be removed). &amp;quot;thumb&amp;quot; for artists and albums, and &amp;quot;fanart&amp;quot; for artists.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
    &amp;lt;!-- ... combine with &amp;quot;musiclibrary&amp;quot; section above --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for artists --&amp;gt;&lt;br /&gt;
    &amp;lt;artistextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/artistextraart&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Additional artwork to add for albums --&amp;gt;&lt;br /&gt;
    &amp;lt;albumextraart&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;spine&amp;lt;/arttype&amp;gt;&lt;br /&gt;
      &amp;lt;arttype&amp;gt;back&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/albumextraart&amp;gt;&lt;br /&gt;
  &amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Photos settings ==&lt;br /&gt;
&lt;br /&gt;
=== pictureextensions ===&lt;br /&gt;
{{anchor|.3Cpictureextensions.3E}}&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Pictures window.&lt;br /&gt;
&lt;br /&gt;
Default extensions for PICTURES:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.png .jpg .jpeg .bmp .gif .ico .tif .tiff .tga .pcx .cbz .zip .rss .webp .jp2 .apng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/pictureextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pictureexcludes ===&lt;br /&gt;
{{anchor|.3Cpictureexcludes.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from being displayed in My Pictures using a list of &#039;&#039;[[RegEx_tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureexcludes&amp;gt;  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in My Pictures --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;small&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/pictureexcludes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== slideshow ===&lt;br /&gt;
{{anchor|.3Cslideshow.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;slideshow&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to pan images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;panamount&amp;gt;2.5&amp;lt;/panamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to zoom images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;zoomamount&amp;gt;5.0&amp;lt;/zoomamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to compensate (zoom) images to attempt to reduce black bars. --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Results in cropping of the longer length of the image in order to reduce the black bars on the shorter length of the image.  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Defaults to 20. --&amp;gt;&lt;br /&gt;
  &amp;lt;blackbarcompensation&amp;gt;20&amp;lt;/blackbarcompensation&amp;gt;  &lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network settings ==&lt;br /&gt;
&lt;br /&gt;
=== ftp ===&lt;br /&gt;
{{anchor|.3Cftp.3DE}}&lt;br /&gt;
Specific settings if a ftp server is in use as a source&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftp&amp;gt;&lt;br /&gt;
  &amp;lt;remotethumbs&amp;gt;true&amp;lt;/remotethumbs&amp;gt; &amp;lt;!-- enable extraction of flag and thumb for ftp --&amp;gt;&lt;br /&gt;
&amp;lt;/ftp&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== samba ===&lt;br /&gt;
{{anchor|.3Csamba.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;samba&amp;gt;&lt;br /&gt;
  &amp;lt;doscodepage&amp;gt;&amp;lt;/doscodepage&amp;gt;  &amp;lt;!-- code page to use for filenames --&amp;gt;&lt;br /&gt;
  &amp;lt;clienttimeout&amp;gt;10&amp;lt;/clienttimeout&amp;gt;  &amp;lt;!-- timeout (in seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;statfiles&amp;gt;true&amp;lt;/statfiles&amp;gt;  &amp;lt;!-- Set to false to disable smb stat() on files to speed up listings of large directories (over slow links) --&amp;gt;&lt;br /&gt;
&amp;lt;/samba&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hosts ===&lt;br /&gt;
{{anchor|.3Cfhosts.3E}}&lt;br /&gt;
Static dns entries which take precedence over your dns server.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hosts&amp;gt;&lt;br /&gt;
  &amp;lt;entry name=&amp;quot;HOSTNAME&amp;quot;&amp;gt;IPADDRESS&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/hosts&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== network ===&lt;br /&gt;
{{anchor|.3Cnetwork.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;network&amp;gt;&lt;br /&gt;
  &amp;lt;curlclienttimeout&amp;gt;10&amp;lt;/curlclienttimeout&amp;gt;  &amp;lt;!-- Timeout in seconds for libcurl (http/ftp) connections --&amp;gt;&lt;br /&gt;
  &amp;lt;curllowspeedtime&amp;gt;20&amp;lt;/curllowspeedtime&amp;gt;    &amp;lt;!-- Time in seconds for libcurl to consider a connection lowspeed --&amp;gt;&lt;br /&gt;
  &amp;lt;curlretries&amp;gt;2&amp;lt;/curlretries&amp;gt;               &amp;lt;!-- Amount of retries for certain failed libcurl operations (e.g. timeout) --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxyusername&amp;gt;&amp;lt;/httpproxyusername&amp;gt;    &amp;lt;!-- username for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxypassword&amp;gt;&amp;lt;/httpproxypassword&amp;gt;    &amp;lt;!-- password for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
  &amp;lt;disableipv6&amp;gt;false&amp;lt;/disableipv6&amp;gt;           &amp;lt;!-- Certain hardware/OS combinations have trouble with ipv6. Set &amp;quot;true&amp;quot; to disable --&amp;gt;&lt;br /&gt;
  &amp;lt;disablehttp2&amp;gt;false&amp;lt;/disablehttp2&amp;gt;         &amp;lt;!-- Added in v19- Allows disabling HTTP2 for broken Curl / HTTP2 servers --&amp;gt;&lt;br /&gt;
  &amp;lt;nfstimeout&amp;gt;30&amp;lt;/nfstimeout&amp;gt;                  &amp;lt;!-- Added in v19- Timeout in seconds for NFS access, 0 = wait forever (previous behaviour) default is 5s  --&amp;gt;&lt;br /&gt;
&amp;lt;/network&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In Kodi v17, the three buffer settings are removed from the &amp;lt;code&amp;gt;&amp;lt;network&amp;gt;&amp;lt;/code&amp;gt; tag and now placed under the new &amp;lt;code&amp;gt;&amp;lt;cache&amp;gt;&amp;lt;/code&amp;gt; tag. See &#039;&#039;&#039;[[#cache]]&#039;&#039;&#039; for full details.}}&lt;br /&gt;
&lt;br /&gt;
=== cache ===&lt;br /&gt;
{{see also|HOW-TO:Modify_the_video_cache}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cache&amp;gt;&lt;br /&gt;
  &amp;lt;memorysize&amp;gt;0&amp;lt;/memorysize&amp;gt;   &amp;lt;!-- Number of bytes used for buffering streams in memory when set to 0 the cache will be written to disk instead of RAM --&amp;gt;&lt;br /&gt;
  &amp;lt;buffermode&amp;gt;0&amp;lt;/buffermode&amp;gt;   &amp;lt;!-- Choose what to buffer:&lt;br /&gt;
                                    0) Buffer all internet filesystems (like &amp;quot;2&amp;quot; but additionally also ftp, webdav, etc.) (default)&lt;br /&gt;
                                    1) Buffer all filesystems (including local)&lt;br /&gt;
                                    2) Only buffer true internet filesystems (streams) (http, https, etc.)&lt;br /&gt;
                                    3) No buffer&lt;br /&gt;
                                    4) Buffer all network filesystems (incl. smb, nfs, etc.) --&amp;gt;&lt;br /&gt;
  &amp;lt;readfactor&amp;gt;4.0&amp;lt;/readfactor&amp;gt; &amp;lt;!-- This factor determines the max readrate in terms of readfactor * avg bitrate of a video file. &lt;br /&gt;
                                    This can help on bad connections to keep the cache filled. It will also greatly speed up buffering. Default value 4.0. --&amp;gt;&lt;br /&gt;
&amp;lt;/cache&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airtunesport ===&lt;br /&gt;
{{anchor|.3Cairtunesport.3E}}&amp;lt;section begin=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the defalt listening port of the AirTunes server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airplayport ===&lt;br /&gt;
{{anchor|.3Cairplayport.3E}}&amp;lt;section begin=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the default listening port of the AirPlay server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File system settings ==&lt;br /&gt;
&lt;br /&gt;
=== packagefoldersize ===&lt;br /&gt;
&amp;lt;section begin=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
{{anchor|.3Cpackagefoldersize.3E}}&lt;br /&gt;
{{xml setting&lt;br /&gt;
 | tag name = packagefoldersize&lt;br /&gt;
 | option type = numerical&lt;br /&gt;
 | option values = &lt;br /&gt;
 | default values = 200&lt;br /&gt;
 | platform = all&lt;br /&gt;
 | XBMC version = 12&lt;br /&gt;
 | description = The amount (in megabytes) of add-on zip packages saved from previous add-on installs. These packages are mainly used for the [[Add-ons|add-on]] rollback feature. Increasing the size should increase the amount of past versions saved. Defaults to 200 MB.&lt;br /&gt;
 | example = Example: &amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;packagefoldersize&amp;gt;200&amp;lt;/packagefoldersize&amp;gt; &amp;lt;!-- this example would keep up to 200MB of add-on packages. --&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== detectasudf ===&lt;br /&gt;
{{anchor|.3Cdetectasudf.3E}}&lt;br /&gt;
Set to true if you wish to detect joint ISO9660/UDF disks as UDF.  &lt;br /&gt;
&lt;br /&gt;
Default: False&lt;br /&gt;
&lt;br /&gt;
=== pathsubstitution ===&lt;br /&gt;
{{anchor|.3Cpathsubstitution.3E}}&lt;br /&gt;
{{main|Path substitution}}&lt;br /&gt;
&lt;br /&gt;
{{divbox|red||&#039;&#039;&#039;Note:&#039;&#039;&#039; Path substition for &amp;quot;sources&amp;quot; and profiles is broken, and will &#039;&#039;&#039;NOT&#039;&#039;&#039; be fixed.}}&lt;br /&gt;
&lt;br /&gt;
Path substitutions are for use for redirecting file paths.  These are processed in order, and are useful for substituting an absolute path on a PC with a path suitable for Kodi to handle.  &lt;br /&gt;
&lt;br /&gt;
Default: No path substitutions defined.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pathsubstitution&amp;gt;&lt;br /&gt;
  &amp;lt;substitute&amp;gt;&lt;br /&gt;
    &amp;lt;from&amp;gt;G:\dvds\&amp;lt;/from&amp;gt;&lt;br /&gt;
    &amp;lt;to&amp;gt;smb://somecomputer/g-share/dvds/&amp;lt;/to&amp;gt; &amp;lt;!-- Note the difference between the usage of forward and backslashes --&amp;gt;&lt;br /&gt;
  &amp;lt;/substitute&amp;gt;&lt;br /&gt;
&amp;lt;/pathsubstitution&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input control settings ==&lt;br /&gt;
&lt;br /&gt;
=== remotedelay ===&lt;br /&gt;
{{anchor|.3Cremotedelay.3E}}&lt;br /&gt;
The repeat delay for a LIRC remote control. A delay value between 1 and 20 before a remote button starts repeating on a long keypress (i.e. continuously sending button pushes while it&#039;s held down). &lt;br /&gt;
&lt;br /&gt;
Default: 3&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remotedelay&amp;gt;10&amp;lt;/remotedelay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== controllerdeadzone ===&lt;br /&gt;
{{anchor|.3Ccontrollerdeadzone.3E}}&lt;br /&gt;
This advanced settings has been removed. &lt;br /&gt;
Since v17, the [[Advancedsettings.xml#controllerdeadzone|&amp;amp;lt;controllerdeadzone&amp;amp;gt;]] advanced setting has been removed. Deadzones can now be configured by plugging in the controller and selecting it in Settings -&amp;gt; System settings -&amp;gt; Input -&amp;gt; Peripherals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== enablemultimediakeys ===&lt;br /&gt;
{{anchor|.3Cenablemultimediakeys.3E}}&lt;br /&gt;
This setting only has any effect on Windows versions of Kodi, and only applies to builds from 28th May 2011 onwards.&lt;br /&gt;
In Windows the multimedia keys generate a WM_APPCOMMAND message in addition the keypress. Kodi processes both keypresses and the WM_APPCOMMAND messages, and the end result would be that the command is executed twice. To avoid this, by default multimedia keypresses are disabled. Although it should rarely be necessary, the enablemultimediakeys setting allows you to enable the multimedia keys.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;enablemultimediakeys&amp;gt;true&amp;lt;/enablemultimediakeys&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seeksteps ===&lt;br /&gt;
{{Main|Skip steps}}&lt;br /&gt;
&lt;br /&gt;
This setting changes which increments are available in the settings GUI for additive seeking. Note that &amp;lt;code&amp;gt;&amp;lt;seeksteps&amp;gt;&amp;lt;/code&amp;gt; is not used to actually choose which seek steps are enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;seeksteps&amp;gt;7, 15, 30, 60, 180, 300, 600, 900, 1800&amp;lt;/seeksteps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{editor note|the defaults need to be updated for seeksteps.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== touchscreen ===&lt;br /&gt;
{{anchor|.3Ctouchscreen.3E}}&lt;br /&gt;
This setting allows you to move/align the origin of the touch screen with the origin of the display used. If touch input does not result in a correct movement of the mouse pointer, the behaviour can be corrected with an offset and a stretch/compress factor.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;touchscreen&amp;gt;&lt;br /&gt;
		&amp;lt;x_offset&amp;gt;0&amp;lt;/x_offset&amp;gt; &amp;lt;!-- set pixel x offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;y_offset&amp;gt;0&amp;lt;/y_offset&amp;gt; &amp;lt;!-- set pixel y offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;x_stretch_factor&amp;gt;1.0&amp;lt;/x_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch x axis--&amp;gt;&lt;br /&gt;
		&amp;lt;y_stretch_factor&amp;gt;1.0&amp;lt;/y_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch y axis--&amp;gt;&lt;br /&gt;
    &amp;lt;/touchscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== scanirserver ===&lt;br /&gt;
Introduced in v18 and used in MS Windows setups only.&amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/pull/13896&amp;lt;/ref&amp;gt;&lt;br /&gt;
Used to disable the regular connection attempts to the IR Server Suite when there is no remote to connect to.&lt;br /&gt;
&lt;br /&gt;
The default setting is to allow connection attempts. To disable connection attempts change value to &#039;&#039;&#039;false&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;scanirserver&amp;gt;true&amp;lt;/scanirserver&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other interface settings ==&lt;br /&gt;
&lt;br /&gt;
=== window ===&lt;br /&gt;
{{anchor|.3Cwindow.3E}}&lt;br /&gt;
{{note|This is a &amp;quot;hidden&amp;quot; guisettings.xml setting (defined by the mouse moving the window size), but it is mentioned here because it is a particularly useful override when used in advancedsettings.xml}}&lt;br /&gt;
This allows you to manually set the default size of Kodi&#039;s windowed mode.  If you resize the window, it will return to the set size when restarting.&lt;br /&gt;
&lt;br /&gt;
WIDTH and HEIGHT are the values for each dimension, in pixels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;window&amp;gt;&lt;br /&gt;
    &amp;lt;width&amp;gt;WIDTH&amp;lt;/width&amp;gt;&lt;br /&gt;
    &amp;lt;height&amp;gt;HEIGHT&amp;lt;/height&amp;gt;&lt;br /&gt;
&amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== restrictcapsmask ===&lt;br /&gt;
{{anchor|.3Crestrictcapsmask.3E}}&lt;br /&gt;
Windows only. A bitmask to prevent Kodi from using detected texture capabilities of the GPU. This helps work around buggy hardware/drivers.&lt;br /&gt;
&lt;br /&gt;
1: prevent the use of compressed textures (DXT1, DXT3, DXT5)&lt;br /&gt;
2: prevent the use of non-power-of-two dimensions for textures&lt;br /&gt;
4: prevent the use of compressed textures with non-power-of-two dimensions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;restrictcapsmask&amp;gt;0&amp;lt;/restrictcapsmask&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== algorithmdirtyregions ===&lt;br /&gt;
{{anchor|.3Calgorithmdirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;{{note|Some GPU/hardware configurations will have some minor issues (such as a visual &amp;quot;flicker&amp;quot;). For those situations try mode 2 or use the default (mode 3, which requires no advancedsetting). Almost all ARM-based devices (such as [[Android]]) willl likely have flickering issues.}}&lt;br /&gt;
 &lt;br /&gt;
Enable dirty-region processing. Dirty regions are any parts of the screen that have changed since the last frame. By not re-rendering what hasn&#039;t changed the GUI can be sped up. Because all GPUs work differently, only Mode 3 is guaranteed to work for everyone without flickering issues. This mode will reduce CPU/GPU usage, but will not increase GUI speed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! value !! result !! description&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| Off&lt;br /&gt;
| The entire viewport is always rendered.&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
|Union&lt;br /&gt;
|All dirty regions are grouped into the smallest possible rectangle. This is typically the fastest mode for slower GPUs due to only making one pass.&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| {{nowrap|Cost reduction}}&lt;br /&gt;
| Each dirty region is presented separately, in as many passes as there are regions.&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| {{nowrap|Whole Screen}}&lt;br /&gt;
| The entire screen is rendered if there are any dirty regions. This is a safe default for drivers that clear buffer contents (manifests as blinking or vibrating images). &#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|}&amp;lt;section end=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;algorithmdirtyregions&amp;gt;1&amp;lt;/algorithmdirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== visualizedirtyregions ===&lt;br /&gt;
{{anchor|.3Cvisualizedirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;Enable dirty-region visualization. Paints a rectangle over marked controls.&lt;br /&gt;
&lt;br /&gt;
* true: on&lt;br /&gt;
* false: off &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{note|This is only a development mode and isn&#039;t of use to normal users.}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;visualizedirtyregions&amp;gt;true&amp;lt;/visualizedirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== smartredraw ===&lt;br /&gt;
&lt;br /&gt;
{{note|This is an experimental feature and you might face issues using it. So please be aware of that.}}&lt;br /&gt;
&lt;br /&gt;
This new feature was introduced in Kodi 18 and if enabled, the GUI process call (and therefore the render call) is only done if anything has changed. The result will be a faster GUI and less load if Kodi plays a video&lt;br /&gt;
&lt;br /&gt;
* true: on&lt;br /&gt;
* false: off &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;smartredraw&amp;gt;true&amp;lt;/smartredraw&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== showexitbutton ===&lt;br /&gt;
{{anchor|.3Cshowexitbutton.3E}}&lt;br /&gt;
Setting to hide the exit button, useful for people running appliance based setups where exit would only confuse/complicate the user. Modifiable via the advancedsettings.xml by setting showexitbutton to false, default is true (show)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;showexitbutton&amp;gt;true&amp;lt;/showexitbutton&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== fullscreen ===&lt;br /&gt;
{{anchor|.3Cfullscreen.3E}}&lt;br /&gt;
Starts Kodi in full screen (check resolutions!).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fullscreen&amp;gt;false&amp;lt;/fullscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== splash ===&lt;br /&gt;
{{anchor|.3Csplash.3E}}&lt;br /&gt;
Set to false if you wish to disable the startup splash image. Defaults to true.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;splash&amp;gt;true&amp;lt;/splash&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== cputempcommand ===&lt;br /&gt;
{{anchor|.3Ccputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get CPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia and Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sed -e &#039;s/\([0-9]*\)[0-9]\{3\}.*/\1 C/&#039; /sys/class/thermal/thermal_zone0/temp&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;echo &amp;quot;$(sensors -u | tail -n64 | grep temp1_input | awk &#039;{print $2 }&#039; |awk &#039;{printf(&amp;quot;%d\n&amp;quot;,$1 + 0.5);}&#039;) C&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sensors|sed -ne &amp;quot;s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== gputempcommand ===&lt;br /&gt;
{{anchor|.3Cgputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get GPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-settings -tq gpuCoreTemp) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-smi -q -d TEMPERATURE | grep Gpu | cut -c35-36) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d &amp;quot;-&amp;quot; | cut -f 1 -d &amp;quot;.&amp;quot; | sed -e &amp;quot;s, ,,&amp;quot; | sed &#039;s/$/ C/&#039;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;u&amp;gt;For Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/opt/vc/bin/vcgencmd measure_temp | sed -e &amp;quot;s/temp=//&amp;quot; -e &amp;quot;s/\..*&#039;/ /&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== glrectanglehack ===&lt;br /&gt;
{{anchor|.3Cglrectanglehack.3E}}&lt;br /&gt;
Problems with ghosting or videos which are only played back in the left upper quarter? The following ATI hack may solve it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;glrectanglehack&amp;gt;yes&amp;lt;/glrectanglehack&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== alwaysontop ===&lt;br /&gt;
{{anchor|.3Calwaysontop.3E}}&lt;br /&gt;
Added in XBMC v9.11 (Windows OS only). Keeps Kodi always on top when windowed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;alwaysontop&amp;gt;yes&amp;lt;/alwaysontop&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a fake fullscreen GUI option in Kodi&#039;s settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Removed tags =&lt;br /&gt;
{{anchor|Recently removed tags}}&lt;br /&gt;
* {{anchor|.3Cthumbsize.3E}}&#039;&#039;&#039;&amp;lt;thumbsize&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#imageres|imageres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cfanartheight.3E}}&#039;&#039;&#039;&amp;lt;fanartheight&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#fanartres|fanartres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cdvdthumbs.3E}}&#039;&#039;&#039;&amp;lt;dvdthumbs&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbusydialogdelayms.3E}}&#039;&#039;&#039;&amp;lt;busydialogdelayms&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbginfoloadermaxthreads.3E}}&#039;&#039;&#039;&amp;lt;bginfoloadermaxthreads&amp;gt;&#039;&#039;&#039; - removed in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;showepginfoonselect&amp;gt;&#039;&#039;&#039; - replaced by a GUI setting in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;resample&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;forceDirectSound&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiophile&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiosinkbufferdurationmsec&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;allowtranscode44100&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;streamsilence&amp;gt;&#039;&#039;&#039; - These were various sub-tags for &amp;lt;audio&amp;gt; that were removed in v13 Gotham and either replaced by GUI settings or were no longer needed.&lt;br /&gt;
* {{anchor|.3Cenableairtunesdebuglog.3E}}&#039;&#039;&#039;&amp;lt;enableairtunesdebuglog&amp;gt;&#039;&#039;&#039; - replaced by a GUI option in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videoDisableHi10pMultithreading&amp;gt;&#039;&#039;&#039; - renamed to &amp;lt;disableswmultithreading&amp;gt; in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideallitems&amp;gt;&#039;&#039;&#039; - For both the &amp;lt;code&amp;gt;&amp;lt;videolibrary&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;musiclibrary&amp;gt;&amp;lt;/code&amp;gt; sections, this is replaced by a GUI option in v15 Isengard&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;SmallStepBackSeconds&amp;gt;&#039;&#039;&#039; - In v15 the &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; [[Action_IDs]] has been replaced by &amp;lt;code&amp;gt;seek(-7)&amp;lt;/code&amp;gt; in default keymaps. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details. When the original &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; action ID is used it defaults to the first backwards [[skip steps|additive seeking value]].&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;timeseekforward&amp;gt;/&amp;lt;timeseekbackward&amp;gt;&#039;&#039;&#039; - In v15 these tags are replaced by GUI options via [[skip steps|additive seeking]], which is configured in the GUI. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details.&lt;br /&gt;
* {{anchor|.3Ckaraoke.3E}}&#039;&#039;&#039;&amp;lt;karaoke&amp;gt;&#039;&#039;&#039; - In v16 all of the karaoke features in Kodi were removed.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useddsfanart&amp;gt;&#039;&#039;&#039; - removed in v17 Krypton.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;readbufferfactor&amp;gt;&#039;&#039;&#039; - In v17 &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; is renamed to &#039;&#039;&#039;&amp;lt;memorysize&amp;gt;&#039;&#039;&#039; and &amp;lt;code&amp;gt;&amp;lt;readbufferfactor&amp;gt;&amp;lt;/code&amp;gt; is renamed to &amp;lt;code&amp;gt;&amp;lt;readfactor&amp;gt;&amp;lt;/code&amp;gt;. In addition, all three buffer related settings in &amp;lt;network&amp;gt; are moved out of &amp;lt;network&amp;gt; and into a new &amp;lt;cache&amp;gt; parent tag.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;minvideocachelevel&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;minaudiocachelevel&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;cacheindvdplayer&amp;gt;&#039;&#039;&#039; have been removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useffmpegvda&amp;gt;&#039;&#039;&#039; - Tag was only used for development testing. Removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nofliptimeout&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;blackbarcolour&amp;gt;&#039;&#039;&#039; - Removed in v17 (maybe?)&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;disableswmultithreading&amp;gt;&#039;&#039;&#039; - Removed in v17 (maybe?)&lt;br /&gt;
* {{anchor|.3Cmeasurerefreshrate.3E}}&#039;&#039;&#039;&amp;lt;measurerefreshrate&amp;gt;&#039;&#039;&#039; - Removed in v17 or v18?&lt;br /&gt;
* {{anchor|.3Cmyth.3E}}&#039;&#039;&#039;&amp;lt;myth&amp;gt;&#039;&#039;&#039; - Removed sometime between v16 to v18&lt;br /&gt;
* {{anchor|.3Ctuxbox.3E}}&#039;&#039;&#039;&amp;lt;tuxbox&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;backgroundupdate&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideemptyseries&amp;gt;&#039;&#039;&#039; - Replaced by a GUI option.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;mymovies&amp;gt;&#039;&#039;&#039; and child tag &#039;&#039;&#039;&amp;lt;categoriestogenres&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;albumssortbyartistthenyear&#039;&#039;&#039;&amp;gt; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;albumformatright&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* {{anchor|.3Cremoterepeat.3E}}&#039;&#039;&#039;&amp;lt;remoterepeat&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* {{anchor|.3Callowd3d9ex.3E}}&#039;&#039;&#039;&amp;lt;allowd3d9ex&amp;gt;&#039;&#039;&#039; and {{anchor|.3Cforced3d9ex.3E}}&#039;&#039;&#039;&amp;lt;forced3d9ex&amp;gt;&#039;&#039;&#039; - Removed sometime between v16 to v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;lingertime&amp;gt;&#039;&#039;&#039; - Replaced by a GUI setting in v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;forcevaapienabled&amp;gt;&#039;&#039;&#039; - Removed in v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;promptfulltagscan&amp;gt;false&amp;lt;/promptfulltagscan&amp;gt;&#039;&#039;&#039; Removed in v18. Now automatically asked each time a scan is conducted.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;controllerdeadzone&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;omxdecodestartwithvalidframe&amp;gt;&#039;&#039;&#039; - This tag is only in some Raspberry Pi specific distributions, such as OpenELEC. As of March 2015, this tag has not been merged into &amp;quot;vanilla&amp;quot; Kodi builds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= guisettings.xml Setting Conversion =&lt;br /&gt;
It is possible to convert settings found in the &#039;&#039;&#039;[[Settings]]&#039;&#039;&#039; &#039;&#039;(guisettings.xml)&#039;&#039; pages of {{kodi}} into entries for the advancedsettings.xml file.&lt;br /&gt;
&lt;br /&gt;
When a setting from the guisettings.xml is added to the advancedsettings.xml file, it will override the existing guisettings.xml values and the setting will be removed from the settings pages.&lt;br /&gt;
&lt;br /&gt;
Why would I need to do this?&lt;br /&gt;
* You set up multiple devices and then need to individually change settings and preferences on each device. Using this conversion method, you save those settings in the advancedsettings.xml file and simply add the file to each device&lt;br /&gt;
* You need to hide settings to prevent those settings from being modified&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To convert a guisetting to advancedsettings.xml follow these steps:&lt;br /&gt;
# In the {{kodi}} settings pages, adjust the setting(s) to your preference.&lt;br /&gt;
# Back out of the settings pages to the main menu, which forces {{kodi}} to save the adjusted settings to the guisettings.xml file&lt;br /&gt;
# Locate the guisettings.xml file in the [[Userdata]] folder and open it&lt;br /&gt;
# Locate the setting(s) to be converted. The list can be overwhelming so make use of the Search feature of whichever editor you are using&lt;br /&gt;
# Using the following setting as an example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;setting id=&amp;quot;videolibrary.showemptytvshows&amp;quot;&amp;gt;true&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
: Breaking down the string:&lt;br /&gt;
::&#039;&#039;&#039;videolibrary&#039;&#039;&#039;- parent tag&lt;br /&gt;
::&#039;&#039;&#039;showemptytvshows&#039;&#039;&#039;- child tag&lt;br /&gt;
::&#039;&#039;&#039;true&#039;&#039;&#039;- value&lt;br /&gt;
: The conversion is as follows and place this in the advancedsettings.xml file&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
          &amp;lt;showemptytvshows&amp;gt;true&amp;lt;/showemptytvshows&amp;gt;&lt;br /&gt;
     &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Some parent tags may already be in use in your advancedsettings.xml file. Do not duplicate them, but add the child tag beneath the existing parent tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Updated|18}}&lt;br /&gt;
{{DISPLAYTITLE:advancedsettings.xml}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Settings]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=List_of_Built_In_Controls&amp;diff=219130</id>
		<title>List of Built In Controls</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=List_of_Built_In_Controls&amp;diff=219130"/>
		<updated>2020-08-05T06:19:54Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* DialogSelect.xml */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
== .xml files ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== AddonBrowser.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||radiobutton ||Enable auto-updating of the installed add-on&#039;s&lt;br /&gt;
|-&lt;br /&gt;
|6 ||radiobutton ||Enable add-on notifications&lt;br /&gt;
|-&lt;br /&gt;
|7 ||radiobutton ||Enable language filter&lt;br /&gt;
|-&lt;br /&gt;
|8 ||radiobutton ||Hide broken addons&lt;br /&gt;
|-&lt;br /&gt;
|9 ||button ||Check for repo updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogAddonInfo.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Install the selected add-on&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||Disable the selected add-on&lt;br /&gt;
|-&lt;br /&gt;
|8 ||button ||Update the selected add-on&lt;br /&gt;
|-&lt;br /&gt;
|9 ||button ||Show the settings of the selected add-on&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||Show the dependencies of the selected add-on&lt;br /&gt;
|-&lt;br /&gt;
|12 ||button ||Run the selected add-on&lt;br /&gt;
|-&lt;br /&gt;
|13 ||radiobutton ||Auto-update&lt;br /&gt;
|-&lt;br /&gt;
|50 ||container ||List of available screenshots&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogAddonSettings.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|3 ||grouplist ||Grouplist template&lt;br /&gt;
|-&lt;br /&gt;
|5 ||grouplist ||Grouplist template&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||Button template&lt;br /&gt;
|-&lt;br /&gt;
|8 ||radiobutton ||Radiobutton template&lt;br /&gt;
|-&lt;br /&gt;
|9 ||spincontrolex ||Spincontrolex template &lt;br /&gt;
|-&lt;br /&gt;
|10 ||togglebutton ||Togglebutton template&lt;br /&gt;
|-&lt;br /&gt;
|11 ||image ||Default separator image&lt;br /&gt;
|-&lt;br /&gt;
|12 ||edit ||Edit template&lt;br /&gt;
|-&lt;br /&gt;
|13 ||sliderex ||Slider template&lt;br /&gt;
|-&lt;br /&gt;
|14 ||label ||Label template&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|29 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|30 ||button ||&amp;lt;unused button&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogAudioDSPManager.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|20 ||container ||List with available options&lt;br /&gt;
|-&lt;br /&gt;
|21 ||container ||List with active options&lt;br /&gt;
|-&lt;br /&gt;
|22 ||radiobutton ||Continuous save button&lt;br /&gt;
|-&lt;br /&gt;
|23 ||button ||Apply button&lt;br /&gt;
|-&lt;br /&gt;
|24 ||button ||Clear button&lt;br /&gt;
|-&lt;br /&gt;
|9000 ||container ||List with available modes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogBusy.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|10 ||progress ||Progress bar&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogButtonMenu.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|3100 ||label ||Label of the focused button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogConfirm.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|1 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|9 ||textbox ||Message&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||No button&lt;br /&gt;
|-&lt;br /&gt;
|11 ||button ||Yes button&lt;br /&gt;
|-&lt;br /&gt;
|12 ||button ||(for future use)&lt;br /&gt;
|-&lt;br /&gt;
|20 ||progress ||Progress bar&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogContextMenu.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|999 ||image ||Background image of the context menu (center part) (deprecated)&lt;br /&gt;
|-&lt;br /&gt;
|998 ||image ||Background image of the context menu (bottom part) (deprecated)&lt;br /&gt;
|-&lt;br /&gt;
|997 ||image ||Background image of the context menu (top part) (deprecated)&lt;br /&gt;
|-&lt;br /&gt;
|996 ||grouplist || Grouplist template&lt;br /&gt;
|-&lt;br /&gt;
|999 ||image ||Background image of the context menu&lt;br /&gt;
|-&lt;br /&gt;
|1000 ||button ||Button template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogExtendedProgressBar.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|30 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|31 ||label ||Line 1&lt;br /&gt;
|-&lt;br /&gt;
|32 ||progress ||Scan progress bar&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogGameControllers.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|3 ||grouplist ||List of controller types&lt;br /&gt;
|-&lt;br /&gt;
|5 ||grouplist ||List of feature types&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||Button template&lt;br /&gt;
|-&lt;br /&gt;
|8 ||label ||Settings category label template&lt;br /&gt;
|-&lt;br /&gt;
|9 ||image ||Settings separator image template&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||Button template&lt;br /&gt;
|-&lt;br /&gt;
|17 ||button ||Help button&lt;br /&gt;
|-&lt;br /&gt;
|18 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|19 ||button ||Reset button&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||Get more... button&lt;br /&gt;
|-&lt;br /&gt;
|21 ||button ||Ignore input button&lt;br /&gt;
|-&lt;br /&gt;
|22 ||button ||Get all button&lt;br /&gt;
|-&lt;br /&gt;
|31 ||gamecontroller ||Gamecontroller image template&lt;br /&gt;
|-&lt;br /&gt;
|32 ||textbox ||Controller description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogFavourites.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|450 ||container ||List of available favourites&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogKeyboard.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|8 ||button ||Backspace button&lt;br /&gt;
|-&lt;br /&gt;
|100 – 111 ||button ||Digits 0 – 9&lt;br /&gt;
|-&lt;br /&gt;
|120 – 171 ||button ||Characters A – Z&lt;br /&gt;
|-&lt;br /&gt;
|300 ||button ||Done Button&lt;br /&gt;
|-&lt;br /&gt;
|301 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|302 ||radiobutton ||Shift button&lt;br /&gt;
|-&lt;br /&gt;
|303 ||radiobutton ||Caps-Lock button&lt;br /&gt;
|-&lt;br /&gt;
|304 ||radiobutton ||Switch to symbols&lt;br /&gt;
|-&lt;br /&gt;
|305 ||button ||Navigate left button&lt;br /&gt;
|-&lt;br /&gt;
|306 ||button ||Navigate right button&lt;br /&gt;
|-&lt;br /&gt;
|307 ||button ||Enter IP address button&lt;br /&gt;
|-&lt;br /&gt;
|309 ||button ||Layout button&lt;br /&gt;
|-&lt;br /&gt;
|311 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|312 ||edit ||Label displaying the text being entered&lt;br /&gt;
|-&lt;br /&gt;
|313 ||label ||Label displaying the text being entered (when keyboard layout is Chinese)&lt;br /&gt;
|-&lt;br /&gt;
|314 ||label ||Label displaying the available choices (when keyboard layout is Chinese)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogMediaSource.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|10 ||container ||List of added media sources&lt;br /&gt;
|-&lt;br /&gt;
|11 ||button ||Browse for location button&lt;br /&gt;
|-&lt;br /&gt;
|12 ||edit ||Button for entering the name for the selected source&lt;br /&gt;
|-&lt;br /&gt;
|13 ||button ||Add new source button&lt;br /&gt;
|-&lt;br /&gt;
|14 ||button ||Delete source button&lt;br /&gt;
|-&lt;br /&gt;
|18 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|19 ||button ||Cancel button (unused)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogMusicInfo.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Refresh artist information / Refresh album information&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||User rating&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||Get artist thumbnail / Get album thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|11 ||button ||Connect to the Last.fm radio channel for this artist&lt;br /&gt;
|-&lt;br /&gt;
|12 ||button ||Get artist fanart image&lt;br /&gt;
|-&lt;br /&gt;
|13 ||button ||Get song thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|50 ||container || Discography of the selected artist / tracks on the selected album / contributors on the selected song&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogNotification.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|400 ||image ||Default Icon&lt;br /&gt;
|-&lt;br /&gt;
|401 ||label ||Heading text&lt;br /&gt;
|-&lt;br /&gt;
|402 ||label ||Message text&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogNumeric.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|1 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|4 ||label ||Label displaying the digits being entered&lt;br /&gt;
|-&lt;br /&gt;
|10 – 19 ||button ||Digits 0 – 9&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||Navigate left button&lt;br /&gt;
|-&lt;br /&gt;
|21 ||button ||Enter Button&lt;br /&gt;
|-&lt;br /&gt;
|22 ||button ||Navigate right button&lt;br /&gt;
|-&lt;br /&gt;
|23 ||button ||Backspace button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogPictureInfo.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|5 ||container ||List of the available exif information of the image currently being displayed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogPVRChannelManager.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|4 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|5 ||button ||Apply button&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|7 ||radiobutton ||Activate channel button&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|8 ||edit ||Channel name&lt;br /&gt;
|-&lt;br /&gt;
|9 ||button ||Channel logo&lt;br /&gt;
|-&lt;br /&gt;
|11 ||spincontrolex ||Select group&lt;br /&gt;
|-&lt;br /&gt;
|12 ||radiobutton ||Activate EPG&lt;br /&gt;
|-&lt;br /&gt;
|13 ||spincontrolex ||Select EPG source button&lt;br /&gt;
|-&lt;br /&gt;
|30 ||button ||Switch to group management&lt;br /&gt;
|-&lt;br /&gt;
|31 ||button ||New channel&lt;br /&gt;
|-&lt;br /&gt;
|34 ||button ||Toggle radio / tv channels&lt;br /&gt;
|-&lt;br /&gt;
|20 ||container ||Channel list&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogPVRChannelsOSD.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|11 ||container ||Channels list&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogPVRGroupManager.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|11 ||container ||Ungrouped channels&lt;br /&gt;
|-&lt;br /&gt;
|12 ||container ||Grouped channels&lt;br /&gt;
|-&lt;br /&gt;
|13 ||container ||Group list&lt;br /&gt;
|-&lt;br /&gt;
|25 ||radiobutton ||Hide / Unhide button&lt;br /&gt;
|-&lt;br /&gt;
|26 ||button ||Add button&lt;br /&gt;
|-&lt;br /&gt;
|27 ||button ||Rename button&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||Delete button&lt;br /&gt;
|-&lt;br /&gt;
|29 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|34 ||togglebutton ||Switch between TV / Radio&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogPVRChannelGuide.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|11 ||container ||Guide list&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogPVRGuideSearch.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|9 ||edit ||Search string&lt;br /&gt;
|-&lt;br /&gt;
|10 ||radiobutton ||Include description&lt;br /&gt;
|-&lt;br /&gt;
|11 ||radiobutton ||Case sensitive&lt;br /&gt;
|-&lt;br /&gt;
|12 ||spincontrolex ||Minimal duration&lt;br /&gt;
|-&lt;br /&gt;
|13 ||spincontrolex ||Maximal duration&lt;br /&gt;
|-&lt;br /&gt;
|14 ||edit ||Start date&lt;br /&gt;
|-&lt;br /&gt;
|15 ||edit ||End date&lt;br /&gt;
|-&lt;br /&gt;
|16 ||edit ||Start time&lt;br /&gt;
|-&lt;br /&gt;
|17 ||edit ||End Time&lt;br /&gt;
|-&lt;br /&gt;
|18 ||spincontrolex ||Genre&lt;br /&gt;
|-&lt;br /&gt;
|19 ||radiobutton ||Avoid repeats&lt;br /&gt;
|-&lt;br /&gt;
|20 ||radiobutton ||Unknown genres &lt;br /&gt;
|-&lt;br /&gt;
|21 ||spincontrolex ||Groups&lt;br /&gt;
|-&lt;br /&gt;
|22 ||radiobutton ||FTA &lt;br /&gt;
|-&lt;br /&gt;
|23 ||spincontrolex ||Channels&lt;br /&gt;
|-&lt;br /&gt;
|24 ||radiobutton ||Ignore timers&lt;br /&gt;
|-&lt;br /&gt;
|25 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|26 ||button ||Search button&lt;br /&gt;
|-&lt;br /&gt;
|27 ||radiobutton ||Ignore recordings&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||Defaults button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogPVRInfo.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|4 ||button ||Similar button&lt;br /&gt;
|-&lt;br /&gt;
|5 ||button ||Switch to channel button&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Record button&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|8 ||button ||Play button&lt;br /&gt;
|-&lt;br /&gt;
|9 ||button ||Add timer button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogSeekBar.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|401 ||slider ||Marker representing the current seek position&lt;br /&gt;
|-&lt;br /&gt;
|402 ||label ||Time label displaying current seek position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogSelect.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|1 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Number of items in the list&lt;br /&gt;
|-&lt;br /&gt;
|3 ||container ||List of available options&lt;br /&gt;
|-&lt;br /&gt;
|5 ||button ||OK (on multiple selection) or Manual/Get More... button&lt;br /&gt;
|-&lt;br /&gt;
|6 ||container ||List of available add-ons&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|8 ||button || Add/Get More... button&lt;br /&gt;
|-&lt;br /&gt;
|11 ||container ||List with game video thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|12 ||textbox ||Description of the currently-selected video filter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DialogSettings.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Header label&lt;br /&gt;
|-&lt;br /&gt;
|5 ||grouplist ||Grouplist template&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||button template&lt;br /&gt;
|-&lt;br /&gt;
|8 ||radiobutton ||radiobutton template&lt;br /&gt;
|-&lt;br /&gt;
|9 ||spincontrolex ||spincontrolex template&lt;br /&gt;
|-&lt;br /&gt;
|11 ||image ||image template&lt;br /&gt;
|-&lt;br /&gt;
|12 ||edit ||edit template&lt;br /&gt;
|-&lt;br /&gt;
|13 ||sliderex ||sliderex template&lt;br /&gt;
|-&lt;br /&gt;
|14 ||label ||label template&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||ok button&lt;br /&gt;
|-&lt;br /&gt;
|29 ||button ||cancel button&lt;br /&gt;
|-&lt;br /&gt;
|30 ||button ||clear/settings button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogSlider.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|10 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|11 ||slider ||Slider&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Label representing the slider value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogSubtitles.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|100 ||label ||Name of subtitle service&lt;br /&gt;
|-&lt;br /&gt;
|110 ||image ||Logo of subtitle service&lt;br /&gt;
|-&lt;br /&gt;
|120 ||container ||List of available subtitles&lt;br /&gt;
|-&lt;br /&gt;
|130 ||label ||Local subtitle available&lt;br /&gt;
|-&lt;br /&gt;
|140 ||label ||Number of available subtitles&lt;br /&gt;
|-&lt;br /&gt;
|150 ||container ||List of available subtitle services&lt;br /&gt;
|-&lt;br /&gt;
|160 ||button ||Manual search buttom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogTextViewer.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|5 ||textbox ||Text area for add-on output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DialogVideoInfo.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|3 ||image ||Video thumb&lt;br /&gt;
|-&lt;br /&gt;
|4 ||textbox ||Text area for displaying the video plot&lt;br /&gt;
|-&lt;br /&gt;
|5 ||button ||Toggle between video review and cast members (Deprecated)&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Refresh video information&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||User rating&lt;br /&gt;
|-&lt;br /&gt;
|8 ||button ||Play video&lt;br /&gt;
|-&lt;br /&gt;
|9 ||button ||Resume video&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||Get video Fanart, Poster, Banner, or Thumb&lt;br /&gt;
|-&lt;br /&gt;
|11 ||button ||Play movie trailer&lt;br /&gt;
|-&lt;br /&gt;
|13 ||button ||Show all movies by the director of the selected movie&lt;br /&gt;
|-&lt;br /&gt;
|50 ||container ||List of cast members of the currently selected movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== EventLog.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||Clear button&lt;br /&gt;
|-&lt;br /&gt;
|21 ||button ||Level button&lt;br /&gt;
|-&lt;br /&gt;
|22 ||radiobutton ||Only show current level radiobutton&lt;br /&gt;
|-&lt;br /&gt;
|50 ||container ||Container with event loglines&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FileBrowser.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|450 ||container ||Directory list&lt;br /&gt;
|-&lt;br /&gt;
|451 ||container ||List of available thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|411 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|412 ||label ||Path of the selected item&lt;br /&gt;
|-&lt;br /&gt;
|413 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|414 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|415 ||button ||Create folder&lt;br /&gt;
|-&lt;br /&gt;
|416 ||radiobutton ||Flip Image horizontally &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FileManager.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Number of items in directory list 1&lt;br /&gt;
|-&lt;br /&gt;
|13 ||label ||Number of items in directory list 2&lt;br /&gt;
|-&lt;br /&gt;
|20 ||container ||Directory list 1&lt;br /&gt;
|-&lt;br /&gt;
|21 ||container ||Directory list 2&lt;br /&gt;
|-&lt;br /&gt;
|101 ||label ||Path of the currently selected directory in list 1&lt;br /&gt;
|-&lt;br /&gt;
|102 ||label ||Path of the currently selected directory in list 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GameOSD.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|1101 ||label ||Help text&lt;br /&gt;
|-&lt;br /&gt;
|1102 ||gamecontroller ||Controller layout&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LoginScreen.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|3 ||label ||Number of the currently selected profile&lt;br /&gt;
|-&lt;br /&gt;
|52 ||container ||List of the available profiles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MusicOSD.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|500 ||button ||Select visualization&lt;br /&gt;
|-&lt;br /&gt;
|501 ||button ||Lock visualization to the current preset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MusicVisualisation.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||visualisation ||Background Visualization&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MyMusicNav.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||radiobutton ||Switch to file mode&lt;br /&gt;
|-&lt;br /&gt;
|8 ||edit ||Search for a string anywhere in the Kodi music database&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Number of items in the list&lt;br /&gt;
|-&lt;br /&gt;
|15 ||label ||Filter label&lt;br /&gt;
|-&lt;br /&gt;
|16 ||radiobutton ||Start party mode (randomly play songs from your entire music collection)&lt;br /&gt;
|-&lt;br /&gt;
|17 ||button ||Manually enter artist and album name to lookup the artist and album information on the internet&lt;br /&gt;
|-&lt;br /&gt;
|18 ||label ||Warning to the user to turn off library mode when no scanned media is found&lt;br /&gt;
|-&lt;br /&gt;
|19 ||radiobutton / edit||Filter the media files to only show items that include the specified string in the name&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||Update library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MyMusicPlaylistEditor.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Load the playlist&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||Save the playlist&lt;br /&gt;
|-&lt;br /&gt;
|8 ||button ||Clear the playlist&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Number of items in the current directory or library list&lt;br /&gt;
|-&lt;br /&gt;
|XX ||container ||List allowing you to browse your directories and music library&lt;br /&gt;
|-&lt;br /&gt;
|100 ||container ||List of songs in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|101 ||label ||Number of items in the playlist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MyPics.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Start a picture slideshow&lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||Start a recursive picture slideshow&lt;br /&gt;
|-&lt;br /&gt;
|9 ||radiobutton ||Randomize the picture slideshow&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Number of items in the list&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MyPlaylist.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Number of items in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|20 ||radiobutton ||Shuffle the playlist&lt;br /&gt;
|-&lt;br /&gt;
|21 ||button ||Save the playlist&lt;br /&gt;
|-&lt;br /&gt;
|22 ||button ||Clear the playlist&lt;br /&gt;
|-&lt;br /&gt;
|23 ||button ||Play the playlist&lt;br /&gt;
|-&lt;br /&gt;
|24 ||button ||Play the next item in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|25 ||button ||Play the previous item in the playlist&lt;br /&gt;
|-&lt;br /&gt;
|26 ||button ||Put the playlist on repeat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MyPrograms.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Number of items in the list&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MyPVRChannels.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|6 ||radiobutton ||Show hidden channels&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||Channel groups button&lt;br /&gt;
|-&lt;br /&gt;
|29 ||label ||Channel groups name&lt;br /&gt;
|-&lt;br /&gt;
|31 ||radiobutton ||Filter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MyPVRGuide.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|10 ||epggrid ||EPG Guide Timeline&lt;br /&gt;
|-&lt;br /&gt;
|11 ||container ||Channel groups selector&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||Channel groups button&lt;br /&gt;
|-&lt;br /&gt;
|29 ||label ||View name (Now / Next / Timeline)&lt;br /&gt;
|-&lt;br /&gt;
|30 ||label ||Channel groups name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MyPVRRecordings.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||radiobutton ||Group items by folder structure&lt;br /&gt;
|-&lt;br /&gt;
|7 ||radiobutton ||Show deleted recordings&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||Show only watched, unwatched or all recordings &lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||Channelgroups button&lt;br /&gt;
|-&lt;br /&gt;
|29 ||label ||&#039;Deleted&#039; (When show deleted recordings is enabled, otherwise empty)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MyPVRSearch.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||Channel groups button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MyPVRTimers.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|8 ||radiobutton ||Hide disabled timers&lt;br /&gt;
|-&lt;br /&gt;
|28 ||button ||Channel groups button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MyVideoNav.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Select viewtype (list, thumbnail, media info, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Select sort method (sort by: name, date size, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|4 ||togglebutton ||Select sortmode (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|5 ||button ||Switch to file mode&lt;br /&gt;
|-&lt;br /&gt;
|6 ||button ||Play DVD (used the play physical DVD discs)&lt;br /&gt;
|-&lt;br /&gt;
|8 ||button ||Search for a string anywhere in the Kodi video database&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||Show only watched, unwatched or all videos&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Number of items in the list&lt;br /&gt;
|-&lt;br /&gt;
|14 ||button ||Show only unwatched or all videos&lt;br /&gt;
|-&lt;br /&gt;
|11 ||button ||Unlock shares&lt;br /&gt;
|-&lt;br /&gt;
|15 ||label ||Filter label&lt;br /&gt;
|-&lt;br /&gt;
|16 ||button ||Start party mode (randomly play musicvideos from your collection)&lt;br /&gt;
|-&lt;br /&gt;
|18 ||label ||Warning to the user to turn off library mode when no scanned media is found&lt;br /&gt;
|-&lt;br /&gt;
|19 ||radiobutton / edit ||Filter the media files to only show items that include the specified string in the name&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||Update library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MyWeather.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Refresh the weather information&lt;br /&gt;
|-&lt;br /&gt;
|3 ||spincontrolex ||Change weather location&lt;br /&gt;
|-&lt;br /&gt;
|11 ||label ||Shows the time of last weather update&lt;br /&gt;
|-&lt;br /&gt;
|31 ||label ||Current day label&lt;br /&gt;
|-&lt;br /&gt;
|32 ||label ||Today&#039;s high temperature value&lt;br /&gt;
|-&lt;br /&gt;
|33 ||label ||Today&#039;s low temperature value&lt;br /&gt;
|-&lt;br /&gt;
|34 ||label ||Today&#039;s weather condition&lt;br /&gt;
|-&lt;br /&gt;
|35 ||image ||Today&#039;s weather icon&lt;br /&gt;
|-&lt;br /&gt;
|223 ||label ||Localized “Temperature” string&lt;br /&gt;
|-&lt;br /&gt;
|224 ||label ||Localized “Feels like” string&lt;br /&gt;
|-&lt;br /&gt;
|225 ||label ||Localized “UV index” string&lt;br /&gt;
|-&lt;br /&gt;
|226 ||label ||Localized “Wind” string&lt;br /&gt;
|-&lt;br /&gt;
|227 ||label ||Localized “Dew point” string&lt;br /&gt;
|-&lt;br /&gt;
|228 ||label ||Localized “Humidity” string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pointer.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|1 ||image ||Pointer no focus image&lt;br /&gt;
|-&lt;br /&gt;
|2 ||image ||Pointer focus image&lt;br /&gt;
|-&lt;br /&gt;
|3 ||image ||Pointer drag image&lt;br /&gt;
|-&lt;br /&gt;
|4 ||image ||Pointer click image&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SettingsCategory.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Label displaying the current settings category&lt;br /&gt;
|-&lt;br /&gt;
|3 ||grouplist ||Grouplist template for the menu&lt;br /&gt;
|-&lt;br /&gt;
|5 ||grouplist ||Grouplist template for the settings section&lt;br /&gt;
|-&lt;br /&gt;
|6 ||textbox ||Settings description &lt;br /&gt;
|-&lt;br /&gt;
|7 ||button ||Button template &lt;br /&gt;
|-&lt;br /&gt;
|8 ||radiobutton ||Radiobutton template&lt;br /&gt;
|-&lt;br /&gt;
|9 ||spincontrolex ||Spincontrolex template&lt;br /&gt;
|-&lt;br /&gt;
|10 ||button ||Button template for the menu&lt;br /&gt;
|-&lt;br /&gt;
|11 ||image ||Default separator image&lt;br /&gt;
|-&lt;br /&gt;
|12 ||edit ||Edit control template&lt;br /&gt;
|-&lt;br /&gt;
|13 ||sliderex ||Sliderex control template&lt;br /&gt;
|-&lt;br /&gt;
|14 ||label ||label template&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||Setting level button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SettingsProfile.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||container ||List of available profiles&lt;br /&gt;
|-&lt;br /&gt;
|4 ||button ||Enable the loginscreen&lt;br /&gt;
|-&lt;br /&gt;
|5 ||button ||Auto login&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SettingsScreenCalibration.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Coordinates label&lt;br /&gt;
|-&lt;br /&gt;
|3 ||label ||Help information&lt;br /&gt;
|-&lt;br /&gt;
|8 ||mover ||Top left mover&lt;br /&gt;
|-&lt;br /&gt;
|9 ||mover ||Right bottom mover&lt;br /&gt;
|-&lt;br /&gt;
|10 ||mover ||Subtitle position mover&lt;br /&gt;
|-&lt;br /&gt;
|11 ||resize ||Pixel aspect ratio box&lt;br /&gt;
|-&lt;br /&gt;
|20 ||videowindow ||currently playing video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SlideShow.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|10 ||label ||Error loading image message&lt;br /&gt;
|-&lt;br /&gt;
|13 ||[any] ||These controls are visible when the slideshow is paused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SettingsSystemInfo.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 – 11 ||label ||Line 2 – Line 11&lt;br /&gt;
|-&lt;br /&gt;
|30 ||textbox ||privacy-policy text&lt;br /&gt;
|-&lt;br /&gt;
|40 ||label ||System information category label&lt;br /&gt;
|-&lt;br /&gt;
|52 ||label ||Kodi build label&lt;br /&gt;
|-&lt;br /&gt;
|53 ||label || Kodi build date label&lt;br /&gt;
|-&lt;br /&gt;
|94 ||button ||Show storage information&lt;br /&gt;
|-&lt;br /&gt;
|95 ||button ||Show summary information&lt;br /&gt;
|-&lt;br /&gt;
|96 ||button ||Show network information&lt;br /&gt;
|-&lt;br /&gt;
|97 ||button ||Show video information&lt;br /&gt;
|-&lt;br /&gt;
|98 ||button ||Show hardware information&lt;br /&gt;
|-&lt;br /&gt;
|99 ||button ||Show PVR information&lt;br /&gt;
|-&lt;br /&gt;
|100 ||button ||Show privacy-policy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SmartPlaylistEditor.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||label ||Heading label&lt;br /&gt;
|-&lt;br /&gt;
|10 ||container ||List of playlist rules&lt;br /&gt;
|-&lt;br /&gt;
|12 ||button ||Name of the playlist&lt;br /&gt;
|-&lt;br /&gt;
|13 ||button ||Add a rule&lt;br /&gt;
|-&lt;br /&gt;
|14 ||button ||Remove a rule&lt;br /&gt;
|-&lt;br /&gt;
|15 ||button ||Edit a rule&lt;br /&gt;
|-&lt;br /&gt;
|16 ||button ||Match rules option (match all rules / match one or more rules)&lt;br /&gt;
|-&lt;br /&gt;
|17 ||button ||Limit rules option (number of results: 10, 25, 50, 100, etc... items)&lt;br /&gt;
|-&lt;br /&gt;
|18 ||button ||Sort rules option (order the results by: title, genre, random, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|19 ||button ||Sort direction option (ascending / descending)&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|21 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|22 ||button ||Set Playlist type (movies, episodes, mixed, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|23 ||button ||Group by&lt;br /&gt;
|-&lt;br /&gt;
|24 ||radiobutton ||Mixed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SmartPlaylistRule.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|15 ||button ||Select field (director, duration, video resolution, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|16 ||button ||Select operator (is, is not, less than, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|17 ||edit ||Enter a value the rule should match&lt;br /&gt;
|-&lt;br /&gt;
|18 ||button ||OK button&lt;br /&gt;
|-&lt;br /&gt;
|19 ||button ||Cancel button&lt;br /&gt;
|-&lt;br /&gt;
|20 ||button ||Browse button&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VideoFullScreen.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|1 ||label ||Numpad seek label&lt;br /&gt;
|-&lt;br /&gt;
|10 ||label ||Line 1&lt;br /&gt;
|-&lt;br /&gt;
|11 ||label ||Line 2&lt;br /&gt;
|-&lt;br /&gt;
|12 ||label ||Line 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VideoOSDBookmarks.xml ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; | ID !! width=&amp;quot;150&amp;quot; | Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
|2 ||button ||Add a video bookmark&lt;br /&gt;
|-&lt;br /&gt;
|3 ||button ||Clear all bookmarks&lt;br /&gt;
|-&lt;br /&gt;
|4 ||button ||Use the currently selected video bookmark as the episode thumbnail&lt;br /&gt;
|-&lt;br /&gt;
|11 ||container ||List of available bookmarks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:JSON-RPC_API/v9&amp;diff=200391</id>
		<title>Archive:JSON-RPC API/v9</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:JSON-RPC_API/v9&amp;diff=200391"/>
		<updated>2020-03-15T22:38:53Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Warning not to use this page. IMO it should be deleted because an incomplete reference is worse than none, and JSON API is self documenting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[JSON-RPC API]]}}&lt;br /&gt;
&lt;br /&gt;
{{notice|This page is a partially edited copy ob the v8 API (Krypton) and seriously incomplete. It should not be relied upon as a reference. The API version of Kodi v18, a.k.a. Leia is v10 but no web version has been created}}&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
Version 10 is the stable version of Kodi&#039;s JSON-RPC API and is published with the release of v18 (Leia).&lt;br /&gt;
&lt;br /&gt;
It comes with support for [http://en.wikipedia.org/wiki/WebSocket WebSockets] as an alternative transport for third party clients. Using WebSockets will allow webinterfaces (which are currently restricted to the HTTP transport only) to get access to a bidirectional transport with Kodi&#039;s JSON-RPC API and can therefore also profit from additional features like notifications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
== JSON-RPC 2.0 compatibility ==&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding-left: 5px; width: 7em; text-align: left;&amp;quot;|Version&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Method calls&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Notifications&amp;lt;br /&amp;gt;(server-side)&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Notifications&amp;lt;br /&amp;gt;(client-side)&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Parameters&amp;lt;br /&amp;gt;by-name&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Parameters&amp;lt;br /&amp;gt;by-position&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Batch requests&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|Version 6&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Documentation (JSON Schema) ==&lt;br /&gt;
=== Supported features of JSON Schema ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; margin-right:2em&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width: 10em; text-align: left;&amp;quot;|Schema&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|IETF Draft 03&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1 type]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.2 properties]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.3 patternProperties]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.4 additionalProperties]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.5 items]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.6 additionalItems]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.7 required]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.8 dependencies]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.9 minimum]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.10 maximum]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; margin-right:2em&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width: 10em; text-align: left;&amp;quot;|Schema&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|IETF Draft 03&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.11 exclusiveMinimum]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.12 exclusiveMaximum]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.13 minItems]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.14 maxItems]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.15 uniqueItems]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.16 pattern]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.17 minLength]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.18 maxLength]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.19 enum]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.20 default]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width: 10em; text-align: left;&amp;quot;|Schema&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|IETF Draft 03&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.21 title]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.22 description]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23 format]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.24 divisibleBy]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.25 disallow]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.26 extends]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.27 id]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.28 $ref]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.29 $schema]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|[http://tools.ietf.org/html/draft-zyp-json-schema-03#section-6 Hyper Schema]&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:left;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Error message ==&lt;br /&gt;
If Kodi detects a bad or missing parameter in a JSON-RPC request it returns an error object. The JSON schema description of that error object is&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=json enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;code&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;, &amp;quot;required&amp;quot;: true },&lt;br /&gt;
    &amp;quot;message&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;required&amp;quot;: true },&lt;br /&gt;
    &amp;quot;data&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;method&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;required&amp;quot;: true },&lt;br /&gt;
        &amp;quot;stack&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;, &amp;quot;id&amp;quot;: &amp;quot;Error.Stack&amp;quot;,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;required&amp;quot;: true },&lt;br /&gt;
            &amp;quot;type&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;required&amp;quot;: true },&lt;br /&gt;
            &amp;quot;message&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;, &amp;quot;required&amp;quot;: true },&lt;br /&gt;
            &amp;quot;property&amp;quot;: { &amp;quot;$ref&amp;quot;: &amp;quot;Error.Stack&amp;quot; }&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Namespaces ==&lt;br /&gt;
The Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Addons           List, enable and execute addons&lt;br /&gt;
Application      Application information and control&lt;br /&gt;
AudioLibrary     Audio Library information&lt;br /&gt;
Favourites       Favourites GetFavourites and AddFavourite&lt;br /&gt;
Files            Shares information &amp;amp; filesystem listings&lt;br /&gt;
GUI              Window properties and activation&lt;br /&gt;
Input            Allows limited navigation within Kodi&lt;br /&gt;
JSONRPC          A variety of standard JSONRPC calls&lt;br /&gt;
Player           Manages all available players&lt;br /&gt;
Playlist         Playlist modification&lt;br /&gt;
Profiles         Support for Profiles operations to xbmc. &lt;br /&gt;
PVR              Live TV control&lt;br /&gt;
Settings         Allows manipulation of Kodi settings.&lt;br /&gt;
System           System controls and information&lt;br /&gt;
Textures         Supplies GetTextures and RemoveTexture. Textures are images.&lt;br /&gt;
VideoLibrary     Video Library information&lt;br /&gt;
XBMC             Dumping ground for very Kodi specific operations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Methods ==&lt;br /&gt;
=== Addons ===&lt;br /&gt;
==== Addons.ExecuteAddon ====&lt;br /&gt;
Executes the given addon with the given parameters (if possible)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ExecuteAddon&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; addonid&lt;br /&gt;
# [ &#039;&#039;mixed: object|array|string&#039;&#039; params ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; wait = false ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Executes the given addon with the given parameters (if possible)&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ExecuteAddon&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;addonid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;URL path (must start with / or ?&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;params&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;wait&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Addons.GetAddonDetails ====&lt;br /&gt;
Gets the details of a specific addon&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; addonid&lt;br /&gt;
# [ &#039;&#039;[[#Addon.Fields|Addon.Fields]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Addon.Details|Addon.Details]]&#039;&#039; addon&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Gets the details of a specific addon&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;addonid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Fields&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;addon&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Details&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Addons.GetAddons ====&lt;br /&gt;
Gets all available addons&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Addon.Types|Addon.Types]]&#039;&#039; type = &amp;quot;unknown&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;[[#Addon.Content|Addon.Content]]&#039;&#039; content = &amp;quot;unknown&amp;quot; ] &#039;&#039;Content provided by the addon. Only considered for plugins and scripts.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;mixed: boolean|string&#039;&#039; enabled = &amp;quot;all&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;[[#Addon.Fields|Addon.Fields]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;mixed: boolean|string&#039;&#039; installed = true ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Addon.Details|Addon.Details]]&#039;&#039;[] addons ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Gets all available addons&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Types&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Content provided by the addon. Only considered for plugins and scripts.&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Content&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;content&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;all&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;all&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;enabled&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Fields&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;all&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;installed&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;addons&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Details&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Addons.SetAddonEnabled ====&lt;br /&gt;
Enables/Disables a specific addon&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ManageAddon&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; addonid&lt;br /&gt;
# &#039;&#039;[[#Global.Toggle|Global.Toggle]]&#039;&#039; enabled&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Enables/Disables a specific addon&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ManageAddon&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;addonid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;enabled&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
==== Application.GetProperties ====&lt;br /&gt;
Retrieves the values of the given properties&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Application.Property.Name|Application.Property.Name]]&#039;&#039;[] properties&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#Application.Property.Value|Application.Property.Value]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the values of the given properties&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Application.Property.Name&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Application.Property.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Application.Quit ====&lt;br /&gt;
Quit application&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPower&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Quit application&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPower&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Application.SetMute ====&lt;br /&gt;
Toggle mute/unmute&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Global.Toggle|Global.Toggle]]&#039;&#039; mute&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;boolean&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &#039;&#039;Mute state&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Toggle mute/unmute&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mute&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Mute state&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Application.SetVolume ====&lt;br /&gt;
Set the current volume&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;mixed&#039;&#039; volume&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;integer&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Set the current volume&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;maximum&amp;quot;: 100,&lt;br /&gt;
          &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Global.IncrementDecrement&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;volume&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== AudioLibrary ===&lt;br /&gt;
==== AudioLibrary.Clean ====&lt;br /&gt;
Cleans the audio library from non-existent items&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* RemoveData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; showdialogs = true ] &#039;&#039;Whether or not to show the progress bar or any other GUI dialog&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Cleans the audio library from non-existent items&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;RemoveData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to show the progress bar or any other GUI dialog&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showdialogs&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.Export ====&lt;br /&gt;
Exports all items from the audio library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* WriteFile&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;mixed: object|object&#039;&#039; options ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Exports all items from the audio library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;WriteFile&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;path&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Path to the directory to where the data should be exported&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;images&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: false,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Whether to export thumbnails and fanart images&amp;quot;,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;overwrite&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: false,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Whether to overwrite existing exported files&amp;quot;,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;options&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetAlbumDetails ====&lt;br /&gt;
Retrieve details about a specific album&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; albumid&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Album|Audio.Fields.Album]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Album|Audio.Details.Album]]&#039;&#039; albumdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific album&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Album&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;albumdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Album&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetAlbums ====&lt;br /&gt;
Retrieve all albums from specified artist (and role) or that has songs of the specified genre&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Album|Audio.Fields.Album]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; includesingles = false ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; allroles = false ] &#039;&#039;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.&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Album|Audio.Details.Album]]&#039;&#039;[] albums ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all albums from specified artist (and role) or that has songs of the specified genre&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Album&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Song genre. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genre&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Song genre. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artist&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artist&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artist&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Albums&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;includesingles&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;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.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;allroles&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;albums&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Album&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetArtistDetails ====&lt;br /&gt;
Retrieve details about a specific artist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; artistid&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Artist|Audio.Fields.Artist]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Artist|Audio.Details.Artist]]&#039;&#039; artistdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific artist&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Artist&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;artistdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Artist&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetArtists ====&lt;br /&gt;
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&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Boolean|Optional.Boolean]]&#039;&#039; albumartistsonly ] &#039;&#039;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&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Artist|Audio.Fields.Artist]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; allroles = false ] &#039;&#039;Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Artist|Audio.Details.Artist]]&#039;&#039;[] artists ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;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&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;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&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumartistsonly&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Artist&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Deprecated, use songgenreid. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;songgenreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Song genreid. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;songgenreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;songgenreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genre&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Deprecated, use songgenre. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;songgenre&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Song genre. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;songgenre&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;songgenre&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;albumid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;album&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;songid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;songid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;songid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Role contributed by artist. Overriden by allroles parameter&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Role contributed by artist. Overriden by allroles parameter&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Artists&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;allroles&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;artists&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Artist&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetGenres ====&lt;br /&gt;
Retrieve all genres&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Library.Fields.Genre|Library.Fields.Genre]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Library.Details.Genre|Library.Details.Genre]]&#039;&#039;[] genres&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all genres&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Fields.Genre&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;genres&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Details.Genre&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetProperties ====&lt;br /&gt;
Retrieves the values of the music library properties&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Audio.Property.Name|Audio.Property.Name]]&#039;&#039;[] properties&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#Audio.Property.Value|Audio.Property.Value]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the values of the music library properties&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Property.Name&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Property.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetRecentlyAddedAlbums ====&lt;br /&gt;
Retrieve recently added albums&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Album|Audio.Fields.Album]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Album|Audio.Details.Album]]&#039;&#039;[] albums ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve recently added albums&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Album&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;albums&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Album&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetRecentlyAddedSongs ====&lt;br /&gt;
Retrieve recently added songs&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#List.Amount|List.Amount]]&#039;&#039; albumlimit = &amp;quot;-1&amp;quot; ] &#039;&#039;The amount of recently added albums from which to return the songs&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Song|Audio.Fields.Song]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Song|Audio.Details.Song]]&#039;&#039;[] songs ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve recently added songs&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;The amount of recently added albums from which to return the songs&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Amount&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumlimit&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Song&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;songs&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Song&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetRecentlyPlayedAlbums ====&lt;br /&gt;
Retrieve recently played albums&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Album|Audio.Fields.Album]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Album|Audio.Details.Album]]&#039;&#039;[] albums ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve recently played albums&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Album&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;albums&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Album&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetRecentlyPlayedSongs ====&lt;br /&gt;
Retrieve recently played songs&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Song|Audio.Fields.Song]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Song|Audio.Details.Song]]&#039;&#039;[] songs ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve recently played songs&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Song&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;songs&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Song&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetRoles ====&lt;br /&gt;
Retrieve all contributor roles&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Role|Audio.Fields.Role]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* &#039;&#039;[[#Audio.Details.Role|Audio.Details.Role]]&#039;&#039;[] roles&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all contributor roles&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Role&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;roles&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Role&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetSongDetails ====&lt;br /&gt;
Retrieve details about a specific song&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; songid&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Song|Audio.Fields.Song]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Song|Audio.Details.Song]]&#039;&#039; songdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific song&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;songid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Song&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;songdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Song&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.GetSongs ====&lt;br /&gt;
Retrieve all songs from specified album, artist or genre&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Audio.Fields.Song|Audio.Fields.Song]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; includesingles = true ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; allroles = false ] &#039;&#039;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.&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Song|Audio.Details.Song]]&#039;&#039;[] songs ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all songs from specified album, artist or genre&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Fields.Song&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Song genre. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genre&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Song genre. Filter for existance of songs with this genre&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artist&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artist&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artist&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;role&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;albumid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;album&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Songs&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;includesingles&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;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.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;allroles&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;songs&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Song&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.Scan ====&lt;br /&gt;
Scans the audio sources for new library items&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; directory ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; showdialogs = true ] &#039;&#039;Whether or not to show the progress bar or any other GUI dialog&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Scans the audio sources for new library items&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;directory&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to show the progress bar or any other GUI dialog&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showdialogs&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.SetAlbumDetails ====&lt;br /&gt;
Update the given album with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; albumid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; title ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; artist ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; description ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; genre ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; theme ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; mood ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; style ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; type ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; albumlabel ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Number|Optional.Number]]&#039;&#039; rating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; year ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; userrating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; votes ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given album with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;description&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;theme&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mood&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;style&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumlabel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.SetArtistDetails ====&lt;br /&gt;
Update the given artist with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; artistid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; artist ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; instrument ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; style ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; mood ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; born ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; formed ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; description ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; genre ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; died ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; disbanded ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; yearsactive ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given artist with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;instrument&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;style&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mood&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;born&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;formed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;description&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;died&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;disbanded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;yearsactive&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.SetSongDetails ====&lt;br /&gt;
Update the given song with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; songid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; title ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; artist ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; albumartist ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; genre ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; year ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Number|Optional.Number]]&#039;&#039; rating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; album ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; track ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; disc ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; duration ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; comment ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; musicbrainztrackid ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; musicbrainzartistid ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; musicbrainzalbumid ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; musicbrainzalbumartistid ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; playcount ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; lastplayed ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; userrating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; votes ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given song with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;songid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumartist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;album&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;track&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;disc&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;duration&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;comment&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainztrackid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzalbumid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzalbumartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Favourites ===&lt;br /&gt;
==== Favourites.AddFavourite ====&lt;br /&gt;
Add a favourite with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; title&lt;br /&gt;
# &#039;&#039;[[#Favourite.Type|Favourite.Type]]&#039;&#039; type&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; path ] &#039;&#039;Required for media and script favourites types&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; window ] &#039;&#039;Required for window favourite type&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; windowparameter ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; thumbnail ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Add a favourite with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Favourite.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Required for media and script favourites types&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;path&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Required for window favourite type&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;window&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;windowparameter&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Favourites.GetFavourites ====&lt;br /&gt;
Retrieve all favourites&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; type ]&lt;br /&gt;
# [ &#039;&#039;[[#Favourite.Fields.Favourite|Favourite.Fields.Favourite]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Favourite.Details.Favourite|Favourite.Details.Favourite]]&#039;&#039;[] favourites ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all favourites&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Favourite.Type&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Favourite.Fields.Favourite&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;favourites&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Favourite.Details.Favourite&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== Files.GetDirectory ====&lt;br /&gt;
Get the directories and files in the given directory&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; directory&lt;br /&gt;
# [ &#039;&#039;[[#Files.Media|Files.Media]]&#039;&#039; media = &amp;quot;files&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Fields.Files|List.Fields.Files]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ] &#039;&#039;Limits are applied after getting the directory content thus retrieval is not faster when they are applied.&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Item.File|List.Item.File]]&#039;&#039;[] files&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Get the directories and files in the given directory&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;directory&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;files&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Files.Media&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;media&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Fields.Files&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Limits are applied after getting the directory content thus retrieval is not faster when they are applied.&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;files&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Item.File&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Files.GetFileDetails ====&lt;br /&gt;
Get details for a specific file&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; file &#039;&#039;Full path to the file&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Files.Media|Files.Media]]&#039;&#039; media = &amp;quot;files&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Fields.Files|List.Fields.Files]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Item.File|List.Item.File]]&#039;&#039; filedetails&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Get details for a specific file&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Full path to the file&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;files&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Files.Media&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;media&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Fields.Files&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;filedetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.Item.File&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Files.GetSources ====&lt;br /&gt;
Get the sources of the media windows&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Files.Media|Files.Media]]&#039;&#039; media&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* &#039;&#039;[[#List.Items.Sources|List.Items.Sources]]&#039;&#039; sources&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Get the sources of the media windows&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Files.Media&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;media&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;sources&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.Items.Sources&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Files.PrepareDownload ====&lt;br /&gt;
Provides a way to download a given file (e.g. providing an URL to the real file location)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; path&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;mixed&#039;&#039;  &#039;&#039;Transport specific details on how/from where to download the given file&#039;&#039;details&lt;br /&gt;
* &#039;&#039;string&#039;&#039;  &#039;&#039;Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol&#039;&#039;mode&lt;br /&gt;
* &#039;&#039;string&#039;&#039; protocol&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Provides a way to download a given file (e.g. providing an URL to the real file location)&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;path&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;details&amp;quot;: {&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Transport specific details on how/from where to download the given file&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;any&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;mode&amp;quot;: {&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;protocol&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Files.SetFileDetails ====&lt;br /&gt;
Update the given specific file with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; file &#039;&#039;Full path to the file&#039;&#039;&lt;br /&gt;
# &#039;&#039;[[#Files.Media|Files.Media]]&#039;&#039; media &#039;&#039;File type to update correct database. Currently only &amp;quot;video&amp;quot; is supported.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; playcount ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; lastplayed ] &#039;&#039;Setting a valid lastplayed without a playcount will force playcount to 1.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; resume ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given specific file with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Full path to the file&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;File type to update correct database. Currently only \&amp;quot;video\&amp;quot; is supported.&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Files.Media&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;media&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Setting a valid lastplayed without a playcount will force playcount to 1.&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Resume&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;resume&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== GUI ===&lt;br /&gt;
==== GUI.ActivateWindow ====&lt;br /&gt;
Activates the given window&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlGUI&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#GUI.Window|GUI.Window]]&#039;&#039; window&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039;[] parameters ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Activates the given window&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlGUI&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;GUI.Window&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;window&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;parameters&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.GetProperties ====&lt;br /&gt;
Retrieves the values of the given properties&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#GUI.Property.Name|GUI.Property.Name]]&#039;&#039;[] properties&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#GUI.Property.Value|GUI.Property.Value]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the values of the given properties&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;GUI.Property.Name&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;GUI.Property.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.GetStereoscopicModes ====&lt;br /&gt;
Returns the supported stereoscopic modes of the GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]&#039;&#039;[] stereoscopicmodes ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Returns the supported stereoscopic modes of the GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;stereoscopicmodes&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;GUI.Stereoscopy.Mode&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.SetFullscreen ====&lt;br /&gt;
Toggle fullscreen/GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlGUI&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Global.Toggle|Global.Toggle]]&#039;&#039; fullscreen&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;boolean&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &#039;&#039;Fullscreen state&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Toggle fullscreen/GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlGUI&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fullscreen&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Fullscreen state&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.SetStereoscopicMode ====&lt;br /&gt;
Sets the stereoscopic mode of the GUI to the given mode&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlGUI&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; mode&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Sets the stereoscopic mode of the GUI to the given mode&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlGUI&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mode&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.ShowNotification ====&lt;br /&gt;
Shows a GUI notification&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlGUI&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; title&lt;br /&gt;
# &#039;&#039;string&#039;&#039; message&lt;br /&gt;
# [ &#039;&#039;mixed: string|string&#039;&#039; image ]&lt;br /&gt;
# [ &#039;&#039;integer&#039;&#039; displaytime = &amp;quot;5000&amp;quot; ] &#039;&#039;The time in milliseconds the notification will be visible&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Shows a GUI notification&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlGUI&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;message&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;info&amp;quot;,&lt;br /&gt;
            &amp;quot;warning&amp;quot;,&lt;br /&gt;
            &amp;quot;error&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;image&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;5000&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;The time in milliseconds the notification will be visible&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displaytime&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
==== Input.Back ====&lt;br /&gt;
Goes back in GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Goes back in GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.ContextMenu ====&lt;br /&gt;
Shows the context menu&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Shows the context menu&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.Down ====&lt;br /&gt;
Navigate down in GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Navigate down in GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.ExecuteAction ====&lt;br /&gt;
Execute a specific action&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Input.Action|Input.Action]]&#039;&#039; action&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Execute a specific action&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Input.Action&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;action&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.Home ====&lt;br /&gt;
Goes to home window in GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Goes to home window in GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.Info ====&lt;br /&gt;
Shows the information dialog&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Shows the information dialog&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.Left ====&lt;br /&gt;
Navigate left in GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Navigate left in GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.Right ====&lt;br /&gt;
Navigate right in GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Navigate right in GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.Select ====&lt;br /&gt;
Select current item in GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Select current item in GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.SendText ====&lt;br /&gt;
Send a generic (unicode) text&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; text &#039;&#039;Unicode text&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; done = true ] &#039;&#039;Whether this is the whole input or not (closes an open input dialog if true).&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Send a generic (unicode) text&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Unicode text&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether this is the whole input or not (closes an open input dialog if true).&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;done&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.ShowCodec ====&lt;br /&gt;
Show codec information of the playing item&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Show codec information of the playing item&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.ShowOSD ====&lt;br /&gt;
Show the on-screen display for the current player&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Show the on-screen display for the current player&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.ShowPlayerProcessInfo ====&lt;br /&gt;
Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.Up ====&lt;br /&gt;
Navigate up in GUI&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Navigate up in GUI&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== JSONRPC ===&lt;br /&gt;
==== JSONRPC.Introspect ====&lt;br /&gt;
Enumerates all actions and descriptions&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; getdescriptions = true ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; getmetadata = false ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; filterbytransport = true ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Enumerates all actions and descriptions&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;getdescriptions&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;getmetadata&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filterbytransport&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;additionalProperties&amp;quot;: false&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== JSONRPC.NotifyAll ====&lt;br /&gt;
Notify all other connected clients&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;string&#039;&#039; message&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; data ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;any&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Notify all other connected clients&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;message&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;any&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;any&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== JSONRPC.Permission ====&lt;br /&gt;
Retrieve the clients permissions&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; controlgui&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; controlnotify&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; controlplayback&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; controlpower&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; controlpvr&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; controlsystem&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; executeaddon&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; manageaddon&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; navigate&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; readdata&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; removedata&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; updatedata&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; writefile&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve the clients permissions&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;controlgui&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;controlnotify&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;controlplayback&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;controlpower&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;controlpvr&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;controlsystem&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;executeaddon&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;manageaddon&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;navigate&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;readdata&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;removedata&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;updatedata&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;writefile&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== JSONRPC.Ping ====&lt;br /&gt;
Ping responder&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Ping responder&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== JSONRPC.Version ====&lt;br /&gt;
Retrieve the JSON-RPC protocol version.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;mixed&#039;&#039; version&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve the JSON-RPC protocol version.&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;version&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
==== Player.GetActivePlayers ====&lt;br /&gt;
Returns all active players&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;array&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Returns all active players&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.GetItem ====&lt;br /&gt;
Retrieves the currently played item&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# [ &#039;&#039;[[#List.Fields.All|List.Fields.All]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Item.All|List.Item.All]]&#039;&#039; item&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the currently played item&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Fields.All&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;item&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.Item.All&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.GetPlayers ====&lt;br /&gt;
Get a list of available players&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; media = &amp;quot;all&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;array&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Get a list of available players&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;all&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;media&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.GetProperties ====&lt;br /&gt;
Retrieves the values of the given properties&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;[[#Player.Property.Name|Player.Property.Name]]&#039;&#039;[] properties&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#Player.Property.Value|Player.Property.Value]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the values of the given properties&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Player.Property.Name&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Player.Property.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.GoTo ====&lt;br /&gt;
Go to previous/next/specific item in the playlist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed&#039;&#039; to&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Go to previous/next/specific item in the playlist&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;previous&amp;quot;,&lt;br /&gt;
            &amp;quot;next&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;position in playlist&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;to&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Move ====&lt;br /&gt;
If picture is zoomed move viewport left/right/up/down otherwise skip previous/next&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;string&#039;&#039; direction&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;If picture is zoomed move viewport left/right/up/down otherwise skip previous/next&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;direction&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Open ====&lt;br /&gt;
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.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; item ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; options ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;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.&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;playlistid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;position&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
              &amp;quot;default&amp;quot;: 0&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Item&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;path&amp;quot;: {&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;random&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: true,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Deprecated, use the shuffled property of the options parameter instead&amp;quot;,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;recursive&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;partymode&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
              &amp;quot;type&amp;quot;: [&lt;br /&gt;
                {&lt;br /&gt;
                  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
                    &amp;quot;music&amp;quot;,&lt;br /&gt;
                    &amp;quot;video&amp;quot;&lt;br /&gt;
                  ],&lt;br /&gt;
                  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
                },&lt;br /&gt;
                {&lt;br /&gt;
                  &amp;quot;description&amp;quot;: &amp;quot;Path to a smartplaylist (*.xsp) file&amp;quot;,&lt;br /&gt;
                  &amp;quot;minLength&amp;quot;: 5,&lt;br /&gt;
                  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
              ]&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;channelid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;recordingid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;item&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;options&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.PlayPause ====&lt;br /&gt;
Pauses or unpause playback and returns the new state&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# [ &#039;&#039;[[#Global.Toggle|Global.Toggle]]&#039;&#039; play = &amp;quot;toggle&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#Player.Speed|Player.Speed]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Pauses or unpause playback and returns the new state&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;play&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Player.Speed&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Rotate ====&lt;br /&gt;
Rotates current picture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; value = &amp;quot;clockwise&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Rotates current picture&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;clockwise&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Seek ====&lt;br /&gt;
Seek through the playing item&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Player.Position.Percentage|Player.Position.Percentage]]&#039;&#039;  = &amp;quot;0&amp;quot;percentage ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.Time|Global.Time]]&#039;&#039; time ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.Time|Global.Time]]&#039;&#039; totaltime ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Seek through the playing item&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Player.Position.Percentage&amp;quot;,&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Percentage value to seek to&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Player.Position.Time&amp;quot;,&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Time to seek to&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Seek by predefined jumps&amp;quot;,&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;smallforward&amp;quot;,&lt;br /&gt;
            &amp;quot;smallbackward&amp;quot;,&lt;br /&gt;
            &amp;quot;bigforward&amp;quot;,&lt;br /&gt;
            &amp;quot;bigbackward&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;percentage&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Player.Position.Percentage&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Percentage value to seek to&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;time&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Player.Position.Time&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Time to seek to&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;step&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Seek by predefined jumps&amp;quot;,&lt;br /&gt;
              &amp;quot;enums&amp;quot;: [&lt;br /&gt;
                &amp;quot;smallforward&amp;quot;,&lt;br /&gt;
                &amp;quot;smallbackward&amp;quot;,&lt;br /&gt;
                &amp;quot;bigforward&amp;quot;,&lt;br /&gt;
                &amp;quot;bigbackward&amp;quot;&lt;br /&gt;
              ],&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;seconds&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Seek by the given number of seconds&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;percentage&amp;quot;: {&lt;br /&gt;
        &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Player.Position.Percentage&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;time&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Global.Time&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;totaltime&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Global.Time&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.SetAudioStream ====&lt;br /&gt;
Set the audio stream played by the player&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed: string|integer&#039;&#039; stream&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Set the audio stream played by the player&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;previous&amp;quot;,&lt;br /&gt;
            &amp;quot;next&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Index of the audio stream to play&amp;quot;,&lt;br /&gt;
          &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;stream&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.SetPartymode ====&lt;br /&gt;
Turn partymode on or off&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;[[#Global.Toggle|Global.Toggle]]&#039;&#039; partymode&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Turn partymode on or off&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;partymode&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.SetRepeat ====&lt;br /&gt;
Set the repeat mode of the player&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed&#039;&#039; repeat&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Set the repeat mode of the player&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Player.Repeat&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;cycle&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;repeat&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.SetShuffle ====&lt;br /&gt;
Shuffle/Unshuffle items in the player&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;[[#Global.Toggle|Global.Toggle]]&#039;&#039; shuffle&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Shuffle/Unshuffle items in the player&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;shuffle&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.SetSpeed ====&lt;br /&gt;
Set the speed of the current playback&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed&#039;&#039; speed&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#Player.Speed|Player.Speed]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Set the speed of the current playback&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            -32,&lt;br /&gt;
            -16,&lt;br /&gt;
            -8,&lt;br /&gt;
            -4,&lt;br /&gt;
            -2,&lt;br /&gt;
            -1,&lt;br /&gt;
            0,&lt;br /&gt;
            1,&lt;br /&gt;
            2,&lt;br /&gt;
            4,&lt;br /&gt;
            8,&lt;br /&gt;
            16,&lt;br /&gt;
            32&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Global.IncrementDecrement&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;speed&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Player.Speed&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.SetSubtitle ====&lt;br /&gt;
Set the subtitle displayed by the player&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed: string|integer&#039;&#039; subtitle&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; enable = false ] &#039;&#039;Whether to enable subtitles to be displayed after setting the new subtitle&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Set the subtitle displayed by the player&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;previous&amp;quot;,&lt;br /&gt;
            &amp;quot;next&amp;quot;,&lt;br /&gt;
            &amp;quot;off&amp;quot;,&lt;br /&gt;
            &amp;quot;on&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Index of the subtitle to display&amp;quot;,&lt;br /&gt;
          &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;subtitle&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether to enable subtitles to be displayed after setting the new subtitle&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;enable&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.SetVideoStream ====&lt;br /&gt;
Set the video stream played by the player&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed: string|integer&#039;&#039; stream&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Set the video stream played by the player&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;previous&amp;quot;,&lt;br /&gt;
            &amp;quot;next&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Index of the video stream to play&amp;quot;,&lt;br /&gt;
          &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;stream&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Stop ====&lt;br /&gt;
Stops playback&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Stops playback&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Zoom ====&lt;br /&gt;
Zoom current picture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
# &#039;&#039;mixed: string|integer&#039;&#039; zoom&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Zoom current picture&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;in&amp;quot;,&lt;br /&gt;
            &amp;quot;out&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;zoom level&amp;quot;,&lt;br /&gt;
          &amp;quot;maximum&amp;quot;: 10,&lt;br /&gt;
          &amp;quot;minimum&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;zoom&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Playlist ===&lt;br /&gt;
==== Playlist.Add ====&lt;br /&gt;
Add item(s) to playlist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
# &#039;&#039;mixed&#039;&#039; item&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Add item(s) to playlist&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Item&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Item&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;item&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Clear ====&lt;br /&gt;
Clear playlist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Clear playlist&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.GetItems ====&lt;br /&gt;
Get all items from playlist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
# [ &#039;&#039;[[#List.Fields.All|List.Fields.All]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Item.All|List.Item.All]]&#039;&#039;[] items&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Get all items from playlist&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Fields.All&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Item.All&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.GetPlaylists ====&lt;br /&gt;
Returns all existing playlists&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;array&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Returns all existing playlists&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.GetProperties ====&lt;br /&gt;
Retrieves the values of the given properties&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
# &#039;&#039;[[#Playlist.Property.Name|Playlist.Property.Name]]&#039;&#039;[] properties&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#Playlist.Property.Value|Playlist.Property.Value]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the values of the given properties&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Property.Name&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Property.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Insert ====&lt;br /&gt;
Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
# &#039;&#039;[[#Playlist.Position|Playlist.Position]]&#039;&#039; position&lt;br /&gt;
# &#039;&#039;mixed&#039;&#039; item&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;position&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Item&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Item&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;item&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Remove ====&lt;br /&gt;
Remove item from playlist. Does not work for picture playlists (aka slideshows).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
# &#039;&#039;[[#Playlist.Position|Playlist.Position]]&#039;&#039; position&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Remove item from playlist. Does not work for picture playlists (aka slideshows).&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;position&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Swap ====&lt;br /&gt;
Swap items in the playlist. Does not work for picture playlists (aka slideshows).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPlayback&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
# &#039;&#039;[[#Playlist.Position|Playlist.Position]]&#039;&#039; position1&lt;br /&gt;
# &#039;&#039;[[#Playlist.Position|Playlist.Position]]&#039;&#039; position2&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Swap items in the playlist. Does not work for picture playlists (aka slideshows).&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPlayback&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;position1&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;position2&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Profiles ===&lt;br /&gt;
==== Profiles.GetCurrentProfile ====&lt;br /&gt;
Retrieve the current profile&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Profiles.Fields.Profile|Profiles.Fields.Profile]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#Profiles.Details.Profile|Profiles.Details.Profile]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve the current profile&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Profiles.Fields.Profile&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Profiles.Details.Profile&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Profiles.GetProfiles ====&lt;br /&gt;
Retrieve all profiles&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Profiles.Fields.Profile|Profiles.Fields.Profile]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* &#039;&#039;[[#Profiles.Details.Profile|Profiles.Details.Profile]]&#039;&#039;[] profiles&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all profiles&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Profiles.Fields.Profile&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;profiles&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Profiles.Details.Profile&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Profiles.LoadProfile ====&lt;br /&gt;
Load the specified profile&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* Navigate&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; profile &#039;&#039;Profile name&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; prompt = false ] &#039;&#039;Prompt for password&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Profiles.Password|Profiles.Password]]&#039;&#039; password ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Load the specified profile&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;Navigate&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Profile name&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;profile&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Prompt for password&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;prompt&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Profiles.Password&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;password&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== PVR ===&lt;br /&gt;
==== PVR.AddTimer ====&lt;br /&gt;
Adds a timer to record the given show one times or a timer rule to record all showings of the given show&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPVR&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; broadcastid &#039;&#039;the broadcast id of the item to record&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; timerrule = false ] &#039;&#039;controls whether to create a timer rule or a onetime timer&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Adds a timer to record the given show one times or a timer rule to record all showings of the given show&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPVR&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;the broadcast id of the item to record&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;broadcastid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;controls whether to create a timer rule or a onetime timer&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;timerrule&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.DeleteTimer ====&lt;br /&gt;
Deletes a onetime timer or a timer rule&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPVR&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; timerid &#039;&#039;the id of the onetime timer or timer rule to delete&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Deletes a onetime timer or a timer rule&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPVR&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;the id of the onetime timer or timer rule to delete&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;timerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetBroadcastDetails ====&lt;br /&gt;
Retrieves the details of a specific broadcast&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; broadcastid&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]&#039;&#039; broadcastdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the details of a specific broadcast&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;broadcastid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Broadcast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;broadcastdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Broadcast&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetBroadcasts ====&lt;br /&gt;
Retrieves the program of a specific channel&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; channelid&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]&#039;&#039;[] broadcasts&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the program of a specific channel&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Broadcast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;broadcasts&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Broadcast&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetChannelDetails ====&lt;br /&gt;
Retrieves the details of a specific channel&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; channelid&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Channel|PVR.Fields.Channel]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.Channel|PVR.Details.Channel]]&#039;&#039; channeldetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the details of a specific channel&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Channel&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;channeldetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Channel&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetChannelGroupDetails ====&lt;br /&gt;
Retrieves the details of a specific channel group&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#PVR.ChannelGroup.Id|PVR.ChannelGroup.Id]]&#039;&#039; channelgroupid&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; channels ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.ChannelGroup.Extended|PVR.Details.ChannelGroup.Extended]]&#039;&#039; channelgroupdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the details of a specific channel group&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.ChannelGroup.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelgroupid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channels&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;channelgroupdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.ChannelGroup.Extended&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetChannelGroups ====&lt;br /&gt;
Retrieves the channel groups for the specified type&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#PVR.Channel.Type|PVR.Channel.Type]]&#039;&#039; channeltype&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#PVR.Details.ChannelGroup|PVR.Details.ChannelGroup]]&#039;&#039;[] channelgroups&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the channel groups for the specified type&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Channel.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channeltype&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;channelgroups&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.ChannelGroup&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetChannels ====&lt;br /&gt;
Retrieves the channel list&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#PVR.ChannelGroup.Id|PVR.ChannelGroup.Id]]&#039;&#039; channelgroupid&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Channel|PVR.Fields.Channel]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#PVR.Details.Channel|PVR.Details.Channel]]&#039;&#039;[] channels&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the channel list&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.ChannelGroup.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelgroupid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Channel&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;channels&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Channel&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetProperties ====&lt;br /&gt;
Retrieves the values of the given properties&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#PVR.Property.Name|PVR.Property.Name]]&#039;&#039;[] properties&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#PVR.Property.Value|PVR.Property.Value]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the values of the given properties&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Property.Name&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Property.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetRecordingDetails ====&lt;br /&gt;
Retrieves the details of a specific recording&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; recordingid&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Recording|PVR.Fields.Recording]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.Recording|PVR.Details.Recording]]&#039;&#039; recordingdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the details of a specific recording&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;recordingid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Recording&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;recordingdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Recording&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetRecordings ====&lt;br /&gt;
Retrieves the recordings&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Recording|PVR.Fields.Recording]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* &#039;&#039;[[#PVR.Details.Recording|PVR.Details.Recording]]&#039;&#039;[] recordings&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the recordings&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Recording&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;recordings&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Recording&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetTimerDetails ====&lt;br /&gt;
Retrieves the details of a specific timer&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; timerid&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Timer|PVR.Fields.Timer]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.Timer|PVR.Details.Timer]]&#039;&#039; timerdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the details of a specific timer&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;timerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Timer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;timerdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Timer&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.GetTimers ====&lt;br /&gt;
Retrieves the timers&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#PVR.Fields.Timer|PVR.Fields.Timer]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* &#039;&#039;[[#PVR.Details.Timer|PVR.Details.Timer]]&#039;&#039;[] timers&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the timers&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Fields.Timer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;timers&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Timer&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Record ====&lt;br /&gt;
Toggle recording of a channel&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPVR&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Global.Toggle|Global.Toggle]]&#039;&#039; record = &amp;quot;toggle&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; channel = &amp;quot;current&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Toggle recording of a channel&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPVR&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;record&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;current&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;enums&amp;quot;: [&lt;br /&gt;
            &amp;quot;current&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channel&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Scan ====&lt;br /&gt;
Starts a channel scan&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPVR&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Starts a channel scan&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPVR&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.ToggleTimer ====&lt;br /&gt;
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&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPVR&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; broadcastid &#039;&#039;the broadcast id of the item to toggle a onetime timer or time rule for&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; timerrule = false ] &#039;&#039;controls whether to create / delete a timer rule or a onetime timer&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;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&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPVR&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;the broadcast id of the item to toggle a onetime timer or time rule for&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;broadcastid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;controls whether to create / delete a timer rule or a onetime timer&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;timerrule&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
==== Settings.GetCategories ====&lt;br /&gt;
Retrieves all setting categories&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Setting.Level|Setting.Level]]&#039;&#039; level = &amp;quot;standard&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; section ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Setting.Details.Category|Setting.Details.Category]]&#039;&#039;[] categories ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves all setting categories&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;standard&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Level&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;level&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;section&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;categories&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Category&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Settings.GetSections ====&lt;br /&gt;
Retrieves all setting sections&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Setting.Level|Setting.Level]]&#039;&#039; level = &amp;quot;standard&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Setting.Details.Section|Setting.Details.Section]]&#039;&#039;[] sections ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves all setting sections&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;standard&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Level&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;level&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;sections&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Section&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Settings.GetSettings ====&lt;br /&gt;
Retrieves all settings&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Setting.Level|Setting.Level]]&#039;&#039; level = &amp;quot;standard&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;mixed: object&#039;&#039; filter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Setting.Details.Setting|Setting.Details.Setting]]&#039;&#039;[] settings ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves all settings&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;standard&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Level&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;level&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;category&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;section&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;settings&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Setting&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Settings.GetSettingValue ====&lt;br /&gt;
Retrieves the value of a setting&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; setting&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Value.Extended|Setting.Value.Extended]]&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the value of a setting&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setting&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;value&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Value.Extended&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Settings.ResetSettingValue ====&lt;br /&gt;
Resets the value of a setting&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; setting&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Resets the value of a setting&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setting&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Settings.SetSettingValue ====&lt;br /&gt;
Changes the value of a setting&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; setting&lt;br /&gt;
# &#039;&#039;[[#Setting.Value.Extended|Setting.Value.Extended]]&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;boolean&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Changes the value of a setting&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setting&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Value.Extended&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
==== System.EjectOpticalDrive ====&lt;br /&gt;
Ejects or closes the optical disc drive (if available)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlSystem&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Ejects or closes the optical disc drive (if available)&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlSystem&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.GetProperties ====&lt;br /&gt;
Retrieves the values of the given properties&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#System.Property.Name|System.Property.Name]]&#039;&#039;[] properties&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;[[#System.Property.Value|System.Property.Value]]&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieves the values of the given properties&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;System.Property.Name&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;System.Property.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.Hibernate ====&lt;br /&gt;
Puts the system running Kodi into hibernate mode&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPower&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Puts the system running Kodi into hibernate mode&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPower&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.Reboot ====&lt;br /&gt;
Reboots the system running Kodi&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPower&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Reboots the system running Kodi&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPower&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.Shutdown ====&lt;br /&gt;
Shuts the system running Kodi down&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPower&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Shuts the system running Kodi down&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPower&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.Suspend ====&lt;br /&gt;
Suspends the system running Kodi&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ControlPower&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Suspends the system running Kodi&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ControlPower&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
==== Textures.GetTextures ====&lt;br /&gt;
Retrieve all textures&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Textures.Fields.Texture|Textures.Fields.Texture]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Filter.Textures|List.Filter.Textures]]&#039;&#039; filter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Textures.Details.Texture|Textures.Details.Texture]]&#039;&#039;[] textures&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all textures&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Textures.Fields.Texture&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Textures&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;textures&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Textures.Details.Texture&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Textures.RemoveTexture ====&lt;br /&gt;
Remove the specified texture&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* RemoveData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; textureid &#039;&#039;Texture database identifier&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Remove the specified texture&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;RemoveData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Texture database identifier&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;textureid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== VideoLibrary ===&lt;br /&gt;
==== VideoLibrary.Clean ====&lt;br /&gt;
Cleans the video library from non-existent items&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* RemoveData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; showdialogs = true ] &#039;&#039;Whether or not to show the progress bar or any other GUI dialog&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Cleans the video library from non-existent items&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;RemoveData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to show the progress bar or any other GUI dialog&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showdialogs&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.Export ====&lt;br /&gt;
Exports all items from the video library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* WriteFile&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;mixed: object|object&#039;&#039; options ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Exports all items from the video library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;WriteFile&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;path&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Path to the directory to where the data should be exported&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;actorthumbs&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: false,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Whether to export actor thumbnails&amp;quot;,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;images&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: false,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Whether to export thumbnails and fanart images&amp;quot;,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;overwrite&amp;quot;: {&lt;br /&gt;
              &amp;quot;default&amp;quot;: false,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Whether to overwrite existing exported files&amp;quot;,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;options&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetEpisodeDetails ====&lt;br /&gt;
Retrieve details about a specific tv show episode&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; episodeid&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Episode|Video.Fields.Episode]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Episode|Video.Details.Episode]]&#039;&#039; episodedetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific tv show episode&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Episode&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;episodedetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Episode&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetEpisodes ====&lt;br /&gt;
Retrieve all tv show episodes&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;integer&#039;&#039; season = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Episode|Video.Fields.Episode]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Episode|Video.Details.Episode]]&#039;&#039;[] episodes ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all tv show episodes&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;season&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Episode&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Requires tvshowid to be set&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genre&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Requires tvshowid to be set&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;year&amp;quot;: {&lt;br /&gt;
              &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;actor&amp;quot;: {&lt;br /&gt;
              &amp;quot;description&amp;quot;: &amp;quot;Requires tvshowid to be set&amp;quot;,&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;director&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Episodes&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;episodes&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Episode&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetGenres ====&lt;br /&gt;
Retrieve all genres&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; type&lt;br /&gt;
# [ &#039;&#039;[[#Library.Fields.Genre|Library.Fields.Genre]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Library.Details.Genre|Library.Details.Genre]]&#039;&#039;[] genres&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all genres&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Fields.Genre&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;genres&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Details.Genre&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetInProgressTVShows ====&lt;br /&gt;
Retrieve all in progress tvshows&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.TVShow|Video.Fields.TVShow]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.TVShow|Video.Details.TVShow]]&#039;&#039;[] tvshows ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all in progress tvshows&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.TVShow&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;tvshows&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.TVShow&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetMovieDetails ====&lt;br /&gt;
Retrieve details about a specific movie&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; movieid&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Movie|Video.Fields.Movie]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Movie|Video.Details.Movie]]&#039;&#039; moviedetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific movie&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;movieid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Movie&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;moviedetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Movie&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetMovies ====&lt;br /&gt;
Retrieve all movies&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Movie|Video.Fields.Movie]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Movie|Video.Details.Movie]]&#039;&#039;[] movies ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all movies&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Movie&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genre&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;year&amp;quot;: {&lt;br /&gt;
              &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;actor&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;director&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;studio&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;country&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;setid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;set&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;tag&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Movies&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;movies&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Movie&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetMovieSetDetails ====&lt;br /&gt;
Retrieve details about a specific movie set&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; setid&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; movies ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.MovieSet.Extended|Video.Details.MovieSet.Extended]]&#039;&#039; setdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific movie set&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.MovieSet&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;movies&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;setdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.MovieSet.Extended&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetMovieSets ====&lt;br /&gt;
Retrieve all movie sets&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.MovieSet|Video.Details.MovieSet]]&#039;&#039;[] sets ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all movie sets&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.MovieSet&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;sets&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.MovieSet&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetMusicVideoDetails ====&lt;br /&gt;
Retrieve details about a specific music video&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; musicvideoid&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]&#039;&#039; musicvideodetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific music video&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicvideoid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.MusicVideo&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;musicvideodetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.MusicVideo&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetMusicVideos ====&lt;br /&gt;
Retrieve all music videos&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]&#039;&#039;[] musicvideos ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all music videos&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.MusicVideo&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;artist&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genre&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;year&amp;quot;: {&lt;br /&gt;
              &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;director&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;studio&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;tag&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.MusicVideos&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;musicvideos&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.MusicVideo&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetRecentlyAddedEpisodes ====&lt;br /&gt;
Retrieve all recently added tv episodes&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Episode|Video.Fields.Episode]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Episode|Video.Details.Episode]]&#039;&#039;[] episodes ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all recently added tv episodes&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Episode&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;episodes&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Episode&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetRecentlyAddedMovies ====&lt;br /&gt;
Retrieve all recently added movies&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Movie|Video.Fields.Movie]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Movie|Video.Details.Movie]]&#039;&#039;[] movies ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all recently added movies&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Movie&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;movies&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Movie&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetRecentlyAddedMusicVideos ====&lt;br /&gt;
Retrieve all recently added music videos&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]&#039;&#039;[] musicvideos ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all recently added music videos&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.MusicVideo&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;musicvideos&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.MusicVideo&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetSeasonDetails ====&lt;br /&gt;
Retrieve details about a specific tv show season&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; seasonid&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Season|Video.Fields.Season]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Season|Video.Details.Season]]&#039;&#039; seasondetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific tv show season&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;seasonid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Season&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;seasondetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Season&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetSeasons ====&lt;br /&gt;
Retrieve all tv seasons&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.Season|Video.Fields.Season]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Season|Video.Details.Season]]&#039;&#039;[] seasons ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all tv seasons&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.Season&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;seasons&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Season&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetTags ====&lt;br /&gt;
Retrieve all tags&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; type&lt;br /&gt;
# [ &#039;&#039;[[#Library.Fields.Tag|Library.Fields.Tag]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* &#039;&#039;[[#Library.Details.Tag|Library.Details.Tag]]&#039;&#039;[] tags&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all tags&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Fields.Tag&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;tags&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Details.Tag&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetTVShowDetails ====&lt;br /&gt;
Retrieve details about a specific tv show&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.TVShow|Video.Fields.TVShow]]&#039;&#039; properties ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.TVShow|Video.Details.TVShow]]&#039;&#039; tvshowdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve details about a specific tv show&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.TVShow&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;tvshowdetails&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.TVShow&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.GetTVShows ====&lt;br /&gt;
Retrieve all tv shows&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;[[#Video.Fields.TVShow|Video.Fields.TVShow]]&#039;&#039; properties ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Limits|List.Limits]]&#039;&#039; limits ]&lt;br /&gt;
# [ &#039;&#039;[[#List.Sort|List.Sort]]&#039;&#039; sort ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; filter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.TVShow|Video.Details.TVShow]]&#039;&#039;[] tvshows ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve all tv shows&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Fields.TVShow&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;properties&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sort&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
              &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;genre&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;year&amp;quot;: {&lt;br /&gt;
              &amp;quot;minimum&amp;quot;: 0,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;actor&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;studio&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
          &amp;quot;properties&amp;quot;: {&lt;br /&gt;
            &amp;quot;tag&amp;quot;: {&lt;br /&gt;
              &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
              &amp;quot;required&amp;quot;: true,&lt;br /&gt;
              &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.TVShows&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;limits&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;tvshows&amp;quot;: {&lt;br /&gt;
        &amp;quot;items&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.TVShow&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RefreshEpisode ====&lt;br /&gt;
Refresh the given episode in the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; episodeid&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; ignorenfo = false ] &#039;&#039;Whether or not to ignore a local NFO if present.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; title ] &#039;&#039;Title to use for searching (instead of determining it from the item&#039;s filename/path).&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Refresh the given episode in the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to ignore a local NFO if present.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ignorenfo&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Title to use for searching (instead of determining it from the item&#039;s filename/path).&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RefreshMovie ====&lt;br /&gt;
Refresh the given movie in the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; movieid&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; ignorenfo = false ] &#039;&#039;Whether or not to ignore a local NFO if present.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; title ] &#039;&#039;Title to use for searching (instead of determining it from the item&#039;s filename/path).&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Refresh the given movie in the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;movieid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to ignore a local NFO if present.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ignorenfo&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Title to use for searching (instead of determining it from the item&#039;s filename/path).&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RefreshMusicVideo ====&lt;br /&gt;
Refresh the given music video in the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; musicvideoid&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; ignorenfo = false ] &#039;&#039;Whether or not to ignore a local NFO if present.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; title ] &#039;&#039;Title to use for searching (instead of determining it from the item&#039;s filename/path).&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Refresh the given music video in the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicvideoid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to ignore a local NFO if present.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ignorenfo&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Title to use for searching (instead of determining it from the item&#039;s filename/path).&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RefreshTVShow ====&lt;br /&gt;
Refresh the given tv show in the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; ignorenfo = false ] &#039;&#039;Whether or not to ignore a local NFO if present.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; refreshepisodes = false ] &#039;&#039;Whether or not to refresh all episodes belonging to the TV show.&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; title ] &#039;&#039;Title to use for searching (instead of determining it from the item&#039;s filename/path).&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Refresh the given tv show in the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to ignore a local NFO if present.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ignorenfo&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to refresh all episodes belonging to the TV show.&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;refreshepisodes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Title to use for searching (instead of determining it from the item&#039;s filename/path).&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RemoveEpisode ====&lt;br /&gt;
Removes the given episode from the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* RemoveData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; episodeid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Removes the given episode from the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;RemoveData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RemoveMovie ====&lt;br /&gt;
Removes the given movie from the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* RemoveData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; movieid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Removes the given movie from the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;RemoveData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;movieid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RemoveMusicVideo ====&lt;br /&gt;
Removes the given music video from the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* RemoveData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; musicvideoid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Removes the given music video from the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;RemoveData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicvideoid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.RemoveTVShow ====&lt;br /&gt;
Removes the given tv show from the library&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* RemoveData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Removes the given tv show from the library&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;RemoveData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.Scan ====&lt;br /&gt;
Scans the video sources for new library items&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# [ &#039;&#039;string&#039;&#039; directory ]&lt;br /&gt;
# [ &#039;&#039;boolean&#039;&#039; showdialogs = true ] &#039;&#039;Whether or not to show the progress bar or any other GUI dialog&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Scans the video sources for new library items&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;directory&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Whether or not to show the progress bar or any other GUI dialog&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showdialogs&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.SetEpisodeDetails ====&lt;br /&gt;
Update the given episode with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; episodeid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; title ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; playcount ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; runtime ] &#039;&#039;Runtime in seconds&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; director ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; plot ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Number|Optional.Number]]&#039;&#039; rating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; votes ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; lastplayed ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; writer ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; firstaired ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; productioncode ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; season ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; episode ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; originaltitle ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; thumbnail ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; fanart ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; art ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; resume ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; userrating ]&lt;br /&gt;
# [ &#039;&#039;[[#Video.Ratings.Set|Video.Ratings.Set]]&#039;&#039; ratings ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; dateadded ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; uniqueid ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given episode with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Runtime in seconds&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;director&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;writer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;firstaired&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;productioncode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;season&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Resume&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;resume&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Ratings.Set&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ratings&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;dateadded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.UniqueID.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.SetMovieDetails ====&lt;br /&gt;
Update the given movie with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; movieid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; title ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; playcount ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; runtime ] &#039;&#039;Runtime in seconds&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; director ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; studio ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; year ] &#039;&#039;linked with premiered. Overridden by premiered parameter&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; plot ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; genre ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Number|Optional.Number]]&#039;&#039; rating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; mpaa ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; imdbnumber ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; votes ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; lastplayed ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; originaltitle ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; trailer ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; tagline ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; plotoutline ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; writer ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; country ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; top250 ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; sorttitle ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; set ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; showlink ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; thumbnail ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; fanart ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; tag ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; art ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; resume ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; userrating ]&lt;br /&gt;
# [ &#039;&#039;[[#Video.Ratings.Set|Video.Ratings.Set]]&#039;&#039; ratings ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; dateadded ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; premiered ] &#039;&#039;linked with year. Overriedes year&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; uniqueid ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given movie with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;movieid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Runtime in seconds&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;director&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;studio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;linked with premiered. Overridden by premiered parameter&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mpaa&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;imdbnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;trailer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tagline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plotoutline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;writer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;country&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;top250&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sorttitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;set&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showlink&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tag&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Resume&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;resume&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Ratings.Set&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ratings&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;dateadded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;linked with year. Overriedes year&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;premiered&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.UniqueID.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.SetMovieSetDetails ====&lt;br /&gt;
Update the given movie set with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; setid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; title ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; art ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given movie set with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.SetMusicVideoDetails ====&lt;br /&gt;
Update the given music video with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; musicvideoid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; title ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; playcount ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; runtime ] &#039;&#039;Runtime in seconds&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; director ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; studio ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; year ] &#039;&#039;linked with premiered. Overridden by premiered parameter&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; plot ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; album ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; artist ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; genre ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; track ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; lastplayed ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; thumbnail ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; fanart ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; tag ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; art ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; resume ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Number|Optional.Number]]&#039;&#039; rating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; userrating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; dateadded ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; premiered ] &#039;&#039;linked with year. Overriedes year&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given music video with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicvideoid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Runtime in seconds&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;director&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;studio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;linked with premiered. Overridden by premiered parameter&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;album&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;track&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tag&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Video.Resume&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;resume&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;dateadded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;linked with year. Overriedes year&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;premiered&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.SetSeasonDetails ====&lt;br /&gt;
Update the given season with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; seasonid&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; art ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; userrating ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given season with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;seasonid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.SetTVShowDetails ====&lt;br /&gt;
Update the given tvshow with the given details&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* UpdateData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; title ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; playcount ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; studio ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; plot ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; genre ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Number|Optional.Number]]&#039;&#039; rating ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; mpaa ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; imdbnumber ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; premiered ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; votes ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; lastplayed ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; originaltitle ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; sorttitle ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; episodeguide ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; thumbnail ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; fanart ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; tag ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; art ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; userrating ]&lt;br /&gt;
# [ &#039;&#039;[[#Video.Ratings.Set|Video.Ratings.Set]]&#039;&#039; ratings ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; dateadded ]&lt;br /&gt;
# [ &#039;&#039;[[#Optional.Integer|Optional.Integer]]&#039;&#039; runtime ] &#039;&#039;Runtime in seconds&#039;&#039;&lt;br /&gt;
# [ &#039;&#039;[[#Optional.String|Optional.String]]&#039;&#039; status ]&lt;br /&gt;
# [ &#039;&#039;mixed&#039;&#039; uniqueid ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Update the given tvshow with the given details&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;UpdateData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;studio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mpaa&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;imdbnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;premiered&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sorttitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeguide&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tag&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Ratings.Set&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ratings&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;dateadded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Runtime in seconds&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;status&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Media.UniqueID.Set&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== XBMC ===&lt;br /&gt;
==== XBMC.GetInfoBooleans ====&lt;br /&gt;
Retrieve info booleans about Kodi and the system&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039;[] booleans&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &#039;&#039;Object containing key-value pairs of the retrieved info booleans&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve info booleans about Kodi and the system&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;booleans&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Object containing key-value pairs of the retrieved info booleans&amp;quot;,&lt;br /&gt;
    &amp;quot;additionalProperties&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== XBMC.GetInfoLabels ====&lt;br /&gt;
Retrieve info labels about Kodi and the system&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Permissions:&#039;&#039;&#039;&lt;br /&gt;
* ReadData&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039;[] labels &#039;&#039;See http://kodi.wiki/view/InfoLabels for a list of possible info labels&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Returns:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;object&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &#039;&#039;Object containing key-value pairs of the retrieved info labels&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Retrieve info labels about Kodi and the system&amp;quot;,&lt;br /&gt;
  &amp;quot;permission&amp;quot;: &amp;quot;ReadData&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;method&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;See http://kodi.wiki/view/InfoLabels for a list of possible info labels&amp;quot;,&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;labels&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;returns&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Object containing key-value pairs of the retrieved info labels&amp;quot;,&lt;br /&gt;
    &amp;quot;additionalProperties&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Global Types ==&lt;br /&gt;
=== Addon ===&lt;br /&gt;
==== Addon.Content ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;unknown&amp;quot;,&lt;br /&gt;
    &amp;quot;video&amp;quot;,&lt;br /&gt;
    &amp;quot;audio&amp;quot;,&lt;br /&gt;
    &amp;quot;image&amp;quot;,&lt;br /&gt;
    &amp;quot;executable&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Addon.Content&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Addon.Details ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; addonid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; author ]&lt;br /&gt;
* [ &#039;&#039;mixed: boolean|string&#039;&#039; broken ]&lt;br /&gt;
* [ &#039;&#039;object&#039;&#039; dependencies ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; description ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; disclaimer ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; enabled = false ]&lt;br /&gt;
* [ &#039;&#039;object&#039;&#039; extrainfo ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; fanart ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; installed = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; name ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; path ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; rating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; summary ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; thumbnail ]&lt;br /&gt;
* &#039;&#039;[[#Addon.Types|Addon.Types]]&#039;&#039; type&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; version ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Addon.Details&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;addonid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;addonid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;author&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;author&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;broken&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;broken&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;dependencies&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;addonid&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;optional&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;version&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;dependencies&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;description&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;description&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;disclaimer&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;disclaimer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;enabled&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;enabled&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;extrainfo&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;key&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;value&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;extrainfo&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fanart&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;installed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;installed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;path&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;path&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;summary&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;summary&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Types&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;version&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;version&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Addon.Fields ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Addon.Fields&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;name&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;,&lt;br /&gt;
      &amp;quot;summary&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;,&lt;br /&gt;
      &amp;quot;path&amp;quot;,&lt;br /&gt;
      &amp;quot;author&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;disclaimer&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;dependencies&amp;quot;,&lt;br /&gt;
      &amp;quot;broken&amp;quot;,&lt;br /&gt;
      &amp;quot;extrainfo&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;enabled&amp;quot;,&lt;br /&gt;
      &amp;quot;installed&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Addon.Types ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;unknown&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.player.musicviz&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.gui.skin&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.pvrclient&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.adsp&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.inputstream&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.peripheral&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.python.script&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.python.weather&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.subtitle.module&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.python.lyrics&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.metadata.scraper.albums&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.metadata.scraper.artists&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.metadata.scraper.movies&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.metadata.scraper.musicvideos&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.metadata.scraper.tvshows&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.ui.screensaver&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.python.pluginsource&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.addon.repository&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.webinterface&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.service&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.audioencoder&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.context.item&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.audiodecoder&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.resource.images&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.resource.language&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.resource.uisounds&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.addon.video&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.addon.audio&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.addon.image&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.addon.executable&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.metadata.scraper.library&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.python.library&amp;quot;,&lt;br /&gt;
    &amp;quot;xbmc.python.module&amp;quot;,&lt;br /&gt;
    &amp;quot;kodi.game.controller&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Addon.Types&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
==== Application.Property.Name ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;volume&amp;quot;,&lt;br /&gt;
    &amp;quot;muted&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Application.Property.Name&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;volume&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Application.Property.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; muted = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; name ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; version ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; volume = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Application.Property.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;muted&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;muted&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;name&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;version&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;version&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;volume&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Array ===&lt;br /&gt;
==== Array.Integer ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Array.Integer&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Array.String ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;minLength&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
==== Audio.Album.ReleaseType ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;album&amp;quot;,&lt;br /&gt;
    &amp;quot;single&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Album.ReleaseType&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;album&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Artist.Roles ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Artist.Roles&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;The various roles contributed by an artist to one or more songs&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;role&amp;quot;: {&lt;br /&gt;
        &amp;quot;required&amp;quot;: true,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Contributors ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Contributors&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;The artist and the role they contribute to a song&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;name&amp;quot;: {&lt;br /&gt;
        &amp;quot;required&amp;quot;: true,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;role&amp;quot;: {&lt;br /&gt;
        &amp;quot;required&amp;quot;: true,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Details.Album ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Audio.Details.Media|Audio.Details.Media]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; albumid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; albumlabel ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; compilation = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; description ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; mood ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; playcount = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]&#039;&#039; releasetype = &amp;quot;album&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; style ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; theme ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; type ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Audio.Details.Media&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Details.Album&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;albumid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumlabel&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumlabel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;compilation&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;compilation&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;description&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;description&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mood&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mood&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;playcount&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;releasetype&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Album.ReleaseType&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;releasetype&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;style&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;style&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;theme&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;theme&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Details.Artist ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Audio.Details.Base|Audio.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; artist&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; artistid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; born ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; compilationartist = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; description ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; died ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; disbanded ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; formed ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; instrument ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; isalbumartist = false ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; mood ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; musicbrainzartistid ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Artist.Roles|Audio.Artist.Roles]]&#039;&#039; roles ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Details.Genres|Audio.Details.Genres]]&#039;&#039; songgenres ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; style ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; yearsactive ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Audio.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Details.Artist&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;artist&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artist&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artistid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;born&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;born&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;compilationartist&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;compilationartist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;description&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;description&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;died&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;died&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;disbanded&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;disbanded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;formed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;formed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;instrument&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;instrument&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;isalbumartist&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;isalbumartist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mood&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mood&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicbrainzartistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;roles&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Artist.Roles&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;roles&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;songgenres&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Details.Genres&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;songgenres&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;style&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;style&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;yearsactive&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;yearsactive&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Details.Base ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Media.Details.Base|Media.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; dateadded ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; genre ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Media.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Details.Base&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;dateadded&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;dateadded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;genre&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Details.Genres ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Details.Genres&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
        &amp;quot;required&amp;quot;: true&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;title&amp;quot;: {&lt;br /&gt;
        &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Details.Media ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Audio.Details.Base|Audio.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; artist ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.Integer|Array.Integer]]&#039;&#039; artistid ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displayartist ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.Integer|Array.Integer]]&#039;&#039; genreid ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; musicbrainzalbumartistid ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; musicbrainzalbumid ]&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; rating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; userrating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; votes = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; year = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Audio.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Details.Media&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;artist&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displayartist&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displayartist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genreid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicbrainzalbumartistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzalbumartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicbrainzalbumid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzalbumid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;userrating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;votes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;year&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Details.Role ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; roleid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Details.Role&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;roleid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;roleid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Details.Song ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Audio.Details.Media|Audio.Details.Media]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; album ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; albumartist ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.Integer|Array.Integer]]&#039;&#039; albumartistid ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; albumid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]&#039;&#039; albumreleasetype = &amp;quot;album&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; comment ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Contributors|Audio.Contributors]]&#039;&#039; contributors ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; disc = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displaycomposer ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displayconductor ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displaylyricist ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displayorchestra ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; duration = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; file ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lastplayed ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lyrics ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; mood ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; musicbrainzartistid ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; musicbrainztrackid ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; playcount = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; songid&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; track = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Audio.Details.Media&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Details.Song&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;album&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;album&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumartist&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumartist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumartistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumreleasetype&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Album.ReleaseType&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumreleasetype&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;comment&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;comment&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;contributors&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Contributors&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;contributors&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;disc&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;disc&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displaycomposer&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displaycomposer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displayconductor&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displayconductor&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displaylyricist&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displaylyricist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displayorchestra&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displayorchestra&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;duration&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;duration&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;file&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lyrics&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lyrics&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mood&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mood&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicbrainzartistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicbrainztrackid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainztrackid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;playcount&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;songid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;songid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;track&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;track&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Fields.Album ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Fields.Album&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Requesting the genreid and/or artistid field will result in increased response times&amp;quot;,&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;,&lt;br /&gt;
      &amp;quot;artist&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;theme&amp;quot;,&lt;br /&gt;
      &amp;quot;mood&amp;quot;,&lt;br /&gt;
      &amp;quot;style&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;albumlabel&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;votes&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;genreid&amp;quot;,&lt;br /&gt;
      &amp;quot;artistid&amp;quot;,&lt;br /&gt;
      &amp;quot;displayartist&amp;quot;,&lt;br /&gt;
      &amp;quot;compilation&amp;quot;,&lt;br /&gt;
      &amp;quot;releasetype&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Fields.Artist ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Fields.Artist&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Requesting the (song)genreid/genre, or roleid/role fields will result in increased response times&amp;quot;,&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;instrument&amp;quot;,&lt;br /&gt;
      &amp;quot;style&amp;quot;,&lt;br /&gt;
      &amp;quot;mood&amp;quot;,&lt;br /&gt;
      &amp;quot;born&amp;quot;,&lt;br /&gt;
      &amp;quot;formed&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;died&amp;quot;,&lt;br /&gt;
      &amp;quot;disbanded&amp;quot;,&lt;br /&gt;
      &amp;quot;yearsactive&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;compilationartist&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;roles&amp;quot;,&lt;br /&gt;
      &amp;quot;songgenres&amp;quot;,&lt;br /&gt;
      &amp;quot;isalbumartist&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Fields.Role ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Fields.Role&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Fields.Song ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Fields.Song&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Requesting the genreid, artistid and/or albumartistid field will result in increased response times&amp;quot;,&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;artist&amp;quot;,&lt;br /&gt;
      &amp;quot;albumartist&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;track&amp;quot;,&lt;br /&gt;
      &amp;quot;duration&amp;quot;,&lt;br /&gt;
      &amp;quot;comment&amp;quot;,&lt;br /&gt;
      &amp;quot;lyrics&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainztrackid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;albumid&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;disc&amp;quot;,&lt;br /&gt;
      &amp;quot;genreid&amp;quot;,&lt;br /&gt;
      &amp;quot;artistid&amp;quot;,&lt;br /&gt;
      &amp;quot;displayartist&amp;quot;,&lt;br /&gt;
      &amp;quot;albumartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;albumreleasetype&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;votes&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;,&lt;br /&gt;
      &amp;quot;mood&amp;quot;,&lt;br /&gt;
      &amp;quot;contributors&amp;quot;,&lt;br /&gt;
      &amp;quot;displaycomposer&amp;quot;,&lt;br /&gt;
      &amp;quot;displayconductor&amp;quot;,&lt;br /&gt;
      &amp;quot;displayorchestra&amp;quot;,&lt;br /&gt;
      &amp;quot;displaylyricist&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Property.Name ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;missingartistid&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Property.Name&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;missingartistid&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Audio.Property.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; missingartistid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Audio.Property.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;missingartistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;missingartistid&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
==== Configuration.Configuration ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Configuration.Notifications|Configuration.Notifications]]&#039;&#039; notifications&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Configuration&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;notifications&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Configuration.Notifications&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;notifications&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Configuration.Notifications ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; application&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; audiolibrary&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; gui&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; input&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; other&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; player&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; playlist&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; pvr&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; system&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; videolibrary&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Configuration.Notifications&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;application&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;application&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;audiolibrary&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;audiolibrary&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;gui&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;gui&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;input&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;input&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;other&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;other&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;player&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;playlist&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlist&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;pvr&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;pvr&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;system&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;system&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;videolibrary&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;videolibrary&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Favourite ===&lt;br /&gt;
==== Favourite.Details.Favourite ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; path ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; thumbnail ]&lt;br /&gt;
* &#039;&#039;string&#039;&#039; title&lt;br /&gt;
* &#039;&#039;[[#Favourite.Type|Favourite.Type]]&#039;&#039; type&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; window ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; windowparameter ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Favourite.Details.Favourite&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;path&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;path&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Favourite.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;window&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;window&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;windowparameter&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;windowparameter&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Favourite.Fields.Favourite ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Favourite.Fields.Favourite&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;window&amp;quot;,&lt;br /&gt;
      &amp;quot;windowparameter&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;path&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Favourite.Type ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;media&amp;quot;,&lt;br /&gt;
    &amp;quot;window&amp;quot;,&lt;br /&gt;
    &amp;quot;script&amp;quot;,&lt;br /&gt;
    &amp;quot;unknown&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Favourite.Type&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;media&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
==== Files.Media ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;video&amp;quot;,&lt;br /&gt;
    &amp;quot;music&amp;quot;,&lt;br /&gt;
    &amp;quot;pictures&amp;quot;,&lt;br /&gt;
    &amp;quot;files&amp;quot;,&lt;br /&gt;
    &amp;quot;programs&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Files.Media&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;video&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Global ===&lt;br /&gt;
==== Global.IncrementDecrement ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;increment&amp;quot;,&lt;br /&gt;
    &amp;quot;decrement&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Global.IncrementDecrement&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;increment&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Global.String.NotEmpty ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Global.Time ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; hours&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; milliseconds&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; minutes&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; seconds&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Global.Time&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;hours&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hours&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;milliseconds&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;milliseconds&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;minutes&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;minutes&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;seconds&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;seconds&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Global.Toggle ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Global.Toggle&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;enums&amp;quot;: [&lt;br /&gt;
        &amp;quot;toggle&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Global.Weekday ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;monday&amp;quot;,&lt;br /&gt;
    &amp;quot;tuesday&amp;quot;,&lt;br /&gt;
    &amp;quot;wednesday&amp;quot;,&lt;br /&gt;
    &amp;quot;thursday&amp;quot;,&lt;br /&gt;
    &amp;quot;friday&amp;quot;,&lt;br /&gt;
    &amp;quot;saturday&amp;quot;,&lt;br /&gt;
    &amp;quot;sunday&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Global.Weekday&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;monday&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== GUI ===&lt;br /&gt;
==== GUI.Property.Name ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;currentwindow&amp;quot;,&lt;br /&gt;
    &amp;quot;currentcontrol&amp;quot;,&lt;br /&gt;
    &amp;quot;skin&amp;quot;,&lt;br /&gt;
    &amp;quot;fullscreen&amp;quot;,&lt;br /&gt;
    &amp;quot;stereoscopicmode&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;GUI.Property.Name&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;currentwindow&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.Property.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; currentcontrol ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; currentwindow ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; fullscreen = false ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; skin ]&lt;br /&gt;
* [ &#039;&#039;[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]&#039;&#039; stereoscopicmode ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;GUI.Property.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;currentcontrol&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;currentcontrol&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;currentwindow&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;currentwindow&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fullscreen&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fullscreen&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;skin&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;skin&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;stereoscopicmode&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;GUI.Stereoscopy.Mode&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;stereoscopicmode&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.Stereoscopy.Mode ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; label&lt;br /&gt;
* &#039;&#039;string&#039;&#039; mode&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;GUI.Stereoscopy.Mode&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;label&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;label&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mode&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mode&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.Window ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;home&amp;quot;,&lt;br /&gt;
    &amp;quot;programs&amp;quot;,&lt;br /&gt;
    &amp;quot;pictures&amp;quot;,&lt;br /&gt;
    &amp;quot;filemanager&amp;quot;,&lt;br /&gt;
    &amp;quot;settings&amp;quot;,&lt;br /&gt;
    &amp;quot;music&amp;quot;,&lt;br /&gt;
    &amp;quot;videos&amp;quot;,&lt;br /&gt;
    &amp;quot;tvchannels&amp;quot;,&lt;br /&gt;
    &amp;quot;tvrecordings&amp;quot;,&lt;br /&gt;
    &amp;quot;tvguide&amp;quot;,&lt;br /&gt;
    &amp;quot;tvtimers&amp;quot;,&lt;br /&gt;
    &amp;quot;tvsearch&amp;quot;,&lt;br /&gt;
    &amp;quot;radiochannels&amp;quot;,&lt;br /&gt;
    &amp;quot;radiorecordings&amp;quot;,&lt;br /&gt;
    &amp;quot;radioguide&amp;quot;,&lt;br /&gt;
    &amp;quot;radiotimers&amp;quot;,&lt;br /&gt;
    &amp;quot;radiosearch&amp;quot;,&lt;br /&gt;
    &amp;quot;gamecontrollers&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrguideinfo&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrrecordinginfo&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrradiordsinfo&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrtimersetting&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrgroupmanager&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrchannelmanager&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrguidesearch&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrchannelscan&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrupdateprogress&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrosdchannels&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrosdguide&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrosdteletext&amp;quot;,&lt;br /&gt;
    &amp;quot;systeminfo&amp;quot;,&lt;br /&gt;
    &amp;quot;testpattern&amp;quot;,&lt;br /&gt;
    &amp;quot;screencalibration&amp;quot;,&lt;br /&gt;
    &amp;quot;systemsettings&amp;quot;,&lt;br /&gt;
    &amp;quot;servicesettings&amp;quot;,&lt;br /&gt;
    &amp;quot;pvrsettings&amp;quot;,&lt;br /&gt;
    &amp;quot;playersettings&amp;quot;,&lt;br /&gt;
    &amp;quot;mediasettings&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesettings&amp;quot;,&lt;br /&gt;
    &amp;quot;appearancesettings&amp;quot;,&lt;br /&gt;
    &amp;quot;videoplaylist&amp;quot;,&lt;br /&gt;
    &amp;quot;loginscreen&amp;quot;,&lt;br /&gt;
    &amp;quot;profiles&amp;quot;,&lt;br /&gt;
    &amp;quot;skinsettings&amp;quot;,&lt;br /&gt;
    &amp;quot;addonbrowser&amp;quot;,&lt;br /&gt;
    &amp;quot;yesnodialog&amp;quot;,&lt;br /&gt;
    &amp;quot;progressdialog&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualkeyboard&amp;quot;,&lt;br /&gt;
    &amp;quot;volumebar&amp;quot;,&lt;br /&gt;
    &amp;quot;submenu&amp;quot;,&lt;br /&gt;
    &amp;quot;favourites&amp;quot;,&lt;br /&gt;
    &amp;quot;contextmenu&amp;quot;,&lt;br /&gt;
    &amp;quot;notification&amp;quot;,&lt;br /&gt;
    &amp;quot;numericinput&amp;quot;,&lt;br /&gt;
    &amp;quot;gamepadinput&amp;quot;,&lt;br /&gt;
    &amp;quot;shutdownmenu&amp;quot;,&lt;br /&gt;
    &amp;quot;playercontrols&amp;quot;,&lt;br /&gt;
    &amp;quot;playerprocessinfo&amp;quot;,&lt;br /&gt;
    &amp;quot;seekbar&amp;quot;,&lt;br /&gt;
    &amp;quot;musicosd&amp;quot;,&lt;br /&gt;
    &amp;quot;addonsettings&amp;quot;,&lt;br /&gt;
    &amp;quot;visualisationpresetlist&amp;quot;,&lt;br /&gt;
    &amp;quot;osdcmssettings&amp;quot;,&lt;br /&gt;
    &amp;quot;osdvideosettings&amp;quot;,&lt;br /&gt;
    &amp;quot;osdaudiosettings&amp;quot;,&lt;br /&gt;
    &amp;quot;audiodspmanager&amp;quot;,&lt;br /&gt;
    &amp;quot;osdaudiodspsettings&amp;quot;,&lt;br /&gt;
    &amp;quot;videobookmarks&amp;quot;,&lt;br /&gt;
    &amp;quot;filebrowser&amp;quot;,&lt;br /&gt;
    &amp;quot;networksetup&amp;quot;,&lt;br /&gt;
    &amp;quot;mediasource&amp;quot;,&lt;br /&gt;
    &amp;quot;profilesettings&amp;quot;,&lt;br /&gt;
    &amp;quot;locksettings&amp;quot;,&lt;br /&gt;
    &amp;quot;contentsettings&amp;quot;,&lt;br /&gt;
    &amp;quot;songinformation&amp;quot;,&lt;br /&gt;
    &amp;quot;smartplaylisteditor&amp;quot;,&lt;br /&gt;
    &amp;quot;smartplaylistrule&amp;quot;,&lt;br /&gt;
    &amp;quot;busydialog&amp;quot;,&lt;br /&gt;
    &amp;quot;pictureinfo&amp;quot;,&lt;br /&gt;
    &amp;quot;accesspoints&amp;quot;,&lt;br /&gt;
    &amp;quot;fullscreeninfo&amp;quot;,&lt;br /&gt;
    &amp;quot;sliderdialog&amp;quot;,&lt;br /&gt;
    &amp;quot;addoninformation&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlesearch&amp;quot;,&lt;br /&gt;
    &amp;quot;musicplaylist&amp;quot;,&lt;br /&gt;
    &amp;quot;musicplaylisteditor&amp;quot;,&lt;br /&gt;
    &amp;quot;teletext&amp;quot;,&lt;br /&gt;
    &amp;quot;selectdialog&amp;quot;,&lt;br /&gt;
    &amp;quot;musicinformation&amp;quot;,&lt;br /&gt;
    &amp;quot;okdialog&amp;quot;,&lt;br /&gt;
    &amp;quot;movieinformation&amp;quot;,&lt;br /&gt;
    &amp;quot;textviewer&amp;quot;,&lt;br /&gt;
    &amp;quot;fullscreenvideo&amp;quot;,&lt;br /&gt;
    &amp;quot;fullscreenlivetv&amp;quot;,&lt;br /&gt;
    &amp;quot;fullscreenradio&amp;quot;,&lt;br /&gt;
    &amp;quot;visualisation&amp;quot;,&lt;br /&gt;
    &amp;quot;slideshow&amp;quot;,&lt;br /&gt;
    &amp;quot;weather&amp;quot;,&lt;br /&gt;
    &amp;quot;screensaver&amp;quot;,&lt;br /&gt;
    &amp;quot;videoosd&amp;quot;,&lt;br /&gt;
    &amp;quot;videomenu&amp;quot;,&lt;br /&gt;
    &amp;quot;videotimeseek&amp;quot;,&lt;br /&gt;
    &amp;quot;startwindow&amp;quot;,&lt;br /&gt;
    &amp;quot;startup&amp;quot;,&lt;br /&gt;
    &amp;quot;peripheralsettings&amp;quot;,&lt;br /&gt;
    &amp;quot;extendedprogressdialog&amp;quot;,&lt;br /&gt;
    &amp;quot;mediafilter&amp;quot;,&lt;br /&gt;
    &amp;quot;addon&amp;quot;,&lt;br /&gt;
    &amp;quot;eventlog&amp;quot;,&lt;br /&gt;
    &amp;quot;tvtimerrules&amp;quot;,&lt;br /&gt;
    &amp;quot;radiotimerrules&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;GUI.Window&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;home&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
==== Input.Action ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;left&amp;quot;,&lt;br /&gt;
    &amp;quot;right&amp;quot;,&lt;br /&gt;
    &amp;quot;up&amp;quot;,&lt;br /&gt;
    &amp;quot;down&amp;quot;,&lt;br /&gt;
    &amp;quot;pageup&amp;quot;,&lt;br /&gt;
    &amp;quot;pagedown&amp;quot;,&lt;br /&gt;
    &amp;quot;select&amp;quot;,&lt;br /&gt;
    &amp;quot;highlight&amp;quot;,&lt;br /&gt;
    &amp;quot;parentdir&amp;quot;,&lt;br /&gt;
    &amp;quot;parentfolder&amp;quot;,&lt;br /&gt;
    &amp;quot;back&amp;quot;,&lt;br /&gt;
    &amp;quot;menu&amp;quot;,&lt;br /&gt;
    &amp;quot;previousmenu&amp;quot;,&lt;br /&gt;
    &amp;quot;info&amp;quot;,&lt;br /&gt;
    &amp;quot;pause&amp;quot;,&lt;br /&gt;
    &amp;quot;stop&amp;quot;,&lt;br /&gt;
    &amp;quot;skipnext&amp;quot;,&lt;br /&gt;
    &amp;quot;skipprevious&amp;quot;,&lt;br /&gt;
    &amp;quot;fullscreen&amp;quot;,&lt;br /&gt;
    &amp;quot;aspectratio&amp;quot;,&lt;br /&gt;
    &amp;quot;stepforward&amp;quot;,&lt;br /&gt;
    &amp;quot;stepback&amp;quot;,&lt;br /&gt;
    &amp;quot;bigstepforward&amp;quot;,&lt;br /&gt;
    &amp;quot;bigstepback&amp;quot;,&lt;br /&gt;
    &amp;quot;chapterorbigstepforward&amp;quot;,&lt;br /&gt;
    &amp;quot;chapterorbigstepback&amp;quot;,&lt;br /&gt;
    &amp;quot;osd&amp;quot;,&lt;br /&gt;
    &amp;quot;showsubtitles&amp;quot;,&lt;br /&gt;
    &amp;quot;nextsubtitle&amp;quot;,&lt;br /&gt;
    &amp;quot;cyclesubtitle&amp;quot;,&lt;br /&gt;
    &amp;quot;playerdebug&amp;quot;,&lt;br /&gt;
    &amp;quot;codecinfo&amp;quot;,&lt;br /&gt;
    &amp;quot;playerprocessinfo&amp;quot;,&lt;br /&gt;
    &amp;quot;nextpicture&amp;quot;,&lt;br /&gt;
    &amp;quot;previouspicture&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomout&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomin&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;queue&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomnormal&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel1&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel2&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel3&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel4&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel5&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel6&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel7&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel8&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomlevel9&amp;quot;,&lt;br /&gt;
    &amp;quot;nextcalibration&amp;quot;,&lt;br /&gt;
    &amp;quot;resetcalibration&amp;quot;,&lt;br /&gt;
    &amp;quot;analogmove&amp;quot;,&lt;br /&gt;
    &amp;quot;analogmovex&amp;quot;,&lt;br /&gt;
    &amp;quot;analogmovey&amp;quot;,&lt;br /&gt;
    &amp;quot;rotate&amp;quot;,&lt;br /&gt;
    &amp;quot;rotateccw&amp;quot;,&lt;br /&gt;
    &amp;quot;close&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitledelayminus&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitledelay&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitledelayplus&amp;quot;,&lt;br /&gt;
    &amp;quot;audiodelayminus&amp;quot;,&lt;br /&gt;
    &amp;quot;audiodelay&amp;quot;,&lt;br /&gt;
    &amp;quot;audiodelayplus&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitleshiftup&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitleshiftdown&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlealign&amp;quot;,&lt;br /&gt;
    &amp;quot;audionextlanguage&amp;quot;,&lt;br /&gt;
    &amp;quot;verticalshiftup&amp;quot;,&lt;br /&gt;
    &amp;quot;verticalshiftdown&amp;quot;,&lt;br /&gt;
    &amp;quot;nextresolution&amp;quot;,&lt;br /&gt;
    &amp;quot;audiotoggledigital&amp;quot;,&lt;br /&gt;
    &amp;quot;number0&amp;quot;,&lt;br /&gt;
    &amp;quot;number1&amp;quot;,&lt;br /&gt;
    &amp;quot;number2&amp;quot;,&lt;br /&gt;
    &amp;quot;number3&amp;quot;,&lt;br /&gt;
    &amp;quot;number4&amp;quot;,&lt;br /&gt;
    &amp;quot;number5&amp;quot;,&lt;br /&gt;
    &amp;quot;number6&amp;quot;,&lt;br /&gt;
    &amp;quot;number7&amp;quot;,&lt;br /&gt;
    &amp;quot;number8&amp;quot;,&lt;br /&gt;
    &amp;quot;number9&amp;quot;,&lt;br /&gt;
    &amp;quot;smallstepback&amp;quot;,&lt;br /&gt;
    &amp;quot;fastforward&amp;quot;,&lt;br /&gt;
    &amp;quot;rewind&amp;quot;,&lt;br /&gt;
    &amp;quot;play&amp;quot;,&lt;br /&gt;
    &amp;quot;playpause&amp;quot;,&lt;br /&gt;
    &amp;quot;switchplayer&amp;quot;,&lt;br /&gt;
    &amp;quot;delete&amp;quot;,&lt;br /&gt;
    &amp;quot;copy&amp;quot;,&lt;br /&gt;
    &amp;quot;move&amp;quot;,&lt;br /&gt;
    &amp;quot;screenshot&amp;quot;,&lt;br /&gt;
    &amp;quot;rename&amp;quot;,&lt;br /&gt;
    &amp;quot;togglewatched&amp;quot;,&lt;br /&gt;
    &amp;quot;scanitem&amp;quot;,&lt;br /&gt;
    &amp;quot;reloadkeymaps&amp;quot;,&lt;br /&gt;
    &amp;quot;volumeup&amp;quot;,&lt;br /&gt;
    &amp;quot;volumedown&amp;quot;,&lt;br /&gt;
    &amp;quot;mute&amp;quot;,&lt;br /&gt;
    &amp;quot;backspace&amp;quot;,&lt;br /&gt;
    &amp;quot;scrollup&amp;quot;,&lt;br /&gt;
    &amp;quot;scrolldown&amp;quot;,&lt;br /&gt;
    &amp;quot;analogfastforward&amp;quot;,&lt;br /&gt;
    &amp;quot;analogrewind&amp;quot;,&lt;br /&gt;
    &amp;quot;moveitemup&amp;quot;,&lt;br /&gt;
    &amp;quot;moveitemdown&amp;quot;,&lt;br /&gt;
    &amp;quot;contextmenu&amp;quot;,&lt;br /&gt;
    &amp;quot;shift&amp;quot;,&lt;br /&gt;
    &amp;quot;symbols&amp;quot;,&lt;br /&gt;
    &amp;quot;cursorleft&amp;quot;,&lt;br /&gt;
    &amp;quot;cursorright&amp;quot;,&lt;br /&gt;
    &amp;quot;showtime&amp;quot;,&lt;br /&gt;
    &amp;quot;analogseekforward&amp;quot;,&lt;br /&gt;
    &amp;quot;analogseekback&amp;quot;,&lt;br /&gt;
    &amp;quot;showpreset&amp;quot;,&lt;br /&gt;
    &amp;quot;nextpreset&amp;quot;,&lt;br /&gt;
    &amp;quot;previouspreset&amp;quot;,&lt;br /&gt;
    &amp;quot;lockpreset&amp;quot;,&lt;br /&gt;
    &amp;quot;randompreset&amp;quot;,&lt;br /&gt;
    &amp;quot;increasevisrating&amp;quot;,&lt;br /&gt;
    &amp;quot;decreasevisrating&amp;quot;,&lt;br /&gt;
    &amp;quot;showvideomenu&amp;quot;,&lt;br /&gt;
    &amp;quot;enter&amp;quot;,&lt;br /&gt;
    &amp;quot;increaserating&amp;quot;,&lt;br /&gt;
    &amp;quot;decreaserating&amp;quot;,&lt;br /&gt;
    &amp;quot;setrating&amp;quot;,&lt;br /&gt;
    &amp;quot;togglefullscreen&amp;quot;,&lt;br /&gt;
    &amp;quot;nextscene&amp;quot;,&lt;br /&gt;
    &amp;quot;previousscene&amp;quot;,&lt;br /&gt;
    &amp;quot;nextletter&amp;quot;,&lt;br /&gt;
    &amp;quot;prevletter&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms2&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms3&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms4&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms5&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms6&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms7&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms8&amp;quot;,&lt;br /&gt;
    &amp;quot;jumpsms9&amp;quot;,&lt;br /&gt;
    &amp;quot;filter&amp;quot;,&lt;br /&gt;
    &amp;quot;filterclear&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms2&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms3&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms4&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms5&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms6&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms7&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms8&amp;quot;,&lt;br /&gt;
    &amp;quot;filtersms9&amp;quot;,&lt;br /&gt;
    &amp;quot;firstpage&amp;quot;,&lt;br /&gt;
    &amp;quot;lastpage&amp;quot;,&lt;br /&gt;
    &amp;quot;guiprofile&amp;quot;,&lt;br /&gt;
    &amp;quot;red&amp;quot;,&lt;br /&gt;
    &amp;quot;green&amp;quot;,&lt;br /&gt;
    &amp;quot;yellow&amp;quot;,&lt;br /&gt;
    &amp;quot;blue&amp;quot;,&lt;br /&gt;
    &amp;quot;increasepar&amp;quot;,&lt;br /&gt;
    &amp;quot;decreasepar&amp;quot;,&lt;br /&gt;
    &amp;quot;volampup&amp;quot;,&lt;br /&gt;
    &amp;quot;volampdown&amp;quot;,&lt;br /&gt;
    &amp;quot;volumeamplification&amp;quot;,&lt;br /&gt;
    &amp;quot;createbookmark&amp;quot;,&lt;br /&gt;
    &amp;quot;createepisodebookmark&amp;quot;,&lt;br /&gt;
    &amp;quot;settingsreset&amp;quot;,&lt;br /&gt;
    &amp;quot;settingslevelchange&amp;quot;,&lt;br /&gt;
    &amp;quot;stereomode&amp;quot;,&lt;br /&gt;
    &amp;quot;nextstereomode&amp;quot;,&lt;br /&gt;
    &amp;quot;previousstereomode&amp;quot;,&lt;br /&gt;
    &amp;quot;togglestereomode&amp;quot;,&lt;br /&gt;
    &amp;quot;stereomodetomono&amp;quot;,&lt;br /&gt;
    &amp;quot;channelup&amp;quot;,&lt;br /&gt;
    &amp;quot;channeldown&amp;quot;,&lt;br /&gt;
    &amp;quot;previouschannelgroup&amp;quot;,&lt;br /&gt;
    &amp;quot;nextchannelgroup&amp;quot;,&lt;br /&gt;
    &amp;quot;playpvr&amp;quot;,&lt;br /&gt;
    &amp;quot;playpvrtv&amp;quot;,&lt;br /&gt;
    &amp;quot;playpvrradio&amp;quot;,&lt;br /&gt;
    &amp;quot;record&amp;quot;,&lt;br /&gt;
    &amp;quot;togglecommskip&amp;quot;,&lt;br /&gt;
    &amp;quot;showtimerrule&amp;quot;,&lt;br /&gt;
    &amp;quot;leftclick&amp;quot;,&lt;br /&gt;
    &amp;quot;rightclick&amp;quot;,&lt;br /&gt;
    &amp;quot;middleclick&amp;quot;,&lt;br /&gt;
    &amp;quot;doubleclick&amp;quot;,&lt;br /&gt;
    &amp;quot;longclick&amp;quot;,&lt;br /&gt;
    &amp;quot;wheelup&amp;quot;,&lt;br /&gt;
    &amp;quot;wheeldown&amp;quot;,&lt;br /&gt;
    &amp;quot;mousedrag&amp;quot;,&lt;br /&gt;
    &amp;quot;mousemove&amp;quot;,&lt;br /&gt;
    &amp;quot;tap&amp;quot;,&lt;br /&gt;
    &amp;quot;longpress&amp;quot;,&lt;br /&gt;
    &amp;quot;pangesture&amp;quot;,&lt;br /&gt;
    &amp;quot;zoomgesture&amp;quot;,&lt;br /&gt;
    &amp;quot;rotategesture&amp;quot;,&lt;br /&gt;
    &amp;quot;swipeleft&amp;quot;,&lt;br /&gt;
    &amp;quot;swiperight&amp;quot;,&lt;br /&gt;
    &amp;quot;swipeup&amp;quot;,&lt;br /&gt;
    &amp;quot;swipedown&amp;quot;,&lt;br /&gt;
    &amp;quot;error&amp;quot;,&lt;br /&gt;
    &amp;quot;noop&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Input.Action&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;left&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Item ===&lt;br /&gt;
==== Item.Details.Base ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; label&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Item.Details.Base&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;label&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;label&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Item.Fields.Base ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Item.Fields.Base&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Library ===&lt;br /&gt;
==== Library.Details.Genre ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; genreid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; thumbnail ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Library.Details.Genre&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genreid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Library.Details.Tag ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tagid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Library.Details.Tag&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;tagid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tagid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Library.Fields.Genre ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Library.Fields.Genre&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Library.Fields.Tag ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Library.Fields.Tag&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Library.Id ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;integer&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: -1&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== List ===&lt;br /&gt;
==== List.Amount ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;integer&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Amount&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: -1&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Fields.All ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Fields.All&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;artist&amp;quot;,&lt;br /&gt;
      &amp;quot;albumartist&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;track&amp;quot;,&lt;br /&gt;
      &amp;quot;duration&amp;quot;,&lt;br /&gt;
      &amp;quot;comment&amp;quot;,&lt;br /&gt;
      &amp;quot;lyrics&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainztrackid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;director&amp;quot;,&lt;br /&gt;
      &amp;quot;trailer&amp;quot;,&lt;br /&gt;
      &amp;quot;tagline&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;plotoutline&amp;quot;,&lt;br /&gt;
      &amp;quot;originaltitle&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;writer&amp;quot;,&lt;br /&gt;
      &amp;quot;studio&amp;quot;,&lt;br /&gt;
      &amp;quot;mpaa&amp;quot;,&lt;br /&gt;
      &amp;quot;cast&amp;quot;,&lt;br /&gt;
      &amp;quot;country&amp;quot;,&lt;br /&gt;
      &amp;quot;imdbnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;premiered&amp;quot;,&lt;br /&gt;
      &amp;quot;productioncode&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;set&amp;quot;,&lt;br /&gt;
      &amp;quot;showlink&amp;quot;,&lt;br /&gt;
      &amp;quot;streamdetails&amp;quot;,&lt;br /&gt;
      &amp;quot;top250&amp;quot;,&lt;br /&gt;
      &amp;quot;votes&amp;quot;,&lt;br /&gt;
      &amp;quot;firstaired&amp;quot;,&lt;br /&gt;
      &amp;quot;season&amp;quot;,&lt;br /&gt;
      &amp;quot;episode&amp;quot;,&lt;br /&gt;
      &amp;quot;showtitle&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;resume&amp;quot;,&lt;br /&gt;
      &amp;quot;artistid&amp;quot;,&lt;br /&gt;
      &amp;quot;albumid&amp;quot;,&lt;br /&gt;
      &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;setid&amp;quot;,&lt;br /&gt;
      &amp;quot;watchedepisodes&amp;quot;,&lt;br /&gt;
      &amp;quot;disc&amp;quot;,&lt;br /&gt;
      &amp;quot;tag&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;genreid&amp;quot;,&lt;br /&gt;
      &amp;quot;displayartist&amp;quot;,&lt;br /&gt;
      &amp;quot;albumartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;,&lt;br /&gt;
      &amp;quot;theme&amp;quot;,&lt;br /&gt;
      &amp;quot;mood&amp;quot;,&lt;br /&gt;
      &amp;quot;style&amp;quot;,&lt;br /&gt;
      &amp;quot;albumlabel&amp;quot;,&lt;br /&gt;
      &amp;quot;sorttitle&amp;quot;,&lt;br /&gt;
      &amp;quot;episodeguide&amp;quot;,&lt;br /&gt;
      &amp;quot;uniqueid&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;channel&amp;quot;,&lt;br /&gt;
      &amp;quot;channeltype&amp;quot;,&lt;br /&gt;
      &amp;quot;hidden&amp;quot;,&lt;br /&gt;
      &amp;quot;locked&amp;quot;,&lt;br /&gt;
      &amp;quot;channelnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;starttime&amp;quot;,&lt;br /&gt;
      &amp;quot;endtime&amp;quot;,&lt;br /&gt;
      &amp;quot;specialsortseason&amp;quot;,&lt;br /&gt;
      &amp;quot;specialsortepisode&amp;quot;,&lt;br /&gt;
      &amp;quot;compilation&amp;quot;,&lt;br /&gt;
      &amp;quot;releasetype&amp;quot;,&lt;br /&gt;
      &amp;quot;albumreleasetype&amp;quot;,&lt;br /&gt;
      &amp;quot;contributors&amp;quot;,&lt;br /&gt;
      &amp;quot;displaycomposer&amp;quot;,&lt;br /&gt;
      &amp;quot;displayconductor&amp;quot;,&lt;br /&gt;
      &amp;quot;displayorchestra&amp;quot;,&lt;br /&gt;
      &amp;quot;displaylyricist&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Fields.Files ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Fields.Files&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;artist&amp;quot;,&lt;br /&gt;
      &amp;quot;albumartist&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;track&amp;quot;,&lt;br /&gt;
      &amp;quot;duration&amp;quot;,&lt;br /&gt;
      &amp;quot;comment&amp;quot;,&lt;br /&gt;
      &amp;quot;lyrics&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainztrackid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumid&amp;quot;,&lt;br /&gt;
      &amp;quot;musicbrainzalbumartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;director&amp;quot;,&lt;br /&gt;
      &amp;quot;trailer&amp;quot;,&lt;br /&gt;
      &amp;quot;tagline&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;plotoutline&amp;quot;,&lt;br /&gt;
      &amp;quot;originaltitle&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;writer&amp;quot;,&lt;br /&gt;
      &amp;quot;studio&amp;quot;,&lt;br /&gt;
      &amp;quot;mpaa&amp;quot;,&lt;br /&gt;
      &amp;quot;cast&amp;quot;,&lt;br /&gt;
      &amp;quot;country&amp;quot;,&lt;br /&gt;
      &amp;quot;imdbnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;premiered&amp;quot;,&lt;br /&gt;
      &amp;quot;productioncode&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;set&amp;quot;,&lt;br /&gt;
      &amp;quot;showlink&amp;quot;,&lt;br /&gt;
      &amp;quot;streamdetails&amp;quot;,&lt;br /&gt;
      &amp;quot;top250&amp;quot;,&lt;br /&gt;
      &amp;quot;votes&amp;quot;,&lt;br /&gt;
      &amp;quot;firstaired&amp;quot;,&lt;br /&gt;
      &amp;quot;season&amp;quot;,&lt;br /&gt;
      &amp;quot;episode&amp;quot;,&lt;br /&gt;
      &amp;quot;showtitle&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;resume&amp;quot;,&lt;br /&gt;
      &amp;quot;artistid&amp;quot;,&lt;br /&gt;
      &amp;quot;albumid&amp;quot;,&lt;br /&gt;
      &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;setid&amp;quot;,&lt;br /&gt;
      &amp;quot;watchedepisodes&amp;quot;,&lt;br /&gt;
      &amp;quot;disc&amp;quot;,&lt;br /&gt;
      &amp;quot;tag&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;genreid&amp;quot;,&lt;br /&gt;
      &amp;quot;displayartist&amp;quot;,&lt;br /&gt;
      &amp;quot;albumartistid&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;,&lt;br /&gt;
      &amp;quot;theme&amp;quot;,&lt;br /&gt;
      &amp;quot;mood&amp;quot;,&lt;br /&gt;
      &amp;quot;style&amp;quot;,&lt;br /&gt;
      &amp;quot;albumlabel&amp;quot;,&lt;br /&gt;
      &amp;quot;sorttitle&amp;quot;,&lt;br /&gt;
      &amp;quot;episodeguide&amp;quot;,&lt;br /&gt;
      &amp;quot;uniqueid&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;size&amp;quot;,&lt;br /&gt;
      &amp;quot;lastmodified&amp;quot;,&lt;br /&gt;
      &amp;quot;mimetype&amp;quot;,&lt;br /&gt;
      &amp;quot;specialsortseason&amp;quot;,&lt;br /&gt;
      &amp;quot;specialsortepisode&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Albums ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Albums&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Albums&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Albums&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.Albums&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Artists ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Artists&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Artists&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Artists&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.Artists&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Episodes ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Episodes&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Episodes&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Episodes&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.Episodes&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.Albums ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;genre&amp;quot;,&lt;br /&gt;
    &amp;quot;album&amp;quot;,&lt;br /&gt;
    &amp;quot;artist&amp;quot;,&lt;br /&gt;
    &amp;quot;albumartist&amp;quot;,&lt;br /&gt;
    &amp;quot;year&amp;quot;,&lt;br /&gt;
    &amp;quot;review&amp;quot;,&lt;br /&gt;
    &amp;quot;themes&amp;quot;,&lt;br /&gt;
    &amp;quot;moods&amp;quot;,&lt;br /&gt;
    &amp;quot;styles&amp;quot;,&lt;br /&gt;
    &amp;quot;compilation&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;,&lt;br /&gt;
    &amp;quot;label&amp;quot;,&lt;br /&gt;
    &amp;quot;rating&amp;quot;,&lt;br /&gt;
    &amp;quot;userrating&amp;quot;,&lt;br /&gt;
    &amp;quot;playcount&amp;quot;,&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualfolder&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.Albums&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.Artists ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;artist&amp;quot;,&lt;br /&gt;
    &amp;quot;genre&amp;quot;,&lt;br /&gt;
    &amp;quot;moods&amp;quot;,&lt;br /&gt;
    &amp;quot;styles&amp;quot;,&lt;br /&gt;
    &amp;quot;instruments&amp;quot;,&lt;br /&gt;
    &amp;quot;biography&amp;quot;,&lt;br /&gt;
    &amp;quot;born&amp;quot;,&lt;br /&gt;
    &amp;quot;bandformed&amp;quot;,&lt;br /&gt;
    &amp;quot;disbanded&amp;quot;,&lt;br /&gt;
    &amp;quot;died&amp;quot;,&lt;br /&gt;
    &amp;quot;role&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualfolder&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.Artists&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;artist&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.Episodes ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;title&amp;quot;,&lt;br /&gt;
    &amp;quot;tvshow&amp;quot;,&lt;br /&gt;
    &amp;quot;plot&amp;quot;,&lt;br /&gt;
    &amp;quot;votes&amp;quot;,&lt;br /&gt;
    &amp;quot;rating&amp;quot;,&lt;br /&gt;
    &amp;quot;userrating&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;writers&amp;quot;,&lt;br /&gt;
    &amp;quot;airdate&amp;quot;,&lt;br /&gt;
    &amp;quot;playcount&amp;quot;,&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
    &amp;quot;inprogress&amp;quot;,&lt;br /&gt;
    &amp;quot;genre&amp;quot;,&lt;br /&gt;
    &amp;quot;year&amp;quot;,&lt;br /&gt;
    &amp;quot;director&amp;quot;,&lt;br /&gt;
    &amp;quot;actor&amp;quot;,&lt;br /&gt;
    &amp;quot;episode&amp;quot;,&lt;br /&gt;
    &amp;quot;season&amp;quot;,&lt;br /&gt;
    &amp;quot;filename&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;studio&amp;quot;,&lt;br /&gt;
    &amp;quot;mpaarating&amp;quot;,&lt;br /&gt;
    &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
    &amp;quot;tag&amp;quot;,&lt;br /&gt;
    &amp;quot;videoresolution&amp;quot;,&lt;br /&gt;
    &amp;quot;audiochannels&amp;quot;,&lt;br /&gt;
    &amp;quot;audiocount&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlecount&amp;quot;,&lt;br /&gt;
    &amp;quot;videocodec&amp;quot;,&lt;br /&gt;
    &amp;quot;audiocodec&amp;quot;,&lt;br /&gt;
    &amp;quot;audiolanguage&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlelanguage&amp;quot;,&lt;br /&gt;
    &amp;quot;videoaspect&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualfolder&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.Episodes&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.Movies ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;title&amp;quot;,&lt;br /&gt;
    &amp;quot;plot&amp;quot;,&lt;br /&gt;
    &amp;quot;plotoutline&amp;quot;,&lt;br /&gt;
    &amp;quot;tagline&amp;quot;,&lt;br /&gt;
    &amp;quot;votes&amp;quot;,&lt;br /&gt;
    &amp;quot;rating&amp;quot;,&lt;br /&gt;
    &amp;quot;userrating&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;writers&amp;quot;,&lt;br /&gt;
    &amp;quot;playcount&amp;quot;,&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
    &amp;quot;inprogress&amp;quot;,&lt;br /&gt;
    &amp;quot;genre&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;,&lt;br /&gt;
    &amp;quot;year&amp;quot;,&lt;br /&gt;
    &amp;quot;director&amp;quot;,&lt;br /&gt;
    &amp;quot;actor&amp;quot;,&lt;br /&gt;
    &amp;quot;mpaarating&amp;quot;,&lt;br /&gt;
    &amp;quot;top250&amp;quot;,&lt;br /&gt;
    &amp;quot;studio&amp;quot;,&lt;br /&gt;
    &amp;quot;hastrailer&amp;quot;,&lt;br /&gt;
    &amp;quot;filename&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;set&amp;quot;,&lt;br /&gt;
    &amp;quot;tag&amp;quot;,&lt;br /&gt;
    &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
    &amp;quot;videoresolution&amp;quot;,&lt;br /&gt;
    &amp;quot;audiochannels&amp;quot;,&lt;br /&gt;
    &amp;quot;audiocount&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlecount&amp;quot;,&lt;br /&gt;
    &amp;quot;videocodec&amp;quot;,&lt;br /&gt;
    &amp;quot;audiocodec&amp;quot;,&lt;br /&gt;
    &amp;quot;audiolanguage&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlelanguage&amp;quot;,&lt;br /&gt;
    &amp;quot;videoaspect&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualfolder&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.Movies&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.MusicVideos ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;title&amp;quot;,&lt;br /&gt;
    &amp;quot;genre&amp;quot;,&lt;br /&gt;
    &amp;quot;album&amp;quot;,&lt;br /&gt;
    &amp;quot;year&amp;quot;,&lt;br /&gt;
    &amp;quot;artist&amp;quot;,&lt;br /&gt;
    &amp;quot;filename&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;playcount&amp;quot;,&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
    &amp;quot;rating&amp;quot;,&lt;br /&gt;
    &amp;quot;userrating&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;director&amp;quot;,&lt;br /&gt;
    &amp;quot;studio&amp;quot;,&lt;br /&gt;
    &amp;quot;plot&amp;quot;,&lt;br /&gt;
    &amp;quot;tag&amp;quot;,&lt;br /&gt;
    &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
    &amp;quot;videoresolution&amp;quot;,&lt;br /&gt;
    &amp;quot;audiochannels&amp;quot;,&lt;br /&gt;
    &amp;quot;audiocount&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlecount&amp;quot;,&lt;br /&gt;
    &amp;quot;videocodec&amp;quot;,&lt;br /&gt;
    &amp;quot;audiocodec&amp;quot;,&lt;br /&gt;
    &amp;quot;audiolanguage&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitlelanguage&amp;quot;,&lt;br /&gt;
    &amp;quot;videoaspect&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualfolder&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.MusicVideos&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.Songs ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;genre&amp;quot;,&lt;br /&gt;
    &amp;quot;album&amp;quot;,&lt;br /&gt;
    &amp;quot;artist&amp;quot;,&lt;br /&gt;
    &amp;quot;albumartist&amp;quot;,&lt;br /&gt;
    &amp;quot;title&amp;quot;,&lt;br /&gt;
    &amp;quot;year&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;tracknumber&amp;quot;,&lt;br /&gt;
    &amp;quot;filename&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;playcount&amp;quot;,&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
    &amp;quot;rating&amp;quot;,&lt;br /&gt;
    &amp;quot;userrating&amp;quot;,&lt;br /&gt;
    &amp;quot;comment&amp;quot;,&lt;br /&gt;
    &amp;quot;moods&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualfolder&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.Songs&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.Textures ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;textureid&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;,&lt;br /&gt;
    &amp;quot;cachedurl&amp;quot;,&lt;br /&gt;
    &amp;quot;lasthashcheck&amp;quot;,&lt;br /&gt;
    &amp;quot;imagehash&amp;quot;,&lt;br /&gt;
    &amp;quot;width&amp;quot;,&lt;br /&gt;
    &amp;quot;height&amp;quot;,&lt;br /&gt;
    &amp;quot;usecount&amp;quot;,&lt;br /&gt;
    &amp;quot;lastused&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.Textures&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;textureid&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Fields.TVShows ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;title&amp;quot;,&lt;br /&gt;
    &amp;quot;plot&amp;quot;,&lt;br /&gt;
    &amp;quot;status&amp;quot;,&lt;br /&gt;
    &amp;quot;votes&amp;quot;,&lt;br /&gt;
    &amp;quot;rating&amp;quot;,&lt;br /&gt;
    &amp;quot;userrating&amp;quot;,&lt;br /&gt;
    &amp;quot;year&amp;quot;,&lt;br /&gt;
    &amp;quot;genre&amp;quot;,&lt;br /&gt;
    &amp;quot;director&amp;quot;,&lt;br /&gt;
    &amp;quot;actor&amp;quot;,&lt;br /&gt;
    &amp;quot;numepisodes&amp;quot;,&lt;br /&gt;
    &amp;quot;numwatched&amp;quot;,&lt;br /&gt;
    &amp;quot;playcount&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;studio&amp;quot;,&lt;br /&gt;
    &amp;quot;mpaarating&amp;quot;,&lt;br /&gt;
    &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
    &amp;quot;inprogress&amp;quot;,&lt;br /&gt;
    &amp;quot;tag&amp;quot;,&lt;br /&gt;
    &amp;quot;playlist&amp;quot;,&lt;br /&gt;
    &amp;quot;virtualfolder&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Fields.TVShows&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Movies ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Movies&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Movies&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Movies&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.Movies&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.MusicVideos ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.MusicVideos&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.MusicVideos&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.MusicVideos&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.MusicVideos&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Operators ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;contains&amp;quot;,&lt;br /&gt;
    &amp;quot;doesnotcontain&amp;quot;,&lt;br /&gt;
    &amp;quot;is&amp;quot;,&lt;br /&gt;
    &amp;quot;isnot&amp;quot;,&lt;br /&gt;
    &amp;quot;startswith&amp;quot;,&lt;br /&gt;
    &amp;quot;endswith&amp;quot;,&lt;br /&gt;
    &amp;quot;greaterthan&amp;quot;,&lt;br /&gt;
    &amp;quot;lessthan&amp;quot;,&lt;br /&gt;
    &amp;quot;after&amp;quot;,&lt;br /&gt;
    &amp;quot;before&amp;quot;,&lt;br /&gt;
    &amp;quot;inthelast&amp;quot;,&lt;br /&gt;
    &amp;quot;notinthelast&amp;quot;,&lt;br /&gt;
    &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;between&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Operators&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;contains&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Operators|List.Filter.Operators]]&#039;&#039; operator&lt;br /&gt;
* &#039;&#039;mixed: string|array&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;operator&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Operators&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;operator&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.Albums ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.Albums|List.Filter.Fields.Albums]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.Albums&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.Albums&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.Artists ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.Artists|List.Filter.Fields.Artists]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.Artists&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.Artists&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.Episodes ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.Episodes|List.Filter.Fields.Episodes]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.Episodes&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.Episodes&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.Movies ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.Movies|List.Filter.Fields.Movies]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.Movies&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.Movies&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.MusicVideos ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.MusicVideos|List.Filter.Fields.MusicVideos]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.MusicVideos&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.MusicVideos&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.Songs ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.Songs|List.Filter.Fields.Songs]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.Songs&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.Songs&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.Textures ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.Textures|List.Filter.Fields.Textures]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.Textures&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.Textures&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Rule.TVShows ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Rule|List.Filter.Rule]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.Filter.Fields.TVShows|List.Filter.Fields.TVShows]]&#039;&#039; field&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Filter.Rule&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Rule.TVShows&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;field&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Fields.TVShows&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;field&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Songs ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Songs&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Songs&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Songs&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.Songs&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.Textures ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.Textures&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Textures&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Textures&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.Textures&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Filter.TVShows ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Filter.TVShows&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;and&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.TVShows&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;or&amp;quot;: {&lt;br /&gt;
          &amp;quot;items&amp;quot;: {&lt;br /&gt;
            &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.TVShows&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;minItems&amp;quot;: 1,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Filter.Rule.TVShows&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Item.All ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Item.Base|List.Item.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; channel ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; channelnumber = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Channel.Type|PVR.Channel.Type]]&#039;&#039; channeltype = &amp;quot;tv&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; endtime ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; hidden = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; locked = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; starttime ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Item.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Item.All&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;channel&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channelnumber&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channeltype&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Channel.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channeltype&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;endtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;endtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hidden&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hidden&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;locked&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;locked&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;starttime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;starttime&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Item.Base ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.File|Video.Details.File]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Audio.Details.Media|Audio.Details.Media]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; album ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; albumartist ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.Integer|Array.Integer]]&#039;&#039; albumartistid ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; albumid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; albumlabel ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]&#039;&#039; albumreleasetype = &amp;quot;album&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Video.Cast|Video.Cast]]&#039;&#039; cast ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; comment ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; compilation = false ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Contributors|Audio.Contributors]]&#039;&#039; contributors ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; country ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; description ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; disc = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displaycomposer ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displayconductor ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displaylyricist ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; displayorchestra ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; duration = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; episode = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; episodeguide ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; firstaired ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; id = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; imdbnumber ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lyrics ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; mood ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; mpaa ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; musicbrainzartistid ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; musicbrainztrackid ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; originaltitle ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plotoutline ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; premiered ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; productioncode ]&lt;br /&gt;
* [ &#039;&#039;[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]&#039;&#039; releasetype = &amp;quot;album&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; season = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; set ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; setid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; showlink ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; showtitle ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; sorttitle ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; specialsortepisode = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; specialsortseason = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; studio ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; style ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; tag ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; tagline ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; theme ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; top250 = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; track = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; trailer ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; type = &amp;quot;unknown&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Media.UniqueID|Media.UniqueID]]&#039;&#039; uniqueid ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; votes ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; watchedepisodes = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; writer ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.File&amp;quot;,&lt;br /&gt;
    &amp;quot;Audio.Details.Media&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Item.Base&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;album&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;album&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumartist&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumartist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumartistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.Integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumlabel&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumlabel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;albumreleasetype&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Album.ReleaseType&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;albumreleasetype&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cast&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Cast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;cast&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;comment&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;comment&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;compilation&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;compilation&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;contributors&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Contributors&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;contributors&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;country&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;description&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;description&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;disc&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;disc&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displaycomposer&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displaycomposer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displayconductor&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displayconductor&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displaylyricist&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displaylyricist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;displayorchestra&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;displayorchestra&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;duration&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;duration&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episodeguide&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeguide&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;firstaired&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;firstaired&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;id&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;id&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;imdbnumber&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;imdbnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lyrics&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lyrics&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mood&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mood&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mpaa&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mpaa&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicbrainzartistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainzartistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicbrainztrackid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicbrainztrackid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;originaltitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;plotoutline&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plotoutline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;premiered&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;premiered&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;productioncode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;productioncode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;releasetype&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Audio.Album.ReleaseType&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;releasetype&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;season&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;season&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;set&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;set&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;setid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;showlink&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showlink&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;showtitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showtitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;sorttitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sorttitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;specialsortepisode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;specialsortepisode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;specialsortseason&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;specialsortseason&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;studio&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;studio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;style&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;style&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tag&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tag&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tagline&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tagline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;theme&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;theme&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;top250&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;top250&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;track&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;track&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;trailer&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;trailer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tvshowid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;uniqueid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Media.UniqueID&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;votes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;watchedepisodes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;watchedepisodes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;writer&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;writer&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Item.File ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#List.Item.Base|List.Item.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; file&lt;br /&gt;
* &#039;&#039;string&#039;&#039; filetype&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lastmodified ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; mimetype ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; size = &amp;quot;0&amp;quot; ] &#039;&#039;Size of the file in bytes&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;List.Item.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Item.File&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;file&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;filetype&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;filetype&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lastmodified&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastmodified&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mimetype&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mimetype&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;size&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Size of the file in bytes&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;size&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Items.Sources ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Items.Sources&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;extends&amp;quot;: &amp;quot;Item.Details.Base&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;file&amp;quot;: {&lt;br /&gt;
        &amp;quot;required&amp;quot;: true,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Limits ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#List.Amount|List.Amount]]&#039;&#039; end = &amp;quot;-1&amp;quot; ] &#039;&#039;Index of the last item to return&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; start = &amp;quot;0&amp;quot; ] &#039;&#039;Index of the first item to return&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Limits&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;end&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Index of the last item to return&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Amount&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;end&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;start&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Index of the first item to return&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;start&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.LimitsReturned ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#List.Amount|List.Amount]]&#039;&#039; end = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; start = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; total&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;end&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.Amount&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;end&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;start&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;start&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;total&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;total&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== List.Sort ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; ignorearticle = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; method = &amp;quot;none&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; order = &amp;quot;ascending&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;List.Sort&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;ignorearticle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ignorearticle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;method&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;none&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;method&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;order&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;ascending&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;order&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Media ===&lt;br /&gt;
==== Media.Artwork ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Global.String.NotEmpty|Global.String.NotEmpty]]&#039;&#039; banner ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.String.NotEmpty|Global.String.NotEmpty]]&#039;&#039; fanart ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.String.NotEmpty|Global.String.NotEmpty]]&#039;&#039; poster ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.String.NotEmpty|Global.String.NotEmpty]]&#039;&#039; thumb ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Media.Artwork&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;banner&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;banner&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fanart&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;poster&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;poster&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumb&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumb&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Media.Artwork.Set ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; banner ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; fanart ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; poster ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; thumb ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Media.Artwork.Set&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;banner&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;banner&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fanart&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;poster&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;poster&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumb&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Global.String.NotEmpty&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumb&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Media.Details.Base ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; fanart ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; thumbnail ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Media.Details.Base&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;fanart&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fanart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Media.UniqueID ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Media.UniqueID&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Media.UniqueID.Set ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Media.UniqueID.Set&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Notifications ===&lt;br /&gt;
==== Notifications.Item ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Notifications.Item&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;An unknown item does not have any additional information.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;An item known to the database has an identification.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;id&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;A movie item has a title and may have a release year.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;title&amp;quot;: {&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;year&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;A tv episode has a title and may have an episode number, season number and the title of the show it belongs to.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;episode&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;season&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;showtitle&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;title&amp;quot;: {&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;A music video has a title and may have an album and an artist.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;album&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;artist&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;title&amp;quot;: {&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;A song has a title and may have an album, an artist and a track number.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;album&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;artist&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;title&amp;quot;: {&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;track&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;A picture has a file path.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;file&amp;quot;: {&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;A PVR channel is either a radio or tv channel and has a title.&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;channeltype&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Channel.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;id&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;title&amp;quot;: {&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Notifications.Item.Type ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;unknown&amp;quot;,&lt;br /&gt;
    &amp;quot;movie&amp;quot;,&lt;br /&gt;
    &amp;quot;episode&amp;quot;,&lt;br /&gt;
    &amp;quot;musicvideo&amp;quot;,&lt;br /&gt;
    &amp;quot;song&amp;quot;,&lt;br /&gt;
    &amp;quot;picture&amp;quot;,&lt;br /&gt;
    &amp;quot;channel&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Notifications.Item.Type&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Optional ===&lt;br /&gt;
==== Optional.Boolean ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Optional.Boolean&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Optional.Integer ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Optional.Integer&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Optional.Number ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Optional.Number&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Optional.String ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Optional.String&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
==== Player.Audio.Stream ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; bitrate&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; channels&lt;br /&gt;
* &#039;&#039;string&#039;&#039; codec&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; index&lt;br /&gt;
* &#039;&#039;string&#039;&#039; language&lt;br /&gt;
* &#039;&#039;string&#039;&#039; name&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Audio.Stream&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;bitrate&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;bitrate&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channels&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channels&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;codec&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;codec&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;index&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;index&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;language&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;language&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;name&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Id ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;integer&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: -1&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Notifications.Data ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Notifications.Item|Notifications.Item]]&#039;&#039; item&lt;br /&gt;
* &#039;&#039;[[#Player.Notifications.Player|Player.Notifications.Player]]&#039;&#039; player&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Notifications.Data&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;item&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;item&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;player&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Player&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Notifications.Player ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Player.Id|Player.Id]]&#039;&#039; playerid&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; speed = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Notifications.Player&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;playerid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;speed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;speed&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Notifications.Player.Seek ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Player.Notifications.Player|Player.Notifications.Player]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Global.Time|Global.Time]]&#039;&#039; seekoffset ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.Time|Global.Time]]&#039;&#039; time ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Player.Notifications.Player&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Notifications.Player.Seek&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;seekoffset&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Time&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;seekoffset&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;time&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Time&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;time&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Position.Percentage ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;number&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Position.Percentage&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: 0&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Position.Time ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; hours = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; milliseconds = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; minutes = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; seconds = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Position.Time&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;hours&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hours&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;milliseconds&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;milliseconds&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;minutes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;minutes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;seconds&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;seconds&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Property.Name ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;type&amp;quot;,&lt;br /&gt;
    &amp;quot;partymode&amp;quot;,&lt;br /&gt;
    &amp;quot;speed&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;percentage&amp;quot;,&lt;br /&gt;
    &amp;quot;totaltime&amp;quot;,&lt;br /&gt;
    &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
    &amp;quot;position&amp;quot;,&lt;br /&gt;
    &amp;quot;repeat&amp;quot;,&lt;br /&gt;
    &amp;quot;shuffled&amp;quot;,&lt;br /&gt;
    &amp;quot;canseek&amp;quot;,&lt;br /&gt;
    &amp;quot;canchangespeed&amp;quot;,&lt;br /&gt;
    &amp;quot;canmove&amp;quot;,&lt;br /&gt;
    &amp;quot;canzoom&amp;quot;,&lt;br /&gt;
    &amp;quot;canrotate&amp;quot;,&lt;br /&gt;
    &amp;quot;canshuffle&amp;quot;,&lt;br /&gt;
    &amp;quot;canrepeat&amp;quot;,&lt;br /&gt;
    &amp;quot;currentaudiostream&amp;quot;,&lt;br /&gt;
    &amp;quot;audiostreams&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitleenabled&amp;quot;,&lt;br /&gt;
    &amp;quot;currentsubtitle&amp;quot;,&lt;br /&gt;
    &amp;quot;subtitles&amp;quot;,&lt;br /&gt;
    &amp;quot;live&amp;quot;,&lt;br /&gt;
    &amp;quot;currentvideostream&amp;quot;,&lt;br /&gt;
    &amp;quot;videostreams&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Property.Name&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Property.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Player.Audio.Stream|Player.Audio.Stream]]&#039;&#039;[] audiostreams ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canchangespeed = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canmove = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canrepeat = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canrotate = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canseek = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canshuffle = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canzoom = false ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Audio.Stream|Player.Audio.Stream]]&#039;&#039; currentaudiostream ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Subtitle|Player.Subtitle]]&#039;&#039; currentsubtitle ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Video.Stream|Player.Video.Stream]]&#039;&#039; currentvideostream ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; live = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; partymode = false ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Position.Percentage|Player.Position.Percentage]]&#039;&#039; percentage = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Playlist.Position|Playlist.Position]]&#039;&#039; position = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Repeat|Player.Repeat]]&#039;&#039; repeat = &amp;quot;off&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; shuffled = false ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; speed = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; subtitleenabled = false ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Subtitle|Player.Subtitle]]&#039;&#039;[] subtitles ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.Time|Global.Time]]&#039;&#039; time ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.Time|Global.Time]]&#039;&#039; totaltime ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Type|Player.Type]]&#039;&#039; type = &amp;quot;video&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Player.Video.Stream|Player.Video.Stream]]&#039;&#039;[] videostreams ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Property.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;audiostreams&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Player.Audio.Stream&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;audiostreams&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canchangespeed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canchangespeed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canmove&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canmove&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canrepeat&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canrepeat&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canrotate&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canrotate&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canseek&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canseek&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canshuffle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canshuffle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canzoom&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canzoom&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;currentaudiostream&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Audio.Stream&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;currentaudiostream&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;currentsubtitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Subtitle&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;currentsubtitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;currentvideostream&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Video.Stream&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;currentvideostream&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;live&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;live&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;partymode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;partymode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;percentage&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Position.Percentage&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;percentage&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;playlistid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;position&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;position&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;repeat&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;off&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Repeat&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;repeat&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;shuffled&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;shuffled&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;speed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;speed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;subtitleenabled&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;subtitleenabled&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;subtitles&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Player.Subtitle&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;subtitles&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;time&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Time&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;time&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;totaltime&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Global.Time&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;totaltime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;video&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;videostreams&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Player.Video.Stream&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;videostreams&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Repeat ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;off&amp;quot;,&lt;br /&gt;
    &amp;quot;one&amp;quot;,&lt;br /&gt;
    &amp;quot;all&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Repeat&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;off&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Speed ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; speed = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Speed&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;speed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;speed&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Subtitle ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; index&lt;br /&gt;
* &#039;&#039;string&#039;&#039; language&lt;br /&gt;
* &#039;&#039;string&#039;&#039; name&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Subtitle&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;index&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;index&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;language&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;language&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;name&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Type ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;video&amp;quot;,&lt;br /&gt;
    &amp;quot;audio&amp;quot;,&lt;br /&gt;
    &amp;quot;picture&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Type&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;video&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.Video.Stream ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; codec&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; height&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; index&lt;br /&gt;
* &#039;&#039;string&#039;&#039; language&lt;br /&gt;
* &#039;&#039;string&#039;&#039; name&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; width&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Player.Video.Stream&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;codec&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;codec&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;height&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;height&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;index&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;index&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;language&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;language&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;name&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;width&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;width&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Playlist ===&lt;br /&gt;
==== Playlist.Id ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;integer&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: -1&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Item ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Playlist.Item&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;file&amp;quot;: {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Path to a file (not a directory) to be added to the playlist&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;directory&amp;quot;: {&lt;br /&gt;
          &amp;quot;required&amp;quot;: true,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;media&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Files.Media&amp;quot;,&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;files&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;recursive&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: false,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;movieid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;episodeid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;musicvideoid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;artistid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;albumid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;songid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;genreid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Identification of a genre from the AudioLibrary&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Position ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;integer&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: -1&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Property.Name ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;type&amp;quot;,&lt;br /&gt;
    &amp;quot;size&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Playlist.Property.Name&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Property.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; size = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Playlist.Type|Playlist.Type]]&#039;&#039; type = &amp;quot;unknown&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Playlist.Property.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;size&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;size&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.Type ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;unknown&amp;quot;,&lt;br /&gt;
    &amp;quot;video&amp;quot;,&lt;br /&gt;
    &amp;quot;audio&amp;quot;,&lt;br /&gt;
    &amp;quot;picture&amp;quot;,&lt;br /&gt;
    &amp;quot;mixed&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Playlist.Type&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Profiles ===&lt;br /&gt;
==== Profiles.Details.Profile ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; lockmode = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; thumbnail ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Profiles.Details.Profile&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;lockmode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lockmode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Profiles.Fields.Profile ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Profiles.Fields.Profile&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;lockmode&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Profiles.Password ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; encryption = &amp;quot;md5&amp;quot; ] &#039;&#039;Password Encryption&#039;&#039;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; value &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Profiles.Password&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;encryption&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;md5&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Password Encryption&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;encryption&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Password&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== PVR ===&lt;br /&gt;
==== PVR.Channel.Type ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;tv&amp;quot;,&lt;br /&gt;
    &amp;quot;radio&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Channel.Type&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;tv&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.ChannelGroup.Id ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.ChannelGroup.Id&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;enums&amp;quot;: [&lt;br /&gt;
        &amp;quot;alltv&amp;quot;,&lt;br /&gt;
        &amp;quot;allradio&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Details.Broadcast ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; broadcastid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; cast ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; director ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; endtime ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; episodename ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; episodenum = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; episodepart = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; firstaired ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; genre ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; hasrecording = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; hastimer = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; hastimerrule = false ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; imdbnumber = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; isactive = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; isseries = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; originaltitle ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; parentalrating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plot ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plotoutline ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; progress = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; progresspercentage = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; rating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; recording ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; runtime = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; starttime ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; thumbnail ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; wasactive = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; writer ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; year = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Details.Broadcast&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;broadcastid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;broadcastid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cast&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;cast&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;director&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;director&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;endtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;endtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episodename&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodename&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episodenum&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodenum&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episodepart&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodepart&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;firstaired&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;firstaired&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;genre&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hasrecording&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hasrecording&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hastimer&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hastimer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hastimerrule&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hastimerrule&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;imdbnumber&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;imdbnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;isactive&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;isactive&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;isseries&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;isseries&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;originaltitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parentalrating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;parentalrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;plot&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;plotoutline&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plotoutline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;progress&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;progress&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;progresspercentage&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;progresspercentage&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;recording&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;recording&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;runtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;starttime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;starttime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;wasactive&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;wasactive&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;writer&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;writer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;year&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Details.Channel ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]&#039;&#039; broadcastnext ]&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]&#039;&#039; broadcastnow ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; channel ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; channelid&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; channelnumber = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Channel.Type|PVR.Channel.Type]]&#039;&#039; channeltype = &amp;quot;tv&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; hidden = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; icon ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; isrecording = false ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lastplayed ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; locked = false ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; subchannelnumber = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; thumbnail ]&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; uniqueid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Details.Channel&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;broadcastnext&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Broadcast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;broadcastnext&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;broadcastnow&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Broadcast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;broadcastnow&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channel&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channelid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channelnumber&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channeltype&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;tv&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Channel.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channeltype&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hidden&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hidden&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;icon&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;icon&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;isrecording&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;isrecording&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;locked&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;locked&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;subchannelnumber&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;subchannelnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;thumbnail&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;uniqueid&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Details.ChannelGroup ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; channelgroupid&lt;br /&gt;
* &#039;&#039;[[#PVR.Channel.Type|PVR.Channel.Type]]&#039;&#039; channeltype&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Details.ChannelGroup&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;channelgroupid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelgroupid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channeltype&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Channel.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channeltype&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Details.ChannelGroup.Extended ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#PVR.Details.ChannelGroup|PVR.Details.ChannelGroup]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#PVR.Details.Channel|PVR.Details.Channel]]&#039;&#039;[] channels ]&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;PVR.Details.ChannelGroup&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Details.ChannelGroup.Extended&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;channels&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;PVR.Details.Channel&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channels&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;limits&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Details.Recording ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Media.Artwork|Media.Artwork]]&#039;&#039; art ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; channel ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; channeluid = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; directory ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; endtime ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; epgeventid = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; file ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; genre ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; icon ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; isdeleted = false ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; lifetime = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; playcount = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plot ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plotoutline ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; radio = false ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; recordingid&lt;br /&gt;
* [ &#039;&#039;[[#Video.Resume|Video.Resume]]&#039;&#039; resume ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; runtime = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; starttime ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; streamurl ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Details.Recording&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;art&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channel&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;channeluid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channeluid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;directory&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;directory&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;endtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;endtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;epgeventid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;epgeventid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;file&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;genre&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;icon&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;icon&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;isdeleted&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;isdeleted&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lifetime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lifetime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;playcount&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;plot&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;plotoutline&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plotoutline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;radio&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;radio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;recordingid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;recordingid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;resume&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Resume&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;resume&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;runtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;starttime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;starttime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;streamurl&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;streamurl&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Details.Timer ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Details.Base|Item.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; channelid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; directory ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; endanytime = false ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; endmargin = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; endtime ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; epgsearchstring ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; epguid = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; file ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; firstday ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; fulltextepgsearch = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; ismanual = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; isradio = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; isreadonly = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; istimerrule = false ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; lifetime = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; maxrecordings = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; preventduplicateepisodes = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; priority = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; recordinggroup = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; runtime = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; startanytime = false ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; startmargin = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; starttime ]&lt;br /&gt;
* [ &#039;&#039;[[#PVR.TimerState|PVR.TimerState]]&#039;&#039; state = &amp;quot;unknown&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; summary ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; timerid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
* [ &#039;&#039;[[#Global.Weekday|Global.Weekday]]&#039;&#039;[] weekdays ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Details.Timer&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;channelid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;channelid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;directory&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;directory&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;endanytime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;endanytime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;endmargin&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;endmargin&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;endtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;endtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;epgsearchstring&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;epgsearchstring&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;epguid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;epguid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;file&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;firstday&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;firstday&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fulltextepgsearch&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;fulltextepgsearch&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;ismanual&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ismanual&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;isradio&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;isradio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;isreadonly&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;isreadonly&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;istimerrule&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;istimerrule&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lifetime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lifetime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;maxrecordings&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;maxrecordings&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;preventduplicateepisodes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;preventduplicateepisodes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;priority&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;priority&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;recordinggroup&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;recordinggroup&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;runtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;startanytime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;startanytime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;startmargin&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;startmargin&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;starttime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;starttime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;state&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;PVR.TimerState&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;state&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;summary&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;summary&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timerid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;timerid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;weekdays&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Global.Weekday&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;weekdays&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Fields.Broadcast ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Fields.Broadcast&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;plotoutline&amp;quot;,&lt;br /&gt;
      &amp;quot;starttime&amp;quot;,&lt;br /&gt;
      &amp;quot;endtime&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;progress&amp;quot;,&lt;br /&gt;
      &amp;quot;progresspercentage&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;episodename&amp;quot;,&lt;br /&gt;
      &amp;quot;episodenum&amp;quot;,&lt;br /&gt;
      &amp;quot;episodepart&amp;quot;,&lt;br /&gt;
      &amp;quot;firstaired&amp;quot;,&lt;br /&gt;
      &amp;quot;hastimer&amp;quot;,&lt;br /&gt;
      &amp;quot;isactive&amp;quot;,&lt;br /&gt;
      &amp;quot;parentalrating&amp;quot;,&lt;br /&gt;
      &amp;quot;wasactive&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;originaltitle&amp;quot;,&lt;br /&gt;
      &amp;quot;cast&amp;quot;,&lt;br /&gt;
      &amp;quot;director&amp;quot;,&lt;br /&gt;
      &amp;quot;writer&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;imdbnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;hastimerrule&amp;quot;,&lt;br /&gt;
      &amp;quot;hasrecording&amp;quot;,&lt;br /&gt;
      &amp;quot;recording&amp;quot;,&lt;br /&gt;
      &amp;quot;isseries&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Fields.Channel ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Fields.Channel&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;channeltype&amp;quot;,&lt;br /&gt;
      &amp;quot;hidden&amp;quot;,&lt;br /&gt;
      &amp;quot;locked&amp;quot;,&lt;br /&gt;
      &amp;quot;channel&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;broadcastnow&amp;quot;,&lt;br /&gt;
      &amp;quot;broadcastnext&amp;quot;,&lt;br /&gt;
      &amp;quot;uniqueid&amp;quot;,&lt;br /&gt;
      &amp;quot;icon&amp;quot;,&lt;br /&gt;
      &amp;quot;channelnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;subchannelnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;isrecording&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Fields.Recording ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Fields.Recording&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;plotoutline&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;resume&amp;quot;,&lt;br /&gt;
      &amp;quot;channel&amp;quot;,&lt;br /&gt;
      &amp;quot;starttime&amp;quot;,&lt;br /&gt;
      &amp;quot;endtime&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;lifetime&amp;quot;,&lt;br /&gt;
      &amp;quot;icon&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;streamurl&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;directory&amp;quot;,&lt;br /&gt;
      &amp;quot;radio&amp;quot;,&lt;br /&gt;
      &amp;quot;isdeleted&amp;quot;,&lt;br /&gt;
      &amp;quot;epgeventid&amp;quot;,&lt;br /&gt;
      &amp;quot;channeluid&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Fields.Timer ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Fields.Timer&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;summary&amp;quot;,&lt;br /&gt;
      &amp;quot;channelid&amp;quot;,&lt;br /&gt;
      &amp;quot;isradio&amp;quot;,&lt;br /&gt;
      &amp;quot;istimerrule&amp;quot;,&lt;br /&gt;
      &amp;quot;ismanual&amp;quot;,&lt;br /&gt;
      &amp;quot;starttime&amp;quot;,&lt;br /&gt;
      &amp;quot;endtime&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;lifetime&amp;quot;,&lt;br /&gt;
      &amp;quot;firstday&amp;quot;,&lt;br /&gt;
      &amp;quot;weekdays&amp;quot;,&lt;br /&gt;
      &amp;quot;priority&amp;quot;,&lt;br /&gt;
      &amp;quot;startmargin&amp;quot;,&lt;br /&gt;
      &amp;quot;endmargin&amp;quot;,&lt;br /&gt;
      &amp;quot;state&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;directory&amp;quot;,&lt;br /&gt;
      &amp;quot;preventduplicateepisodes&amp;quot;,&lt;br /&gt;
      &amp;quot;startanytime&amp;quot;,&lt;br /&gt;
      &amp;quot;endanytime&amp;quot;,&lt;br /&gt;
      &amp;quot;epgsearchstring&amp;quot;,&lt;br /&gt;
      &amp;quot;fulltextepgsearch&amp;quot;,&lt;br /&gt;
      &amp;quot;recordinggroup&amp;quot;,&lt;br /&gt;
      &amp;quot;maxrecordings&amp;quot;,&lt;br /&gt;
      &amp;quot;epguid&amp;quot;,&lt;br /&gt;
      &amp;quot;isreadonly&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Property.Name ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;available&amp;quot;,&lt;br /&gt;
    &amp;quot;recording&amp;quot;,&lt;br /&gt;
    &amp;quot;scanning&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Property.Name&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;available&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.Property.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; available = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; recording = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; scanning = false ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.Property.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;available&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;available&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;recording&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;recording&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;scanning&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;scanning&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== PVR.TimerState ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;unknown&amp;quot;,&lt;br /&gt;
    &amp;quot;new&amp;quot;,&lt;br /&gt;
    &amp;quot;scheduled&amp;quot;,&lt;br /&gt;
    &amp;quot;recording&amp;quot;,&lt;br /&gt;
    &amp;quot;completed&amp;quot;,&lt;br /&gt;
    &amp;quot;aborted&amp;quot;,&lt;br /&gt;
    &amp;quot;cancelled&amp;quot;,&lt;br /&gt;
    &amp;quot;conflict_ok&amp;quot;,&lt;br /&gt;
    &amp;quot;conflict_notok&amp;quot;,&lt;br /&gt;
    &amp;quot;error&amp;quot;,&lt;br /&gt;
    &amp;quot;disabled&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;PVR.TimerState&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;unknown&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Setting ===&lt;br /&gt;
==== Setting.Details.Base ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; help ]&lt;br /&gt;
* &#039;&#039;string&#039;&#039; id&lt;br /&gt;
* &#039;&#039;string&#039;&#039; label&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.Base&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;help&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;help&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;id&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;id&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;label&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;label&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.Category ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.Base|Setting.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Setting.Details.Group|Setting.Details.Group]]&#039;&#039;[] groups ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.Category&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;groups&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Group&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;groups&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.Control ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.Control&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.ControlCheckmark&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.ControlSpinner&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.ControlEdit&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.ControlButton&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.ControlList&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.ControlSlider&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.ControlRange&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlBase ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; delayed&lt;br /&gt;
* &#039;&#039;string&#039;&#039; format&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlBase&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;delayed&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;delayed&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;format&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;format&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlButton ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlHeading&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlButton&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlCheckmark ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; format&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlCheckmark&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;format&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;format&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlEdit ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; hidden&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; verifynewvalue&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlHeading&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlEdit&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;hidden&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;hidden&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;verifynewvalue&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;verifynewvalue&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlHeading ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; heading ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlHeading&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;heading&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;heading&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlList ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; multiselect&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlHeading&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlList&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;multiselect&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;multiselect&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlRange ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; formatlabel&lt;br /&gt;
* &#039;&#039;string&#039;&#039; formatvalue&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlRange&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;formatlabel&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;formatlabel&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;formatvalue&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;formatvalue&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlSlider ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlHeading|Setting.Details.ControlHeading]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; formatlabel&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; popup&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlHeading&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlSlider&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;formatlabel&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;formatlabel&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;popup&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;popup&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.ControlSpinner ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.ControlBase|Setting.Details.ControlBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; formatlabel ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; minimumlabel ]&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.ControlBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.ControlSpinner&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;formatlabel&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;formatlabel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;minimumlabel&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;minimumlabel&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.Group ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; id&lt;br /&gt;
* [ &#039;&#039;[[#Setting.Details.Setting|Setting.Details.Setting]]&#039;&#039;[] settings ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.Group&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;id&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;id&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Setting&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;settings&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.Section ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.Base|Setting.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Setting.Details.Category|Setting.Details.Category]]&#039;&#039;[] categories ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.Section&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;categories&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Category&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;categories&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.Setting ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.Setting&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingBool&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingInt&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingNumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingString&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingAction&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingList&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingPath&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.SettingAddon&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingAction ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingAction&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingAddon ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingString|Setting.Details.SettingString]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Addon.Types|Addon.Types]]&#039;&#039; addontype&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingString&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingAddon&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;addontype&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Addon.Types&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;addontype&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingBase ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.Base|Setting.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Setting.Details.Control|Setting.Details.Control]]&#039;&#039; control ]&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; enabled&lt;br /&gt;
* &#039;&#039;[[#Setting.Level|Setting.Level]]&#039;&#039; level&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; parent ]&lt;br /&gt;
* &#039;&#039;[[#Setting.Type|Setting.Type]]&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingBase&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;control&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Control&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;control&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;enabled&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;enabled&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;level&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Level&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;level&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;parent&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;parent&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingBool ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; default&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingBool&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;default&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingInt ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; default&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; maximum = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; minimum = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;object&#039;&#039; options ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; step = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingInt&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;default&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;maximum&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;maximum&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;minimum&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;minimum&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;options&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;label&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;value&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;options&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;step&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;step&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingList ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#Setting.Value.List|Setting.Value.List]]&#039;&#039; default&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.Setting|Setting.Details.Setting]]&#039;&#039; definition&lt;br /&gt;
* &#039;&#039;string&#039;&#039; delimiter&lt;br /&gt;
* &#039;&#039;[[#Setting.Type|Setting.Type]]&#039;&#039; elementtype&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; maximumitems = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; minimumitems = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* &#039;&#039;[[#Setting.Value.List|Setting.Value.List]]&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingList&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;default&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Value.List&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;definition&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Details.Setting&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;definition&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;delimiter&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;delimiter&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;elementtype&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Type&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;elementtype&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;maximumitems&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;maximumitems&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;minimumitems&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;minimumitems&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Value.List&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingNumber ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;number&#039;&#039; default&lt;br /&gt;
* &#039;&#039;number&#039;&#039; maximum&lt;br /&gt;
* &#039;&#039;number&#039;&#039; minimum&lt;br /&gt;
* &#039;&#039;number&#039;&#039; step&lt;br /&gt;
* &#039;&#039;number&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingNumber&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;default&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;maximum&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;maximum&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;minimum&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;minimum&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;step&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;step&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingPath ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingString|Setting.Details.SettingString]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039;[] sources ]&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; writable&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingString&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingPath&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;sources&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sources&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;writable&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;writable&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Details.SettingString ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Setting.Details.SettingBase|Setting.Details.SettingBase]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; allowempty&lt;br /&gt;
* &#039;&#039;string&#039;&#039; default&lt;br /&gt;
* [ &#039;&#039;object&#039;&#039; options ]&lt;br /&gt;
* &#039;&#039;string&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Setting.Details.SettingBase&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Details.SettingString&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;allowempty&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;allowempty&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;default&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;options&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;label&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;value&amp;quot;: {&lt;br /&gt;
            &amp;quot;required&amp;quot;: true,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;options&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Level ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;basic&amp;quot;,&lt;br /&gt;
    &amp;quot;standard&amp;quot;,&lt;br /&gt;
    &amp;quot;advanced&amp;quot;,&lt;br /&gt;
    &amp;quot;expert&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Level&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;basic&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Type ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;boolean&amp;quot;,&lt;br /&gt;
    &amp;quot;integer&amp;quot;,&lt;br /&gt;
    &amp;quot;number&amp;quot;,&lt;br /&gt;
    &amp;quot;string&amp;quot;,&lt;br /&gt;
    &amp;quot;action&amp;quot;,&lt;br /&gt;
    &amp;quot;list&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;,&lt;br /&gt;
    &amp;quot;addon&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Type&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Value.Extended ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Value.Extended&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Value.List&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Setting.Value.List ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Setting.Value.List&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;$ref&amp;quot;: &amp;quot;Setting.Value&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
==== System.Property.Name ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;string&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;enums&amp;quot;: [&lt;br /&gt;
    &amp;quot;canshutdown&amp;quot;,&lt;br /&gt;
    &amp;quot;cansuspend&amp;quot;,&lt;br /&gt;
    &amp;quot;canhibernate&amp;quot;,&lt;br /&gt;
    &amp;quot;canreboot&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;System.Property.Name&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
  &amp;quot;default&amp;quot;: &amp;quot;canshutdown&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.Property.Value ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canhibernate = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canreboot = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; canshutdown = false ]&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; cansuspend = false ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;System.Property.Value&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;canhibernate&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canhibernate&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canreboot&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canreboot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;canshutdown&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;canshutdown&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cansuspend&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;cansuspend&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
==== Textures.Details.Size ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; height = &amp;quot;0&amp;quot; ] &#039;&#039;Height of texture&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lastused ] &#039;&#039;Date of last use&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; size = &amp;quot;0&amp;quot; ] &#039;&#039;Size of the texture (1 == largest)&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; usecount = &amp;quot;0&amp;quot; ] &#039;&#039;Number of uses&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; width = &amp;quot;0&amp;quot; ] &#039;&#039;Width of texture&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Textures.Details.Size&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;height&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Height of texture&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;height&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lastused&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Date of last use&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastused&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;size&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Size of the texture (1 == largest)&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;size&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;usecount&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Number of uses&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;usecount&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;width&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Width of texture&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;width&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Textures.Details.Texture ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; cachedurl ] &#039;&#039;Cached URL on disk&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; imagehash ] &#039;&#039;Hash of image&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lasthashcheck ] &#039;&#039;Last time source was checked for changes&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Textures.Details.Size|Textures.Details.Size]]&#039;&#039;[] sizes ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; textureid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; url ] &#039;&#039;Original source URL&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Textures.Details.Texture&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;cachedurl&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Cached URL on disk&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;cachedurl&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;imagehash&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Hash of image&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;imagehash&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lasthashcheck&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Last time source was checked for changes&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lasthashcheck&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;sizes&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Textures.Details.Size&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sizes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;textureid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;textureid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;url&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Original source URL&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;url&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Textures.Fields.Texture ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Textures.Fields.Texture&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;url&amp;quot;,&lt;br /&gt;
      &amp;quot;cachedurl&amp;quot;,&lt;br /&gt;
      &amp;quot;lasthashcheck&amp;quot;,&lt;br /&gt;
      &amp;quot;imagehash&amp;quot;,&lt;br /&gt;
      &amp;quot;sizes&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
==== Video.Cast ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Cast&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;additionalProperties&amp;quot;: false,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: {&lt;br /&gt;
        &amp;quot;required&amp;quot;: true,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;order&amp;quot;: {&lt;br /&gt;
        &amp;quot;required&amp;quot;: true,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;role&amp;quot;: {&lt;br /&gt;
        &amp;quot;required&amp;quot;: true,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;: {&lt;br /&gt;
        &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.Base ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Media.Details.Base|Media.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Media.Artwork|Media.Artwork]]&#039;&#039; art ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; playcount = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Media.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.Base&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;art&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Media.Artwork&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;art&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;playcount&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.Episode ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.File|Video.Details.File]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Cast|Video.Cast]]&#039;&#039; cast ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; episode = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; episodeid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; firstaired ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; originaltitle ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; productioncode ]&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; rating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; ratings ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; season = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; seasonid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; showtitle ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; specialsortepisode = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; specialsortseason = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Media.UniqueID|Media.UniqueID]]&#039;&#039; uniqueid ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; userrating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; votes ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; writer ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.File&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.Episode&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;cast&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Cast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;cast&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episodeid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;firstaired&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;firstaired&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;originaltitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;productioncode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;productioncode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;ratings&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;any&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ratings&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;season&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;season&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;seasonid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;seasonid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;showtitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showtitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;specialsortepisode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;specialsortepisode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;specialsortseason&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;specialsortseason&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tvshowid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;uniqueid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Media.UniqueID&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;userrating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;votes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;writer&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;writer&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.File ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.Item|Video.Details.Item]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; director ]&lt;br /&gt;
* [ &#039;&#039;[[#Video.Resume|Video.Resume]]&#039;&#039; resume ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; runtime = &amp;quot;0&amp;quot; ] &#039;&#039;Runtime in seconds&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Streams|Video.Streams]]&#039;&#039; streamdetails ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.Item&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.File&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;director&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;director&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;resume&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Resume&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;resume&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;runtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Runtime in seconds&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;streamdetails&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Streams&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;streamdetails&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.Item ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.Media|Video.Details.Media]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; dateadded ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; file ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; lastplayed ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plot ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.Media&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.Item&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;dateadded&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;dateadded&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;file&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lastplayed&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;lastplayed&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;plot&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.Media ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.Base|Video.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.Media&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.Movie ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.File|Video.Details.File]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Cast|Video.Cast]]&#039;&#039; cast ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; country ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; genre ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; imdbnumber ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; movieid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; mpaa ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; originaltitle ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plotoutline ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; premiered ]&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; rating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; ratings ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; set ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; setid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; showlink ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; sorttitle ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; studio ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; tag ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; tagline ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; top250 = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; trailer ]&lt;br /&gt;
* [ &#039;&#039;[[#Media.UniqueID|Media.UniqueID]]&#039;&#039; uniqueid ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; userrating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; votes ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; writer ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; year = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.File&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.Movie&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;cast&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Cast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;cast&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;country&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;country&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;genre&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;imdbnumber&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;imdbnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;movieid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;movieid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mpaa&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mpaa&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;originaltitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;plotoutline&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plotoutline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;premiered&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;premiered&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;ratings&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;any&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ratings&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;set&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;set&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;setid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;showlink&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showlink&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;sorttitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sorttitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;studio&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;studio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tag&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tag&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tagline&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tagline&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;top250&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;top250&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;trailer&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;trailer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;uniqueid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Media.UniqueID&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;userrating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;votes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;writer&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;writer&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;year&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.MovieSet ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.Media|Video.Details.Media]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; plot ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; setid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.Media&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.MovieSet&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;plot&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;plot&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;setid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;setid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.MovieSet.Extended ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.MovieSet|Video.Details.MovieSet]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;[[#List.LimitsReturned|List.LimitsReturned]]&#039;&#039; limits&lt;br /&gt;
* [ &#039;&#039;[[#Video.Details.Movie|Video.Details.Movie]]&#039;&#039;[] movies ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.MovieSet&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.MovieSet.Extended&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;limits&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;List.LimitsReturned&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;limits&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;movies&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;$ref&amp;quot;: &amp;quot;Video.Details.Movie&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;movies&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.MusicVideo ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.File|Video.Details.File]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; album ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; artist ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; genre ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; musicvideoid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; premiered ]&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; rating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; studio ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; tag ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; track = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; userrating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; year = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.File&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.MusicVideo&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;album&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;album&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;artist&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;artist&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;genre&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;musicvideoid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;musicvideoid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;premiered&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;premiered&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;studio&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;studio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tag&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tag&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;track&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;track&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;userrating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;year&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.Season ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.Base|Video.Details.Base]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; episode = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; season&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; seasonid&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; showtitle ]&lt;br /&gt;
* [ &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; userrating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; watchedepisodes = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.Season&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;episode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;season&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;season&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;seasonid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;seasonid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;showtitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;showtitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tvshowid&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;userrating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;watchedepisodes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;watchedepisodes&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Details.TVShow ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Video.Details.Item|Video.Details.Item]]&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;[[#Video.Cast|Video.Cast]]&#039;&#039; cast ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; episode = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; episodeguide ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; genre ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; imdbnumber ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; mpaa ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; originaltitle ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; premiered ]&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; rating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;mixed&#039;&#039; ratings ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; runtime = &amp;quot;0&amp;quot; ] &#039;&#039;Runtime in seconds&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; season = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; sorttitle ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; studio ]&lt;br /&gt;
* [ &#039;&#039;[[#Array.String|Array.String]]&#039;&#039; tag ]&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; tvshowid&lt;br /&gt;
* [ &#039;&#039;[[#Media.UniqueID|Media.UniqueID]]&#039;&#039; uniqueid ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; userrating = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; votes ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; watchedepisodes = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; year = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Video.Details.Item&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Details.TVShow&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;cast&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Video.Cast&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;cast&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episode&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episode&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;episodeguide&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;episodeguide&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;genre&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;genre&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;imdbnumber&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;imdbnumber&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;mpaa&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;mpaa&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;originaltitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;originaltitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;premiered&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;premiered&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;ratings&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;any&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;ratings&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;runtime&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;description&amp;quot;: &amp;quot;Runtime in seconds&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;runtime&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;season&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;season&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;sorttitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sorttitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;studio&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;studio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tag&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Array.String&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tag&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;tvshowid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;uniqueid&amp;quot;: {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Media.UniqueID&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;userrating&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;userrating&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;votes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;watchedepisodes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;watchedepisodes&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;year&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;year&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Fields.Episode ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Fields.Episode&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Requesting the cast, ratings, streamdetails, uniqueid and/or tag field will result in increased response times&amp;quot;,&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;votes&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;writer&amp;quot;,&lt;br /&gt;
      &amp;quot;firstaired&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;director&amp;quot;,&lt;br /&gt;
      &amp;quot;productioncode&amp;quot;,&lt;br /&gt;
      &amp;quot;season&amp;quot;,&lt;br /&gt;
      &amp;quot;episode&amp;quot;,&lt;br /&gt;
      &amp;quot;originaltitle&amp;quot;,&lt;br /&gt;
      &amp;quot;showtitle&amp;quot;,&lt;br /&gt;
      &amp;quot;cast&amp;quot;,&lt;br /&gt;
      &amp;quot;streamdetails&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;resume&amp;quot;,&lt;br /&gt;
      &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;uniqueid&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;specialsortseason&amp;quot;,&lt;br /&gt;
      &amp;quot;specialsortepisode&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;,&lt;br /&gt;
      &amp;quot;seasonid&amp;quot;,&lt;br /&gt;
      &amp;quot;ratings&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Fields.Movie ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Fields.Movie&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Requesting the cast, ratings, showlink, streamdetails, uniqueid and/or tag field will result in increased response times&amp;quot;,&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;director&amp;quot;,&lt;br /&gt;
      &amp;quot;trailer&amp;quot;,&lt;br /&gt;
      &amp;quot;tagline&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;plotoutline&amp;quot;,&lt;br /&gt;
      &amp;quot;originaltitle&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;writer&amp;quot;,&lt;br /&gt;
      &amp;quot;studio&amp;quot;,&lt;br /&gt;
      &amp;quot;mpaa&amp;quot;,&lt;br /&gt;
      &amp;quot;cast&amp;quot;,&lt;br /&gt;
      &amp;quot;country&amp;quot;,&lt;br /&gt;
      &amp;quot;imdbnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;set&amp;quot;,&lt;br /&gt;
      &amp;quot;showlink&amp;quot;,&lt;br /&gt;
      &amp;quot;streamdetails&amp;quot;,&lt;br /&gt;
      &amp;quot;top250&amp;quot;,&lt;br /&gt;
      &amp;quot;votes&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;sorttitle&amp;quot;,&lt;br /&gt;
      &amp;quot;resume&amp;quot;,&lt;br /&gt;
      &amp;quot;setid&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;tag&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;,&lt;br /&gt;
      &amp;quot;ratings&amp;quot;,&lt;br /&gt;
      &amp;quot;premiered&amp;quot;,&lt;br /&gt;
      &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Fields.MovieSet ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Fields.MovieSet&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Fields.MusicVideo ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Fields.MusicVideo&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Requesting the streamdetails and/or tag field will result in increased response times&amp;quot;,&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;director&amp;quot;,&lt;br /&gt;
      &amp;quot;studio&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;album&amp;quot;,&lt;br /&gt;
      &amp;quot;artist&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;track&amp;quot;,&lt;br /&gt;
      &amp;quot;streamdetails&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;resume&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;tag&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;,&lt;br /&gt;
      &amp;quot;premiered&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Fields.Season ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Fields.Season&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;season&amp;quot;,&lt;br /&gt;
      &amp;quot;showtitle&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;episode&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;tvshowid&amp;quot;,&lt;br /&gt;
      &amp;quot;watchedepisodes&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Fields.TVShow ====&lt;br /&gt;
&#039;&#039;&#039;Extends:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Item.Fields.Base|Item.Fields.Base]]&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;extends&amp;quot;: [&lt;br /&gt;
    &amp;quot;Item.Fields.Base&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Fields.TVShow&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: {&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Requesting the cast, ratings, uniqueid and/or tag field will result in increased response times&amp;quot;,&lt;br /&gt;
    &amp;quot;enums&amp;quot;: [&lt;br /&gt;
      &amp;quot;title&amp;quot;,&lt;br /&gt;
      &amp;quot;genre&amp;quot;,&lt;br /&gt;
      &amp;quot;year&amp;quot;,&lt;br /&gt;
      &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;plot&amp;quot;,&lt;br /&gt;
      &amp;quot;studio&amp;quot;,&lt;br /&gt;
      &amp;quot;mpaa&amp;quot;,&lt;br /&gt;
      &amp;quot;cast&amp;quot;,&lt;br /&gt;
      &amp;quot;playcount&amp;quot;,&lt;br /&gt;
      &amp;quot;episode&amp;quot;,&lt;br /&gt;
      &amp;quot;imdbnumber&amp;quot;,&lt;br /&gt;
      &amp;quot;premiered&amp;quot;,&lt;br /&gt;
      &amp;quot;votes&amp;quot;,&lt;br /&gt;
      &amp;quot;lastplayed&amp;quot;,&lt;br /&gt;
      &amp;quot;fanart&amp;quot;,&lt;br /&gt;
      &amp;quot;thumbnail&amp;quot;,&lt;br /&gt;
      &amp;quot;file&amp;quot;,&lt;br /&gt;
      &amp;quot;originaltitle&amp;quot;,&lt;br /&gt;
      &amp;quot;sorttitle&amp;quot;,&lt;br /&gt;
      &amp;quot;episodeguide&amp;quot;,&lt;br /&gt;
      &amp;quot;season&amp;quot;,&lt;br /&gt;
      &amp;quot;watchedepisodes&amp;quot;,&lt;br /&gt;
      &amp;quot;dateadded&amp;quot;,&lt;br /&gt;
      &amp;quot;tag&amp;quot;,&lt;br /&gt;
      &amp;quot;art&amp;quot;,&lt;br /&gt;
      &amp;quot;userrating&amp;quot;,&lt;br /&gt;
      &amp;quot;ratings&amp;quot;,&lt;br /&gt;
      &amp;quot;runtime&amp;quot;,&lt;br /&gt;
      &amp;quot;uniqueid&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Rating ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;boolean&#039;&#039; default = false ]&lt;br /&gt;
* &#039;&#039;number&#039;&#039; rating&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; votes = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Rating&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;default&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;default&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rating&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;rating&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;votes&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;votes&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Ratings ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Ratings&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Ratings.Set ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Ratings.Set&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Resume ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; position = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;number&#039;&#039; total = &amp;quot;0&amp;quot; ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Resume&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;position&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;position&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;total&amp;quot;: {&lt;br /&gt;
      &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;total&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Video.Streams ====&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; &#039;&#039;mixed&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
* [ &#039;&#039;object&#039;&#039; audio ]&lt;br /&gt;
* [ &#039;&#039;object&#039;&#039; subtitle ]&lt;br /&gt;
* [ &#039;&#039;object&#039;&#039; video ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;id&amp;quot;: &amp;quot;Video.Streams&amp;quot;,&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;audio&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;channels&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;codec&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;language&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;audio&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;subtitle&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;language&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;subtitle&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;video&amp;quot;: {&lt;br /&gt;
      &amp;quot;items&amp;quot;: {&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;aspect&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;codec&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;duration&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;height&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
          },&lt;br /&gt;
          &amp;quot;width&amp;quot;: {&lt;br /&gt;
            &amp;quot;default&amp;quot;: 0,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;video&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Notifications ==&lt;br /&gt;
=== Application ===&lt;br /&gt;
==== Application.OnVolumeChanged ====&lt;br /&gt;
The volume of the application has changed.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; muted&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; volume&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The volume of the application has changed.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;muted&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;muted&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;volume&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;volume&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== AudioLibrary ===&lt;br /&gt;
==== AudioLibrary.OnCleanFinished ====&lt;br /&gt;
The audio library has been cleaned.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The audio library has been cleaned.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.OnCleanStarted ====&lt;br /&gt;
An audio library clean operation has started.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;An audio library clean operation has started.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.OnExport ====&lt;br /&gt;
An audio library export has finished.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; failcount = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; file ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;An audio library export has finished.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;failcount&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;failcount&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;file&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.OnRemove ====&lt;br /&gt;
An audio item has been removed.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; id&lt;br /&gt;
* [ &#039;&#039;[[#Optional.Boolean|Optional.Boolean]]&#039;&#039; transaction ] &#039;&#039;True if the removal is being performed within a transaction.&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Notifications.Library.Audio.Type|Notifications.Library.Audio.Type]]&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;An audio item has been removed.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;id&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;transaction&amp;quot;: {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;True if the removal is being performed within a transaction.&amp;quot;,&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Boolean&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;transaction&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Library.Audio.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.OnScanFinished ====&lt;br /&gt;
Scanning the audio library has been finished.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Scanning the audio library has been finished.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.OnScanStarted ====&lt;br /&gt;
An audio library scan has started.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;An audio library scan has started.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== AudioLibrary.OnUpdate ====&lt;br /&gt;
An audio item has been updated.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; id&lt;br /&gt;
* [ &#039;&#039;[[#Optional.Boolean|Optional.Boolean]]&#039;&#039; transaction ] &#039;&#039;True if the update is being performed within a transaction.&#039;&#039;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;An audio item has been updated.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;id&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;transaction&amp;quot;: {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;True if the update is being performed within a transaction.&amp;quot;,&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Boolean&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;transaction&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== GUI ===&lt;br /&gt;
==== GUI.OnDPMSActivated ====&lt;br /&gt;
Energy saving/DPMS has been activated.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Energy saving/DPMS has been activated.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.OnDPMSDeactivated ====&lt;br /&gt;
Energy saving/DPMS has been deactivated.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Energy saving/DPMS has been deactivated.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.OnScreensaverActivated ====&lt;br /&gt;
The screensaver has been activated.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The screensaver has been activated.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== GUI.OnScreensaverDeactivated ====&lt;br /&gt;
The screensaver has been deactivated.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; shuttingdown&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The screensaver has been deactivated.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;shuttingdown&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;shuttingdown&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
==== Input.OnInputFinished ====&lt;br /&gt;
The user has provided the requested input.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The user has provided the requested input.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Input.OnInputRequested ====&lt;br /&gt;
The user is requested to provide some information.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; title ]&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
* &#039;&#039;string&#039;&#039; value&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The user is requested to provide some information.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;title&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;title&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;value&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
==== Player.OnAVChange ====&lt;br /&gt;
Audio- or videostream has changed. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;&#039;&#039; data&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
Audio- or videostream has changed. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Data&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Player.OnAVStart ====&lt;br /&gt;
Will be triggered on playback start if the first frame was drawn. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;&#039;&#039; data&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
Will be triggered on playback start if the first frame was drawn. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Data&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.OnPause ====&lt;br /&gt;
Playback of a media item has been paused. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;&#039;&#039; data&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Playback of a media item has been paused. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Data&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.OnPlay ====&lt;br /&gt;
Playback of a media item has been started. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;&#039;&#039; data&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Playback of a media item has been started. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Data&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.OnPropertyChanged ====&lt;br /&gt;
A property of the playing items has changed.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Player.Notifications.Player|Player.Notifications.Player]]&#039;&#039; player&lt;br /&gt;
* [ &#039;&#039;[[#Player.Property.Value|Player.Property.Value]]&#039;&#039; property ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A property of the playing items has changed.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;player&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Player&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;property&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Player.Property.Value&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;property&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.OnResume ====&lt;br /&gt;
Playback of a media item has been resumed. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;&#039;&#039; data&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
Playback of a media item has been resumed. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Data&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.OnSeek ====&lt;br /&gt;
The playback position has been changed. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Notifications.Item|Notifications.Item]]&#039;&#039; item ]&lt;br /&gt;
* &#039;&#039;[[#Player.Notifications.Player.Seek|Player.Notifications.Player.Seek]]&#039;&#039; player&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The playback position has been changed. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;item&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;item&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;player&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Player.Seek&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.OnSpeedChanged ====&lt;br /&gt;
Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;&#039;&#039; data&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;$ref&amp;quot;: &amp;quot;Player.Notifications.Data&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Player.OnStop ====&lt;br /&gt;
Playback of a media item has been stopped. If there is no ID available extra information will be provided.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;boolean&#039;&#039; end &#039;&#039;Whether the player has reached the end of the playable item(s) or not&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Notifications.Item|Notifications.Item]]&#039;&#039; item ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Playback of a media item has been stopped. If there is no ID available extra information will be provided.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;end&amp;quot;: {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;Whether the player has reached the end of the playable item(s) or not&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;end&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;item&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;item&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Playlist ===&lt;br /&gt;
==== Playlist.OnAdd ====&lt;br /&gt;
A playlist item has been added.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;[[#Notifications.Item|Notifications.Item]]&#039;&#039; item ]&lt;br /&gt;
* &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
* [ &#039;&#039;[[#Playlist.Position|Playlist.Position]]&#039;&#039; position ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A playlist item has been added.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;item&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Item&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;item&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;playlistid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;position&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;position&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.OnClear ====&lt;br /&gt;
A playlist item has been cleared.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A playlist item has been cleared.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;playlistid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Playlist.OnRemove ====&lt;br /&gt;
A playlist item has been removed.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Playlist.Id|Playlist.Id]]&#039;&#039; playlistid&lt;br /&gt;
* [ &#039;&#039;[[#Playlist.Position|Playlist.Position]]&#039;&#039; position ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A playlist item has been removed.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;playlistid&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;playlistid&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;position&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Playlist.Position&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;position&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
==== System.OnLowBattery ====&lt;br /&gt;
The system is on low battery.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The system is on low battery.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.OnQuit ====&lt;br /&gt;
Kodi will be closed.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;integer&#039;&#039; exitcode&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Kodi will be closed.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;exitcode&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;exitcode&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.OnRestart ====&lt;br /&gt;
The system will be restarted.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The system will be restarted.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.OnSleep ====&lt;br /&gt;
The system will be suspended.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The system will be suspended.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== System.OnWake ====&lt;br /&gt;
The system woke up from suspension.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The system woke up from suspension.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== VideoLibrary ===&lt;br /&gt;
==== VideoLibrary.OnCleanFinished ====&lt;br /&gt;
The video library has been cleaned.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;The video library has been cleaned.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.OnCleanStarted ====&lt;br /&gt;
A video library clean operation has started.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A video library clean operation has started.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.OnExport ====&lt;br /&gt;
A video library export has finished.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; failcount = &amp;quot;0&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; file ]&lt;br /&gt;
* [ &#039;&#039;string&#039;&#039; root ]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A video library export has finished.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;failcount&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;failcount&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;file&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;file&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;root&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;root&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.OnRemove ====&lt;br /&gt;
A video item has been removed.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; id&lt;br /&gt;
* [ &#039;&#039;[[#Optional.Boolean|Optional.Boolean]]&#039;&#039; transaction ] &#039;&#039;True if the removal is being performed within a transaction.&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Notifications.Library.Video.Type|Notifications.Library.Video.Type]]&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A video item has been removed.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;id&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;transaction&amp;quot;: {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;True if the removal is being performed within a transaction.&amp;quot;,&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Boolean&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;transaction&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Notifications.Library.Video.Type&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.OnScanFinished ====&lt;br /&gt;
Scanning the video library has been finished.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;Scanning the video library has been finished.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.OnScanStarted ====&lt;br /&gt;
A video library scan has started.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A video library scan has started.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;null&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== VideoLibrary.OnUpdate ====&lt;br /&gt;
A video item has been updated.&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA&amp;quot;&amp;gt;&lt;br /&gt;
# &#039;&#039;string&#039;&#039; sender&lt;br /&gt;
# &#039;&#039;object&#039;&#039; data&lt;br /&gt;
&#039;&#039;&#039;Properties:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#Library.Id|Library.Id]]&#039;&#039; id&lt;br /&gt;
* [ &#039;&#039;integer&#039;&#039; playcount = &amp;quot;-1&amp;quot; ]&lt;br /&gt;
* [ &#039;&#039;[[#Optional.Boolean|Optional.Boolean]]&#039;&#039; transaction ] &#039;&#039;True if the update is being performed within a transaction.&#039;&#039;&lt;br /&gt;
* &#039;&#039;string&#039;&#039; type&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|&amp;lt;syntaxhighlight lang=javascript enclose=&amp;quot;div&amp;quot;&amp;gt;{&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;A video item has been updated.&amp;quot;,&lt;br /&gt;
  &amp;quot;params&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;sender&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;id&amp;quot;: {&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Library.Id&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;id&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;playcount&amp;quot;: {&lt;br /&gt;
          &amp;quot;default&amp;quot;: &amp;quot;-1&amp;quot;,&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;playcount&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;transaction&amp;quot;: {&lt;br /&gt;
          &amp;quot;description&amp;quot;: &amp;quot;True if the update is being performed within a transaction.&amp;quot;,&lt;br /&gt;
          &amp;quot;$ref&amp;quot;: &amp;quot;Optional.Boolean&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;transaction&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;type&amp;quot;: {&lt;br /&gt;
          &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;type&amp;quot;,&lt;br /&gt;
          &amp;quot;required&amp;quot;: true&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;data&amp;quot;,&lt;br /&gt;
      &amp;quot;required&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[JSON-RPC API]]&lt;br /&gt;
* [[JSON-RPC API/v4|JSON-RPC API v4 (Eden)]]&lt;br /&gt;
* [[JSON-RPC API/v6|JSON-RPC API v6 (Frodo - Jarvis)]]&lt;br /&gt;
* [[JSON-RPC API/v8|JSON-RPC API v8 (Krypton)]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://jsonrpc.org/spec.html JSON-RPC 2.0 specification]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-zyp-json-schema-03 A JSON Media Type for Describing the Structure and Meaning of JSON Documents (Draft 03)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=JSON-RPC_API&amp;diff=176382</id>
		<title>JSON-RPC API</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=JSON-RPC_API&amp;diff=176382"/>
		<updated>2019-07-25T07:01:57Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Remove v9 reference. The Leia verion is v10 and no accurate page has been created for v10 yet will all the changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]}}&lt;br /&gt;
&lt;br /&gt;
{{JSON-RPC API nav}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
JSON-RPC is a HTTP- and/or raw TCP socket-based interface for communicating with Kodi. It replaces the deprecated [[HTTP API]], and offers a more secure and robust mechanism in the same format. It is based upon the [http://jsonrpc.org/spec.html JSON-RPC 2.0 specification].&lt;br /&gt;
&lt;br /&gt;
Each method in the interface can have different security needs which means one client may be allowed to only control playback while another can only read and manipulate the library. In version 2 (first stable) and 4 all clients are granted full authority but will later be forced to ask for privileges and the user of Kodi will have to grant said client access. The design of JSON-RPC is that most methods should behave roughly the same and maintain consistency while hiding the mechanics of Kodi from the client creator.&lt;br /&gt;
&lt;br /&gt;
In Kodi JSON-RPC can be accessed over a variety of transports and has been designed from the ground up to be flexible to allow control over new transports easily. Some of the transports have different limitations which will be enforced upon the interaction over that transport. As an example HTTP transports allow response and downloading of files while the raw TCP transport allows response and notifications (events and information Kodi sends to its clients). Depending on the client&#039;s needs it will choose one (or many) of the available transports.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling JSON-RPC ==&lt;br /&gt;
Since the interface is available on many transports enabling it depends on the transport.&lt;br /&gt;
* Python: Always enabled&lt;br /&gt;
* HTTP: In System/Settings/Network/Services activate &#039;&#039;Allow control of Kodi via HTTP&#039;&#039; (see [[Webserver#Enabling the webserver|Enabling the webserver]])&lt;br /&gt;
* TCP: In System/Settings/Network/Services activate &#039;&#039;Allow programs on this system to control Kodi&#039;&#039; for localhost access only and &#039;&#039;Allow programs on other systems to control Kodi&#039;&#039; for access from other computers as well&lt;br /&gt;
&lt;br /&gt;
Note: The [[EventServer]] is a different interface for sending remote keypresses to Kodi, and must be enabled separately, some programs may use both interfaces.&lt;br /&gt;
&lt;br /&gt;
== Transports &amp;amp; Functionalities ==&lt;br /&gt;
=== Transports ===&lt;br /&gt;
==== Python ====&lt;br /&gt;
The &#039;&#039;Python&#039;&#039; transport can only be used by Kodi addons through the &#039;&#039;&#039;executeJSONRPC&#039;&#039;&#039; method provided by the &#039;&#039;&#039;xbmc&#039;&#039;&#039; python library. As it must be available to every addon in an Kodi installation it must not be enabled or disabled by the user.&lt;br /&gt;
&lt;br /&gt;
==== HTTP ====&lt;br /&gt;
The &#039;&#039;HTTP&#039;&#039; transport can be used by third-party applications running on the same machine as Kodi or on a different machine which can access the machine running Kodi using the [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol HTTP] protocol. Because this transport allows applications outside Kodi to control Kodi, it has to be manually enabled (see [[#Enabling JSON-RPC|Enabling JSON-RPC]]) by the user.&lt;br /&gt;
&lt;br /&gt;
===== POST =====&lt;br /&gt;
Third-party applications can access Kodi&#039;s JSON-RPC API by sending JSON-RPC requests embedded in HTTP [http://en.wikipedia.org/wiki/POST_(HTTP) POST] requests to the following URL&lt;br /&gt;
&amp;lt;pre&amp;gt;http://&amp;lt;your-ip&amp;gt;:&amp;lt;your-port&amp;gt;/jsonrpc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting with Frodo nightly builds it is mandatory to set the HTTP header field &#039;&#039;&#039;Content-Type: application/json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== GET =====&lt;br /&gt;
Third-party application can access Kodi&#039;s JSON-RPC API by sending JSON-RPC requests embedded in a HTTP GET parameter called &#039;&#039;request&#039;&#039;. The JSON-RPC request must be URL encoded and sent to the following URL&lt;br /&gt;
&amp;lt;pre&amp;gt;http://&amp;lt;your-ip&amp;gt;:&amp;lt;your-port&amp;gt;/jsonrpc?request=&amp;lt;url-encoded-request&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TCP ====&lt;br /&gt;
The &#039;&#039;TCP&#039;&#039; transport can be used by third-party applications running on the same machine as Kodi or on a different machine which can access the machine running Kodi using the [http://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP] protocol. Because this transport allows applications outside Kodi to control Kodi it has to be manually enabled (see [[#Enabling JSON-RPC|Enabling JSON-RPC]]) by the user. Once enabled, third-party applications can access Kodi&#039;s JSON-RPC API by opening a TCP [http://en.wikipedia.org/wiki/Internet_socket socket] on port 9090 (this port can be configured in the [[Advancedsettings.xml#&amp;lt;jsonrpc&amp;gt;|advanced settings]] file) and sending raw JSON-RPC requests over that socket. Please note that no delimiters are provided in between notifications and/or responses. As such, your client needs to be able to deal with this, eg. by counting and matching curly braces ({}).&lt;br /&gt;
&lt;br /&gt;
==== WebSocket ====&lt;br /&gt;
The &#039;&#039;WebSocket&#039;&#039; transport has been added since Version 5 and can be used by third-party applications running on the same machine as Kodi or on a different machine which can access the machine running Kodi using the [http://en.wikipedia.org/wiki/WebSocket Websocket] protocol. The supported versions are 8 (draft [http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10 hybi-10]) and 13 ([http://tools.ietf.org/html/rfc6455 RFC 6455]). Because this transport allows applications outside Kodi to control Kodi it has to be manually enabled (see [[#Enabling JSON-RPC|Enabling JSON-RPC]]) by the user. Once enabled, third-party applications can access Kodi&#039;s JSON-RPC API by sending a WebSocket protocol handshake to the following URI&lt;br /&gt;
&amp;lt;pre&amp;gt;ws://&amp;lt;your-ip&amp;gt;:&amp;lt;configured tcp port&amp;gt;/jsonrpc&amp;lt;/pre&amp;gt;&lt;br /&gt;
It is important to send the handshake on the port of Kodi&#039;s TCP server (by default 9090, but this port can be configured in the [[Advancedsettings.xml#&amp;lt;jsonrpc&amp;gt;|advanced settings]] file). After having successfully finished the handshake third-party applications can send WebSocket protocl messages over that connection.&lt;br /&gt;
&lt;br /&gt;
=== Functionalities ===&lt;br /&gt;
==== Response ====&lt;br /&gt;
The &#039;&#039;Response&#039;&#039; functionality is the only functionality that should be present in every transport available as it describes the functionality to respond to a JSON-RPC request with a valid JSON-RPC response (be it an error message or an actual response).&lt;br /&gt;
&lt;br /&gt;
==== Notifications ====&lt;br /&gt;
The &#039;&#039;Notifications&#039;&#039; functionality includes both server-side (from the server to clients) and client-side (from clients to the server) notifications. A JSON-RPC notification is a valid JSON-RPC request with no &#039;&#039;id&#039;&#039; property. Following the JSON-RPC 2.0 specification any JSON-RPC request with no &#039;&#039;id&#039;&#039; must be considered as a notification and the receiver must not send a response upon a notification. &lt;br /&gt;
&lt;br /&gt;
In the specific case of Kodi, server-side notifications are used to inform clients about certain events to relieve clients of the need to periodically poll for certain events. Furthermore there are two ways of client-side notifications. Using [[/#JSONRPC.NotifyAll|JSONRPC.NotifyAll]] it is possible to ask Kodi to relay the message in the JSON-RPC request to all other connected clients. The second way is to send JSON-RPC requests without an &#039;&#039;id&#039;&#039; property in case the client does not care about the response (e.g. the method [[/#Player.Stop|Player.Stop]] does not return any useful information to the client).&lt;br /&gt;
&lt;br /&gt;
==== Direct file download ====&lt;br /&gt;
The &#039;&#039;Direct file download&#039;&#039; functionality is the ability to directly download files from Kodi by calling [[/#Files.Download|Files.Download]]. In this case the term &#039;&#039;direct&#039;&#039; means that the download happens within the JSON-RPC response of the [[/#Files.Download|Files.Download]] request.&lt;br /&gt;
&lt;br /&gt;
==== Redirected file download ====&lt;br /&gt;
The &#039;&#039;Redirected file download&#039;&#039; functionality is the ability to indirectly download files from Kodi by calling [[/#Files.PrepareDownload|Files.PrepareDownload]] and using the data received in the response to download the file over a different protocol (like HTTP, FTP ...) or another socket. As the &#039;&#039;Redirected file download&#039;&#039; is very transport specific, it must be handled separately for every transport supporting it.&lt;br /&gt;
&lt;br /&gt;
=== Comparison ===&lt;br /&gt;
The following table shows all the available transports and what functionalities they support&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!style=&amp;quot;padding-left: 5px; padding-right: 10px;&amp;quot; colspan=&amp;quot;2&amp;quot;|Transport&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Response&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Notifications&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Direct file&amp;lt;br /&amp;gt;download&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Redirected file&amp;lt;br /&amp;gt;download&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot; colspan=&amp;quot;2&amp;quot;|[[Python Development|Python]]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot; colspan=&amp;quot;2&amp;quot;|[http://en.wikipedia.org/wiki/Transmission_Control_Protocol TCP]&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right:5px;&amp;quot; rowspan=&amp;quot;2&amp;quot;|[http://en.wikipedia.org/wiki/HTTP HTTP]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right:5px;&amp;quot;|POST&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right:5px;&amp;quot;|GET&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot; colspan=&amp;quot;2&amp;quot;|[http://en.wikipedia.org/wiki/WebSocket WebSocket]&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Added in Version 5&lt;br /&gt;
&lt;br /&gt;
== API versions ==&lt;br /&gt;
The JSON-RPC API exposed by Kodi is constantly extended to provide better and more functionality to third party applications. For that reason Kodi provides a version information through the &#039;&#039;&#039;JSONRPC.Version&#039;&#039;&#039; method. The rule is that odd version numbers describe an API state, that is not stable and under heavy development whereas even version numbers describe a stable API. Therefore the version number can be used by third-party clients to check if their application might not be fully compatible with the JSON-RPC API exposed by a user&#039;s Kodi installation.&lt;br /&gt;
&lt;br /&gt;
Starting with XBMC v12 (Frodo) we started using a new versioning system (&amp;lt;major&amp;gt;.&amp;lt;minor&amp;gt;.&amp;lt;patch&amp;gt;) for the JSON-RPC API. Frodo stable is version 6.0.0 and from now on with every bugfix the &amp;lt;patch&amp;gt; part of the version is increased, with every feature addition to the API, the &amp;lt;minor&amp;gt; version is increased (and the &amp;lt;patch&amp;gt; version reset to 0) and with every backwards incompatible change, the &amp;lt;major&amp;gt; version is increased.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Release&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|JSON-RPC 2.0 specification&lt;br /&gt;
!colspan=&amp;quot;5&amp;quot;|Transports&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;padding-left: 5px; padding-right: 5px; width: 6em; text-align: left;&amp;quot;|API Version&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px; width: 5em;&amp;quot;|Version&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px; width: 4em;&amp;quot;|Name&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Method calls&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Notifications&amp;lt;br /&amp;gt;(server-side)&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Notifications&amp;lt;br /&amp;gt;(client-side)&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Parameters&amp;lt;br /&amp;gt;by-name&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Parameters&amp;lt;br /&amp;gt;by-position&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Batch requests&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Python&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|TCP&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|HTTP POST&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|HTTP GET&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|WebSocket&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v2|Version 2]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|10.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Dharma&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v3|Version 3]] / [[/v4|4]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|pre-11 / 11.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Eden&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v5|Version 5]] / [[/v6|6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|pre-12 / 12.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Frodo&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|13.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Gotham&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|13.1&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Gotham&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|13.2&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Gotham&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|14.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Helix&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|14.1&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Helix&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|14.2&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Helix&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|15.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Isengard&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|15.1&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Isengard&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|15.2&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Isengard&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|16.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Jarvis&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v6|Version 6]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|16.1&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Jarvis&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|[[/v8|Version 8]]&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|17.0&lt;br /&gt;
|style=&amp;quot;padding-left: 5px; padding-right: 5px;&amp;quot;|Krypton&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;For information requests only, actions require POST&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|Release&lt;br /&gt;
!|JSONRPC.Version&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Date&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Version&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Codename&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|[&amp;quot;version&amp;quot;]&lt;br /&gt;
|-&lt;br /&gt;
|18 December 2010&lt;br /&gt;
|10.0&lt;br /&gt;
|Dharma&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|10 March 2011&lt;br /&gt;
|10.1&lt;br /&gt;
|Dharma&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; |24 March 2012 &lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; |11.0&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; |Eden&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; |4&lt;br /&gt;
|-&lt;br /&gt;
|29 January 2013&lt;br /&gt;
|12.0&lt;br /&gt;
|Frodo&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
|18 March 2013&lt;br /&gt;
|12.1&lt;br /&gt;
|Frodo&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:3}&lt;br /&gt;
|-&lt;br /&gt;
|03 May 2013&lt;br /&gt;
|12.2&lt;br /&gt;
|Frodo&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:3}&lt;br /&gt;
|-&lt;br /&gt;
|24 December 2013&lt;br /&gt;
|12.3&lt;br /&gt;
|Frodo&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:3}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 04 May 2014&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 13.0&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Gotham&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:14,&amp;quot;patch&amp;quot;:3}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 05 June 2014&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 13.1&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Gotham&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:14,&amp;quot;patch&amp;quot;:3}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17 August 2014&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 13.2&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Gotham&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:14,&amp;quot;patch&amp;quot;:3}&lt;br /&gt;
|-&lt;br /&gt;
|23 December 2014&lt;br /&gt;
|14.0&lt;br /&gt;
|Helix&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:21,&amp;quot;patch&amp;quot;:2}&lt;br /&gt;
|-&lt;br /&gt;
|30 January 2014&lt;br /&gt;
|14.1&lt;br /&gt;
|Helix&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:21,&amp;quot;patch&amp;quot;:2}&lt;br /&gt;
|-&lt;br /&gt;
|26 March 2014&lt;br /&gt;
|14.2&lt;br /&gt;
|Helix&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:21,&amp;quot;patch&amp;quot;:2}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 21 July 2015&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 15.0&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Isengard&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:25,&amp;quot;patch&amp;quot;:2}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 16 August 2015&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 15.1&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Isengard&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:25,&amp;quot;patch&amp;quot;:2}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 19 October 2015&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 15.2&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Isengard&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:25,&amp;quot;patch&amp;quot;:2}&lt;br /&gt;
|-&lt;br /&gt;
|21 February 2016&lt;br /&gt;
|16.0&lt;br /&gt;
|Jarvis&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:32,&amp;quot;patch&amp;quot;:4}&lt;br /&gt;
|-&lt;br /&gt;
|24 April 2016&lt;br /&gt;
|16.1&lt;br /&gt;
|Jarvis&lt;br /&gt;
|{&amp;quot;major&amp;quot;:6,&amp;quot;minor&amp;quot;:32,&amp;quot;patch&amp;quot;:5}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 5 February 2017&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17.0&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Krypton&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:8,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 20 March 2017&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17.1&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Krypton&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:8,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 23 May 2017&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17.2&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Krypton&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:8,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 24 May 2017&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17.3&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Krypton&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:8,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 22 August 2017&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17.4&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Krypton&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:8,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 23 October 2017&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17.5&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Krypton&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:8,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 14 November 2017&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | 17.6&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | Krypton&lt;br /&gt;
| style=&amp;quot;background:#eee;&amp;quot; | {&amp;quot;major&amp;quot;:8,&amp;quot;minor&amp;quot;:0,&amp;quot;patch&amp;quot;:0}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
Kodi&#039;s JSON-RPC API has been designed to be self-documented i.e. a call to [[/#JSONRPC.Introspect|JSONRPC.Introspect]] results in a JSON-RPC response containing a documentation for all the available methods and data types. While this documentation is very incomplete and partly wrong for [[/v2|version 2]] it is provided as a full [http://tools.ietf.org/html/draft-zyp-json-schema-03 JSON schema] starting with [[/v3|version 3]]. As the documentation retrieved in that way is always specific to the used version of Kodi, it is (especially for development versions) the best documentation available and should be preferred over the wiki documentation as the latter always documents the API of the latest development.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
=== Output format ===&lt;br /&gt;
To be able to support easier debugging of (third-party) development using the JSON-RPC API, the JSON output generated by Kodi can be pretty-printed by setting&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsonrpc&amp;gt;&lt;br /&gt;
    &amp;lt;compactoutput&amp;gt;false&amp;lt;/compactoutput&amp;gt;&lt;br /&gt;
&amp;lt;/jsonrpc&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
in the [[Advancedsettings.xml#.3Cjsonrpc.3E|advancedsettings.xml]]. Default JSON output will be in compact format to minimize sent data (especially useful for mobile devices).&lt;br /&gt;
&lt;br /&gt;
=== Direct interaction ===&lt;br /&gt;
To be able to test some methods of Kodi&#039;s JSON-RPC API, it can be of great help to be able to send a single hand-written JSON-RPC request to Kodi to see its effect and the generated response. Depending on the transport protocol used there are different possibilities to do that:&lt;br /&gt;
&lt;br /&gt;
==== TCP ====&lt;br /&gt;
With a [http://en.wikipedia.org/wiki/Telnet telnet] connection (using [http://en.wikipedia.org/wiki/PuTTY PuTTY] on Windows or telnet on Linux) to port 9090 of the machine running Kodi it is possible to send and receive raw json data to/from Kodi. {{see also|SSH}}&lt;br /&gt;
&lt;br /&gt;
==== HTTP ====&lt;br /&gt;
A simple way of manually sending HTTP requests containing a JSON-RPC request to Kodi is using the [http://chrome.google.com/extensions/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb Simple REST Client] extension for Google&#039;s Chrome/Chromium browser. It allows defining a URL and the HTTP request type (&#039;&#039;&#039;POST&#039;&#039;&#039; is what we need). The actual JSON-RPC request can be defined in the &#039;&#039;&#039;Data&#039;&#039;&#039; field and then sent to Kodi.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[/v2|JSON-RPC API v2 (Dharma)]]&lt;br /&gt;
* [[/v4|JSON-RPC API v4 (Eden)]]&lt;br /&gt;
* [[/v6|JSON-RPC API v6 (Frodo - Jarvis)]]&lt;br /&gt;
* [[/v8|JSON-RPC API v8 (Krypton)]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://jsonrpc.org/spec.html JSON-RPC 2.0 specification]&lt;br /&gt;
* [http://tools.ietf.org/html/draft-zyp-json-schema-03 A JSON Media Type for Describing the Structure and Meaning of JSON Documents (Draft 03)]&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
These examples take their base from v4. Any that require a higher version will be marked.&lt;br /&gt;
&lt;br /&gt;
[[JSON-RPC API/Examples]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Settings/Media/Music&amp;diff=168219</id>
		<title>Settings/Media/Music</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Settings/Media/Music&amp;diff=168219"/>
		<updated>2019-05-26T15:59:49Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Clarification of some settings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MusicLibraryCreate}}&lt;br /&gt;
{{bigger|This category contains the settings for how information for music is collected, stored, shown and navigated.}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating Your Music Library ==&lt;br /&gt;
Have you arrived at this page by following the Music Library Creation Guide? If yes, then all you are required to do is check that your settings match the default settings of Section 4. The images show the default settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All ==&lt;br /&gt;
[[File:Settings_media_music_all.JPG|500px]]&lt;br /&gt;
{|&lt;br /&gt;
These settings apply to both File View mode and when viewing the music library.&lt;br /&gt;
|}&lt;br /&gt;
=== Track naming template ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Basic&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| The track naming template is a format mask made up of certain mask characters that represent specific music data and simple format instructions like italic. The track naming template controls how names of songs are displayed in the UI &#039;&#039;&#039;when sorted by track number&#039;&#039;&#039;. In order to function properly in File View mode, this requires tag reading to be enabled. The default setting is [%N.]%A-%T&lt;br /&gt;
&amp;lt;section begin=&amp;quot;Track naming template&amp;quot; /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Music Data&lt;br /&gt;
|  TrackNumber ||  DiscNumber ||  Artist ||  Title ||  Album ||  Genre ||  Year ||  FileName ||  Duration ||  Date ||  Rating ||  File Size ||  User Rating&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Mask Characters&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %N &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %S&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %A&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %T&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %B&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %G&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %Y&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %F&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %D&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %J&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %R&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %I&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |  %r&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;Track naming template&amp;quot; /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;width:150px; text-align:left&amp;quot; | Format Characters&lt;br /&gt;
!style=&amp;quot;width:10px; text-align:left;&amp;quot; |&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:left&amp;quot;| Usage Example&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Bold &lt;br /&gt;
|  [[B]...[/B]] || &lt;br /&gt;
| style=&amp;quot;background-color:#d3d3d3;&amp;quot; | Raw tag &lt;br /&gt;
| [%N] [[I]%A[/I]] - %B : [[B]%T[/B]]&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Italic&lt;br /&gt;
|  [[I]...[/I]] || &lt;br /&gt;
| style=&amp;quot;background-color:#d3d3d3;&amp;quot; | Output &lt;br /&gt;
| [track nr.] &#039;&#039;artist&#039;&#039; - album : &#039;&#039;&#039;title&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Search for thumbs on remote shares ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Advanced&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| When this option is enabled, Kodi will search for thumbs on remote shares including DVD and CD. Due to the long seek/read times required to perform this function this will slow the listing of network folders quite dramatically (particularly if there are many items that have no thumbs). The default setting is enabled. The recommended setting is disabled&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
[[File:Settings_media_music_files.JPG|500px]]&lt;br /&gt;
{|&lt;br /&gt;
These settings apply to File View mode only.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Enable tag reading ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| When viewing music files in File View read the embedded tag information (for those files that have not already been scanned into the library). When enabled File View will be able to display the song name along with other details rather than just the file name. However reading tags from every music file in real time can make viewing them slow, especially for folders with a lot of music files or when accessed over a network. It is recommended that you can “Scan” your songs into the library by following the guide. Among many advantages this will allow File View to show additional song details without having to re-read tags everytime. The default setting is Enabled.&lt;br /&gt;
|}&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;Settings Media Music Library&amp;quot; /&amp;gt;&lt;br /&gt;
== Library ==&lt;br /&gt;
[[File:SettingsMediaMusic-leia2.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show &amp;quot;All items&amp;quot; entry ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Advanced&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| Show an &amp;quot;All items&amp;quot; entry on the music library screens, e. g. &amp;quot;All albums&amp;quot; or &amp;quot;All artists&amp;quot;. The default setting is Enabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show song and album artists ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Basic&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| When enabled both song and album artists are shown. When disabled only album artists are shown,  artists that appear only on songs on compliation albums or as guest artist on an album by another artist are excluded. This effects what artists are shown when browsing the default artists node. Use is a personal choice. The default setting is Enabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Use artist sortname when sorting by artist ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| When Enabled, this setting will change the order Artists are listed in from using the name to using the sortname (if one has been provided in tagging). So for example &#039;&#039;Taylor Swift&#039;&#039; with a sort name of &#039;&#039;Swift, Taylor&#039;&#039; will be see in the &#039;&#039;S&#039;&#039; not the &#039;&#039;T&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prefer online information ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| With this enabled some artist and album data in the library, which had been derived from music file tags, will be overwritten by information that is downloaded from the scraper site or from a NFO file. For a list of library fields and tags that will be overwritten see [[NFO_files/Music]]. To clarify, this will not modify the music file themselves in any way, only the library entries. However this option is being deprecated, only enable if you are absolutely sure you want to do it and understand the consequences. It can not be used compensate for bad tagging of music files. The default setting is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fetch additional information during updates ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Advanced&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| With this enabled album and artist information will be automatically fetched, via scrapers from remote sites or NFO files, as a final phase of library scanning. This can be a slow process if you have a large music collection. If this is the initial creation of your library, and you are unsure about the quality of your music file tagging, leave this setting disabled (rather than try to fetch extra data). The additional information can be fetched later from the Context Menu in the Artists and Albums listing. The default setting is Disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Artist information folder ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| Select the folder where artist nfo files and local artwork are located. &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;See Also:&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;[[Artist information folder]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prefer online album art ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| With this enabled, when no local album cover exists online art will be used. Any cover images embedded in music files will only be used where neither local art nor online art is available. This is useful if the covers embedded in music files are low resolution and the user would prefer the higher quality results fetched by the album information provider. The default setting is Disabled.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;See Also:&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;[[Music artwork#Library_Artwork_Source_Priority| Library Artwork Source Priority]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Default provider for album information ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| Selects the default album information provider, see the add-ons manager for options. The default setting is the Universal Album Scraper.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Default provider for artist information ===&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| Selects the default artist information provider. The default setting is the Universal Artist Scraper&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;Settings Media Music Library&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_artwork&amp;diff=168218</id>
		<title>Music artwork</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_artwork&amp;diff=168218"/>
		<updated>2019-05-26T15:24:15Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Library Artwork Source Ppriority */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Artwork_Contents}}&lt;br /&gt;
{{mininav|[[:Category:Music_library|Music Library Index]] |[[Artwork]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Music artwork are images directly related to an artist or an album, preferably of high quality, that are displayed when viewing the album or artist entry in the library. They may also be used as visualizations while playing music. The artwork support in {{Kodi}}&#039;s music library is very flexible and able to display many types of artwork, depending on the skin in use.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;It is important to note the following:&#039;&#039;&#039;}}&lt;br /&gt;
* To enable &#039;&#039;&#039;local artwork&#039;&#039;&#039; from separate image files to be added when scanning new media items, the image files must be arranged in a certain folder hierarchy. &lt;br /&gt;
** For Albums see &#039;&#039;&#039;&#039;&#039;[[Music tagging#Folder_and_File_Structure| Music folder and file structure]]&#039;&#039;&#039;&#039;&#039; for a basic option &lt;br /&gt;
** For Artists see &#039;&#039;&#039;&#039;&#039;[[Artist information folder]]&#039;&#039;&#039;&#039;&#039; which is new for v18 and separates Artist artwork from music files and overcomes the inherent limitations of that previous method.&lt;br /&gt;
* Each artwork type, other than the basic thumb and fanart types (that are sufficient for Estuary), must be &#039;&#039;&#039;[[Advancedsettings.xml#Music library extra artwork| whitelisted in advancedsettings.xml]]&#039;&#039;&#039; in order to be added to the library automatically during scanning or scraping.&lt;br /&gt;
* Kodi 18 is required for expanded artwork type support in the music library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Artist Information Folder =&lt;br /&gt;
:{{main|Artist information folder}}&lt;br /&gt;
{{#lst:Artist_information_folder|intro}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Fetching Additional Artwork =&lt;br /&gt;
v18 introduces an &#039;&#039;&#039;experimental&#039;&#039;&#039; feature that will auto-load extended artwork from local files without the use of additional add-ons, and can be adapted to future changes in the results returned by the music information providers (album and artist scrapers) without changes to Kodi itself. It is considered an advanced feature. Usage and practicality of this feature are being monitored and may change in later releases.&lt;br /&gt;
&lt;br /&gt;
The common types of art available for items in the Music library can be categorised as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
! colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align:left; background-color:#72d2f7;&amp;quot; | Artist Artwork&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:left;&amp;quot; | Basic Art Types&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left;&amp;quot; |&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:left;&amp;quot; | Extended Art Types&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|fanart&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|thumb&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|banner&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|clearart&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|clearlogo&lt;br /&gt;
|style=&amp;quot;width:100px; text-align:left;&amp;quot;|fanart&#039;&#039;xx&#039;&#039; (extrafanart)&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|landscape&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;12&amp;quot; style=&amp;quot;text-align:left; background-color:#72d2f7;&amp;quot; | Album Artwork&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:left;&amp;quot; | Basic Art Types&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left;&amp;quot; |&lt;br /&gt;
! colspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align:left;&amp;quot; | Extended Art Types&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|thumb&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|&lt;br /&gt;
! colspan=&amp;quot;1&amp;quot; style=&amp;quot;text-align:left;&amp;quot; |&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|back&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|discart&lt;br /&gt;
|style=&amp;quot;width:80px; text-align:left;&amp;quot;|spine&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Basic&#039;&#039;&#039;- These types of artwork require no special setup as they have always been natively fetched by {{kodi}} from local files and by the default music scrapers. These are displayed by Estuary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extended&#039;&#039;&#039;- Many skins are more rich in art than Estuary and can show extended artwork as well. Historically cdART (now defunct) was used to fetch and apply this art, and more recently &#039;&#039;&#039;&#039;&#039;[https://forum.kodi.tv/showthread.php?tid=258886 Artwork Beef]&#039;&#039;&#039;&#039;&#039; is used.&lt;br /&gt;
&lt;br /&gt;
Users now have the facility to load any type of artwork without add-ons providing either they have that art locally or use a scraper that returns that type of art. However the default skin Estuary does not display the extended art types, &#039;&#039;&#039;if you are using Estuary then there is no need to consider this feature.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To enable this feature first the art types must be whitelisted in advancedsettings.xml, an example is given below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
	&amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
		&amp;lt;artistextraart&amp;gt;&lt;br /&gt;
			&amp;lt;arttype&amp;gt;banner&amp;lt;/arttype&amp;gt;&lt;br /&gt;
			&amp;lt;arttype&amp;gt;clearart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
			&amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;&lt;br /&gt;
         &amp;lt;arttype&amp;gt;fanart1&amp;lt;/arttype&amp;gt; &amp;lt;!-- Multiple fanart --&amp;gt;&lt;br /&gt;
         &amp;lt;arttype&amp;gt;fanart2&amp;lt;/arttype&amp;gt; &amp;lt;!-- Add as many as required. --&amp;gt;&lt;br /&gt;
         &amp;lt;arttype&amp;gt;fanart3&amp;lt;/arttype&amp;gt; &lt;br /&gt;
			&amp;lt;arttype&amp;gt;landscape&amp;lt;/arttype&amp;gt;&lt;br /&gt;
		&amp;lt;/artistextraart&amp;gt;&lt;br /&gt;
		&amp;lt;albumextraart&amp;gt;&lt;br /&gt;
			&amp;lt;arttype&amp;gt;back&amp;lt;/arttype&amp;gt;&lt;br /&gt;
			&amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
			&amp;lt;arttype&amp;gt;spine&amp;lt;/arttype&amp;gt;&lt;br /&gt;
		&amp;lt;/albumextraart&amp;gt;&lt;br /&gt;
	&amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; The code box adds common extended artwork that many skins will utilise. It is your choice which extended artwork you add. If you add additional to that shown, ensure the skin has support to display it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then decide where the art is going to come from, most likely this will be via the music scrapers. The &#039;&#039;&#039;[[Add-on:Universal_Artist_Scraper|Universal Artist Scraper]]&#039;&#039;&#039; and &#039;&#039;&#039;[[Add-on:Universal_Album_Scraper|Universal Album Scraper]]&#039;&#039;&#039; for v18 can fetch extended types of artwork. They currently have settings that enable what art types are fetched as well as the remote sources these come from (see images below). This over complicates matters, where things come from will always be part of the scraper settings, but the decision what to apply belongs to Kodi and the whitelist. For now ensure that the types of art you want are enabled here too, so the scraper fetches a full list of the art available, but these settings should be simplified in due course. &lt;br /&gt;
&lt;br /&gt;
Extended artwork can also be provide in correctly located and named local files. The general rule for local extended artwork file naming is &amp;lt;arttype&amp;gt;.&amp;lt;ext&amp;gt;, for where these need to be located see below.&lt;br /&gt;
&lt;br /&gt;
Extended art from local files is automatically picked up and applied as part of music library scanning or scrapin When local art of the types in the whitelist is not found  then the first avialable art of that type returned by the scraper is automatically applied as part of scraping.&lt;br /&gt;
&lt;br /&gt;
The process applied is as described in &#039;&#039;[[Artwork#What Artwork is Used Automatically | What Artwork is Used Automatically]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-overlay&amp;quot; widths=&amp;quot;500px&amp;quot; heights=&amp;quot;283px&amp;quot;&amp;gt;&lt;br /&gt;
File:UniversalArtistScraper03.jpg|Artist Scraper- Enable Extra Artwork&lt;br /&gt;
File:UniversalAlbumScraper02.jpg|Album Scraper- Enable Extra Artwork&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Local Artwork =&lt;br /&gt;
All types of artwork can be read from and saved to local artwork files.&lt;br /&gt;
&lt;br /&gt;
Local artist artwork can be located in the &#039;&#039;&#039;[[Artist information folder]]&#039;&#039;&#039; (shown in image) where the name of the artist subfolder does matter, &#039;&#039;&#039;or&#039;&#039;&#039; a &#039;&#039;&#039;[[Music tagging#Folder and File Structure| common unique artist folder]]&#039;&#039;&#039; among your music files if Kodi can find one (where the name of the subfolder does not matter). &lt;br /&gt;
&lt;br /&gt;
Local album artwork can be located in the &#039;&#039;&#039;[[Music tagging#Folder and File Structure| album folder]]&#039;&#039;&#039; (shown in image). This folder is identified from the music files it contains, not the folder name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;1000px&amp;quot; heights=&amp;quot;562px&amp;quot;&amp;gt;&lt;br /&gt;
File:LocalMusicArtwork01.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Embedded Artwork =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;EmbeddedArtwork&amp;quot; /&amp;gt;As of v17, Kodi supports embedded album art in mp3 files with ID3v2 tags, WMA/WMV files with ASF tags, FLAC files with Vorbis comments/Xiph tags, and mp4 files with itunes tags. It does not currently support embedded album art in APEv2 tags or Ogg files.&amp;lt;section end=&amp;quot;EmbeddedArtwork&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kodi cannot recognise multiple embedded images in a song file. It can only extract the &amp;quot;Front Cover&amp;quot; image assuming they have been tagged correctly within the file. All other images are ignored.&lt;br /&gt;
&lt;br /&gt;
A list of embedded tags recognised by Kodi is available&lt;br /&gt;
; &#039;&#039;&#039;&#039;&#039;see also: [[Music_tagging#Tags_Kodi_reads|Tags Kodi Reads]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Library Artwork Source Priority =&lt;br /&gt;
Music artwork is automatically allocated using the following order:&lt;br /&gt;
&lt;br /&gt;
# Local artwork files&lt;br /&gt;
#* Album and artist artwork from local files always takes precedence. &lt;br /&gt;
# Album cover artwork embedded in tracks (when &amp;quot;Prefer scraped album art&amp;quot; is disabled)&lt;br /&gt;
#* By default the first embedded front cover art found while processing the music files of the album is taken as the album cover.&lt;br /&gt;
# First available scraped art&lt;br /&gt;
#* The music information providers (scrapers) return lists of available artist and album artwork. The first of each the type of art for that artist or album is applied as the art if none has already been found locally. &lt;br /&gt;
#* Scraping only happens as part of library update if the option in Kodi &#039;&#039;Settings -&amp;gt; Media -&amp;gt; Music -&amp;gt; &amp;quot;Fetch additional information during updates&amp;quot;&#039;&#039; is enabled&lt;br /&gt;
# Album cover artwork embedded in tracks (when&amp;quot;Prefer scraped album art&amp;quot; is enabled)&lt;br /&gt;
#* Use of cover art from the music files can be unprioritised by enabling the &amp;quot;Prefer scraped album art&amp;quot; setting. This could be desirable if the embedded art is of low quality compared to what the scrapers may return.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Songs also have associated art, most of it is the art of the related album and artists but they can also have individual “thumb” type art automatically set. The thumb type artwork displayed for a &#039;&#039;&#039;song&#039;&#039;&#039; on both player OSD and library screens has a fallback strategy:&lt;br /&gt;
# Art embedded in that music file provided that all songs on an album do &#039;&#039;&#039;not&#039;&#039;&#039; have the same embedded art&lt;br /&gt;
# Falls back to album thumb. This is either from&lt;br /&gt;
## Local image file &#039;&#039;e.g. folder.jpg&#039;&#039;&lt;br /&gt;
## The common embedded art when that is the same in every music file in the album and &amp;quot;Prefer scraped album art&amp;quot; is disabled &lt;br /&gt;
## The remotely scraped album thumb result (when &amp;quot;Prefer scraped album art&amp;quot; is enabled or neither a) or b) are found)&lt;br /&gt;
&lt;br /&gt;
This means that if the embedded art is a jumble, say one music file with a different image, then the musc player OSD will show the individual embedded art not the album cover however it is set.&lt;br /&gt;
&lt;br /&gt;
= File View Mode =&lt;br /&gt;
File View Mode is similar to using the file manager provided by your operating system- eg Explorer in Windows systems. It is simply a file browser that allows you to view and play your media even though it has not been scanned and/or scraped into the Library. This mode only provides the added benefits of album and artist extended artwork and information when viewing music files that have been scanned into the library (so album and artist enries exist) and these have been sucessfully scraped. However basic artwork from local files is supported for music files that are not scanned into the library.&lt;br /&gt;
&lt;br /&gt;
For non-scanned music files and folders artwork in file view mode is as follows:&lt;br /&gt;
*The only type of art supported is &#039;&#039;[[Artwork_types#thumb|thumb]]&#039;&#039; artwork&lt;br /&gt;
*Every folder in the hierarchical structure can have an associated “thumb” artwork. The “thumb” for the folder on display is picked up from any suitably named image file found in that folder. &lt;br /&gt;
*A thumb for individual music files will be read from tag data embedded in the music file providing the &#039;&#039;&#039;&#039;&#039;[[Settings/Media/Music#Enable_tag_reading|Enable tag reading]]&#039;&#039;&#039;&#039;&#039; setting is enabled. Only front cover is currently supported.&lt;br /&gt;
*These images are loaded automatically and cached when the folder or music file is first viewed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= {{Kodi}} version updates =&lt;br /&gt;
* {{Kodi}} 17 and before did not have the &amp;quot;Artist information folder&amp;quot; option, so could have trouble identifying a local folder for artist artwork in some cases.&lt;br /&gt;
* {{Kodi}} 17 and before was &#039;&#039;&#039;limited to just &amp;quot;fanart&amp;quot; and &amp;quot;thumb&amp;quot; for artist images&#039;&#039;&#039; and &#039;&#039;&#039;&amp;quot;thumb&amp;quot; for album images&#039;&#039;&#039;, it did not have the flexibility to add a wide variety of artwork. Expanded artwork is new and still being explored from multiple angles, so not all skins or scrapers or tools will support a full selection.&lt;br /&gt;
** Skins for versions of Kodi prior to v18 could use Skin Helper Service for some support of expanded artwork, but that has been superseded with this Kodi built-in functionality.&lt;br /&gt;
* {{Kodi}} 18 adds a flexible collection of artwork for music items, but each artwork type must be &#039;&#039;&#039;[[Advancedsettings.xml#Music library extra artwork| whitelisted in advancedsettings.xml]]&#039;&#039;&#039; so that {{Kodi}} will add the specified artwork from scrapers and the file system automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=168217</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=168217"/>
		<updated>2019-05-26T08:30:45Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tags {{kodi}} reads */ add MUSICBRAINZ_RELEASEGROUPID tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MusicLibraryCreate}}&lt;br /&gt;
{{mininav|[[Music library]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
This page provides the following information:&lt;br /&gt;
&lt;br /&gt;
*How the Music section differs from the Video section of {{kodi}}&lt;br /&gt;
*The recommended method to organise your music files &lt;br /&gt;
*The recommended method for tagging your music files&lt;br /&gt;
*Explanation of some commonly misunderstood Music File Tags&lt;br /&gt;
*The Audio Files and Tags that {{kodi}} reads and uses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Understanding the Music Library =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;understanding&amp;quot; /&amp;gt;There is a fundamental differences between video library operation and the music library operation: &lt;br /&gt;
*The video library is based on using the filenames or folder names to obtain online data. If they are incorrectly named, then there are no scraper results and there will be no library entry.&lt;br /&gt;
*&#039;&#039;&#039;The music library is based on scanning tags embedded in the music files.&#039;&#039;&#039; It ignores the folder names and structure and file names. Proper tagging is essential to ensure the library is populated correctly. Having slight variations in the tags for artist and album names could mean duplicated and unwanted entries.&amp;lt;section end=&amp;quot;understanding&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Folder and File Structure =&lt;br /&gt;
Although {{kodi}} ignores the folder structure and the names of the folders and files, the structure of your folders is important as it affects the operation of other functions such as Import/Export, nfo files and Artwork. For example, if you have all your music files in one folder (which is possible), then you lose the ability to use local nfo files, local artwork, and the import/export module will not function correctly.&lt;br /&gt;
&lt;br /&gt;
The following is {{kodi}} &#039;&#039;&#039;best practice&#039;&#039;&#039;. Remember use a layout that is nice for you, but &#039;&#039;&#039;tag accurately.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
Song files require suitable tagging for use in {{kodi}}. While {{kodi}} can scan minimal tags into the library, it can lead to errors in the library and subsequent scraping. We recommend music files are tagged with MusicBrainz as detailed below.&lt;br /&gt;
&lt;br /&gt;
Remember that {{kodi}} does not extract any information from the filename, so the filename is your choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Folders ==&lt;br /&gt;
{{kodi}} is quite flexible with the folder structure. The diagram below is an &#039;&#039;&#039;example&#039;&#039;&#039;. You should group your albums in a manner that makes sense to you.&lt;br /&gt;
&lt;br /&gt;
To ensure {{kodi}} and other add-on processes can function efficently and correctly, the following is recommended.&lt;br /&gt;
*Songs from the same album should be in the one folder&lt;br /&gt;
*If there is more than one disk in the release, each disk should be in a sub-folder containing the songs from that disk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following is a typical folder structure:&lt;br /&gt;
&lt;br /&gt;
 f:\   ....................................(root)&lt;br /&gt;
  |__Artist Information  ..................(Artist Information Folder)&lt;br /&gt;
  |&lt;br /&gt;
  |__Artist Music   .......................(source folder)&lt;br /&gt;
  |  |__ Madonna   ........................(artist folder)&lt;br /&gt;
  |  |   |__ Beautiful Stranger (1999)   ..(album folder)&lt;br /&gt;
  |  |   |   |__ Song 1&lt;br /&gt;
  |  |   |   |__ Song 2&lt;br /&gt;
  |  |   |   |__ Song 3 etc&lt;br /&gt;
  |  |   |__ Bedtime Stories (1994)   .....(album folder)&lt;br /&gt;
  |  |   |   |__ Song 1&lt;br /&gt;
  |  |   |   |__ Song 2&lt;br /&gt;
  |  |   |   |__ Song 3 etc&lt;br /&gt;
  |  |   |__ Like A Prayer (1989)   .......(album folder)&lt;br /&gt;
  |  |   |   |__ Song 1&lt;br /&gt;
  |  |   |   |__ Song 2&lt;br /&gt;
  |  |   |   |__ Song 3 etc&lt;br /&gt;
  |  |__ Simply Red   .....................(artist folder)&lt;br /&gt;
  |      |__ Picture Book (1985)   ........(album folder)&lt;br /&gt;
  |          |__ Song 1&lt;br /&gt;
  |          |__ Song 2&lt;br /&gt;
  |          |__ Song 3 etc&lt;br /&gt;
  |&lt;br /&gt;
  |__Compilations   .......................(Source)&lt;br /&gt;
  |  |__ Essential Eighties   .............(album folder)&lt;br /&gt;
  |  |       |__ Song 1&lt;br /&gt;
  |  |       |__ Song 2&lt;br /&gt;
  |  |       |__ Song 3 etc&lt;br /&gt;
  |  |__ 100% Hits- Best of 2005   ........(album folder)&lt;br /&gt;
  |          |__ Song 1&lt;br /&gt;
  |          |__ Song 2&lt;br /&gt;
  |          |__ Song 3 etc&lt;br /&gt;
  |&lt;br /&gt;
  |__Classical   ..........................(Source)&lt;br /&gt;
  |&lt;br /&gt;
  |__Audiobooks   .........................(Source)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
A source folder contains your media collection- in this case Music. This folder is then set as a Source in {{kodi}} which enables {{kodi}} to access your Music. &lt;br /&gt;
&lt;br /&gt;
In the diagram from the previous section &#039;&#039;Artist Music, Compilations, Classical&#039;&#039; and &#039;&#039;Audiobooks&#039;&#039; are Sources.&lt;br /&gt;
&lt;br /&gt;
Setting and Scanning of Sources is covered in detail in the next step of the guide. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tagging =&lt;br /&gt;
Most music files purchased or ripped by your favourite software have only minimal metadata embedded. Normally this is not a problem and works very well on simple music players.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
{{kodi}}, being an advanced and feature rich player, requires greater accuracy with the embedded tags. Any slight variance in, for example, the Album name between the tracks from the same album will see multiple entries in the library for that Album. It is not uncommon to have a single album split into three similarly named albums. Also true for Artists. It is for this reason that there is a separation of the Scanning and Scraping processes for Music. The initial scan allows you to find and correct errors in tagging, before scraping.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This table has examples of errors in tagging, which will cause duplicated entries in the library...&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!Similar Name 1 || Similar Name 2 || Note&lt;br /&gt;
|-&lt;br /&gt;
|György Ligeti || Gyorgy Ligeti || Accented and unaccented names will create duplicate entries&lt;br /&gt;
|-&lt;br /&gt;
|The Best of || The Very Best Of || Inconsistent naming between songs of the same album and/or artist will cause duplicated entries&lt;br /&gt;
|-&lt;br /&gt;
|Madonna || Madonnna || Spelling mistakes will cause duplicated entries for albums and/or artists&lt;br /&gt;
|-&lt;br /&gt;
|Sting || Sting and The Police || Seen as two separate and unrelated Artists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As {{kodi}} scans your music collection, it copies the data contained in those tags into the {{kodi}} music database. The benefits of this are:&lt;br /&gt;
*Once the scan is complete, the tags are not accessed again&lt;br /&gt;
*All information is now obtained from the database. This has the benefit of dramatically increasing efficency and speed when navigating the library.&lt;br /&gt;
*Now that a database entry exists, you are able to scrape additional information from online sources. This is covered later in the guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MusicBrainz ==&lt;br /&gt;
&#039;&#039;&#039;{{kodi}} has strong support for MusicBrainz tagging. It is highly recommended that users tag their music files using MusicBrainz Picard.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MusicBrainz Picard&#039;&#039;&#039; is the music file tagger software that can access the MusicBrainz database to locate metadata to embed into your music files. MBIDs are useful because names are not unique. The bigger and more diverse your music collection is, the more likely you will encounter Artists with the same name. &lt;br /&gt;
&lt;br /&gt;
The advantages of tagging with MusicBrainz are:&lt;br /&gt;
*They allow you to have different artists with the same name in your library e.g. &amp;quot;John Williams&amp;quot; the classical guitarist and &amp;quot;John Williams&amp;quot; the film music composer and conductor.&lt;br /&gt;
*They negate inconsistencies in artist naming e.g. having &amp;quot;Peter Tchaikovsky&amp;quot; on some albums and &amp;quot;Piotr Czajkowski&amp;quot; on others&lt;br /&gt;
*They allow you to have more than one release of an album in your library e.g. the normal and deluxe editions of an album&lt;br /&gt;
*They clearly identify the artist and album in ways that names alone can not. This can then be used to accurately scrape additional artist and album information and locate the correct artwork&lt;br /&gt;
*They allow the scraping process to be more efficient, otherwise an extra call is made to try and get an mbid first to use at the scraping sites, and each request from Musicbrainz must be throttled to 1 per sec which will slow the scraping process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is a screenshot of the main screen of the Picard software. A brief description of the layout as follows.&lt;br /&gt;
&lt;br /&gt;
*Top Left Box- Folder listing of your music collection&lt;br /&gt;
*Top Centre Box- Albums are dragged and dropped here in preparation for matching and tagging. Pressing &#039;&#039;Lookup&#039;&#039; (greyed out) will commence the lookup process&lt;br /&gt;
*Top Right Box- Matching albums are displayed here and your songs are overlayed. In the screenshot, songs 01, 08 and 09 have been matched to the suggested album. If all songs match and you agree the correct album was located, simply pressing Save will tag the album with the tags displayed in the Bottom Tag Box.&lt;br /&gt;
*Bottom Tag Box - Selecting a song from the Top Right Box will display all available tag fields (left column), the current tags in the music file (Original Value column) and the MusicBrainz tags to be embedded in the music file (right column).&lt;br /&gt;
&lt;br /&gt;
The example in the image below shows the following:&lt;br /&gt;
*Most tags are missing (original value column)&lt;br /&gt;
*The top three yellow entries are incorrect (original value column) and the corrections are in the right column&lt;br /&gt;
*The green entries in the right column indicate new tags to be embedded&lt;br /&gt;
*The black entries at the bottom of the list indicate no change to the existing tags as they are correct or not used by MusicBrainz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;1000px&amp;quot; heights=&amp;quot;563px&amp;quot;&amp;gt;&lt;br /&gt;
File:MusicBrainzPicard01.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although Picard is very easy to use, you must avoid blindly accepting everything offered by the software. It is important that you confirm the correct album was located. Due to the global nature of the database, there are many releases for a single album. These releases differ between countries, usually due to copyright requirements. This may lead you to inadvertendly select the incorrect release for your album, even though it is named exactly the same. The differences between releases may be as simple as different song ordering or the inclusion of additional bonus tracks.&lt;br /&gt;
&lt;br /&gt;
For the best tagging experience set the correct options in Picard, particularly the &amp;quot;Clear Existing Tags&amp;quot; option in settings. This option means that any old tags that may cause issues are wiped, preserving only the musicbrainz tagging. It will also be wise to tag using ID3v2.4 compatibility.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;500px&amp;quot; heights=&amp;quot;283px&amp;quot;&amp;gt;&lt;br /&gt;
File:Picard options.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== albumartists ==&lt;br /&gt;
{{Kodi}} requires the &#039;&#039;&#039;albumartists&#039;&#039;&#039; tag to correctly handle multiple album artists on the same album. This tag is not a default tag in MusicBrainz Picard and other tagging software. &amp;lt;ref&amp;gt; https://forum.kodi.tv/showthread.php?tid=334729&amp;amp;pid=2760161#pid2760161 &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To include this tag add a new script under &#039;&#039;Options &amp;gt; Options &amp;gt; Scripting &amp;gt; Add new script&#039;&#039; and include the following code...&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
$setmulti(albumartists,%_albumartists%)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; widths=&amp;quot;500px&amp;quot; heights=&amp;quot;283px&amp;quot;&amp;gt;&lt;br /&gt;
File:Picard Script.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the music files are tagged, avoid modifying the MusicBrainz tags unless you clearly understand the relationship of the MBID&#039;s and the other related tags. For example, embedding MBID tags, but then editing the Artist tag or Album Artist tag will result in incorrect entries in the library.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
*If you need to change the artist or album artist tag you also have to edit the matching artist mbid tag and album artist mbid tag. &lt;br /&gt;
*If Kodi finds a release mbid it will expect the artist mbid tags to also be present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [https://musicbrainz.org/ MusicBrainz Website]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [https://picard.musicbrainz.org/ MusicBrainz Picard Software]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;center&amp;gt;{{red|&#039;&#039;&#039;The remainder of this page deals with special use cases or provides information for technical interest and reference only. It can be safely disregarded if these do not apply to you&#039;&#039;&#039;}}&amp;lt;/center&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;{{next|[[Adding_music_to_the_library|Scanning Music into Library]]}} &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ripping CD&#039;s =&lt;br /&gt;
{{main|Ripping CDs}}&lt;br /&gt;
{{#lst:Ripping CDs|intro}}&lt;br /&gt;
&lt;br /&gt;
There is no requirement to use the {{Kodi}} CD Ripper. If you are comfortable using other ripping software, then we recommend you continue using that software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Cue Sheets =&lt;br /&gt;
{{#lst:Cue_sheets|intro}}&lt;br /&gt;
&lt;br /&gt;
{{kodi}} does provide basic support for using cue sheets to define individual tracks when an entire CD has been ripped into a single music file. However the information provided by  the cue sheet standard is much more limited than that of standard tagging, hence to enjoy the full music library features it is recommended that tracks are ripped into separate files and fully tagged.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{red|If you do not use Cue Sheets you can safely move onto the next step.}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
;{{see also|Cue_sheets}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Streams =&lt;br /&gt;
{{#lst:Internet_video_and_audio_streams|intro}}&lt;br /&gt;
&lt;br /&gt;
;{{see also|Internet_video_and_audio_streams}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Technical Explanation: File tags =&lt;br /&gt;
For many categories, such as genres and artists, {{kodi}} supports multiple values in the one field.  By default it uses the character sequence &amp;quot; / &amp;quot; to divide the entry into multiple values.  This divider may be changed via [[advancedsettings.xml]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Resolving Compilations and Multiple Artists ==&lt;br /&gt;
{{red|Applies to v17 and below. v18 introduced the [[Artist information folder]] which solved these problems. You are encouraged to update to v18}}&lt;br /&gt;
&lt;br /&gt;
{{kodi}} reads the &#039;&#039;Album Artist&#039;&#039; tag in ID3, Ogg, APE and MP4 tags and uses it if available to assign an artist to the album (independently of the track&#039;s artist information).  This is the &amp;quot;Album Artist&amp;quot; tag (in ID3 this is represented by the &amp;quot;TPE2&amp;quot; tag; in vorbiscomment (ogg) files &amp;quot;ALBUMARTIST&amp;quot;, &amp;quot;ALBUM ARTIST&amp;quot; and &amp;quot;ENSEMBLE&amp;quot; are all supported).  Multiple artists for either a track or album artist can be specified in &amp;quot;Artist1 / Artist2 / Artist3&amp;quot; format.&lt;br /&gt;
&lt;br /&gt;
If no &#039;&#039;Album Artist&#039;&#039; tag exists, {{kodi}} will use the first (primary) artist from the tracks as the &#039;&#039;Album Artist&#039;&#039;.  Essentially we do a string comparison of all the track artists, and assign the common artists as the &#039;&#039;Album artist&#039;&#039;. This is generally the TPE1 tag in ID3.&lt;br /&gt;
&lt;br /&gt;
As many users don&#039;t yet use the &#039;&#039;Album Artist&#039;&#039; tag, {{kodi}} has an additional filter system for identifying compilation albums, where each track normally has a different artist.  As {{kodi}} scans a folder, it does the following:&lt;br /&gt;
# Identifies albums based on &#039;&#039;Album&#039;&#039; name alone in the folder and groups the songs that have the same &#039;&#039;Album&#039;&#039; name together as an album.&lt;br /&gt;
# Runs through each album&#039;s assigned songs.  If there is 2 or more tracks with the same &#039;&#039;Track&#039;&#039; number, the group of songs must come from 2 or more albums, so the &#039;&#039;Album&#039;&#039; name is ruled out as a possible compilation.&lt;br /&gt;
# If any of the songs assigned to the &#039;&#039;Album&#039;&#039; name have an &#039;&#039;Album Artist&#039;&#039; tag, then {{kodi}} assumes the user knows what they&#039;re doing, and this album is also ruled out from being a compilation.&lt;br /&gt;
# If two or more songs assigned to the &#039;&#039;Album&#039;&#039; name then have different primary artists, then the &#039;&#039;Album&#039;&#039; name is considered to be a group of songs from a compilation, and the &#039;&#039;Various Artists&#039;&#039;&amp;quot; tag is assigned as the album artist.&lt;br /&gt;
# Otherwise, if all the songs have the same primary artist but don&#039;t have the same full artist list (eg a song or two has an additional artist) then the album is assigned the primary artist as it&#039;s &#039;&#039;Album Artist&#039;&#039;, and we assume the additional artists are guest artists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ratings in ID3 tags ==&lt;br /&gt;
Ratings in ID3 tags are read via the POPM field, and (if this doesn&#039;t exist) in a custom (TXXX) field named &amp;quot;RATING&amp;quot;.  For the RATING field, we accept 1-5 as valid ratings.  For the POPM field things are more complicated, as there is no established standard in place.  We currently most closely respect what Mediamonkey does, and also have some support for what Windows Media Player 11 does.  The POPM tag takes a value from 0..255, with 0 meaning no rating, 1 the worst, and 255 the best.  We currently map these as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!&#039;&#039;&#039;POPM value&#039;&#039;&#039; || &#039;&#039;&#039;Star rating&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|0 ||&lt;br /&gt;
|- &lt;br /&gt;
|1 || &#039;&#039;&#039;*&#039;&#039;&#039; This is a special case for Windows Media Player&lt;br /&gt;
|- &lt;br /&gt;
| 2-8 || &lt;br /&gt;
|- &lt;br /&gt;
|9-49 || &#039;&#039;&#039;*&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|50-113 ||&#039;&#039;&#039;**&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|114-167 || &#039;&#039;&#039;***&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|168-218 || &#039;&#039;&#039;****&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|219-255 ||&#039;&#039;&#039;*****&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Audio Formats &amp;amp; Tags =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Supported Audio Formats ==&lt;br /&gt;
Although the list of playable formats is quite comprehensive, it is not accurate to say that every {{kodi}} installation will play every format. The ability to play some of the more obscure formats will depend upon the version of {{kodi}} and the operating system in use. Some formats will require the installation of add-ons.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Advancedsettings.xml|musicextensions}}&lt;br /&gt;
&lt;br /&gt;
;{{See also|Advancedsettings.xml}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Supported Metadata Containers ==&lt;br /&gt;
The following metadata containers are supported by {{kodi}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Metadata Container || Note&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:APEv2 tag|APEv2 tag]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Advanced_Systems_Format|ASF]] ||&lt;br /&gt;
|-&lt;br /&gt;
|Generic Tag || A generic tag for basic data from other odd file types&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:ID3|ID3]] || v1, v2.3 and v2.4&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:MPEG-4 Part 14#Metadata|MP4]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[https://xiph.org/ Xiph.org] || Vorbis Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common File &amp;amp; Tag Combination ==&lt;br /&gt;
You will notice that not all the tags listed in the section &#039;&#039;Supported Audio Formats&#039;&#039; above are listed in the following table. Those formats that are ommitted do not have provision to support embedded tags. If your collection contains any of these unsupported formats, you will be unable to scan the music into the library. Your options are:&lt;br /&gt;
#Convert your audio file to a supported format and tag using MusicBrainz Picard. (recommended)&lt;br /&gt;
#Access your music via the File Manager or via File View&lt;br /&gt;
&lt;br /&gt;
{{kodi}} supports the following common Audio File and Tag Formats &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!| Metadata container&lt;br /&gt;
!| Additional Filename extensions&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:APEv2 tag|APEv2 tag]] || ape, mp3, aac, wv, mpc&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:Advanced_Systems_Format|ASF]] || asf, wmv, wma&lt;br /&gt;
|-&lt;br /&gt;
| Generic Tag || it, mod, module, nst, wow, s3m, xm&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:ID3|ID3 v1]] || mp3, aac&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:ID3|ID3 v2]] || mp3, aac, tta, aif, aiff, wav, flac&lt;br /&gt;
|-&lt;br /&gt;
| iTunes [[wikipedia:MPEG-4 Part 14#Metadata|MP4]] || .3g2 .m4a .m4b .m4p .m4r .m4v .mp4&lt;br /&gt;
|-&lt;br /&gt;
|[https://xiph.org/ Xiph.org] || flac, oga, ogg, opus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
*FLAC files- xiph tags override id3v2 tags &lt;br /&gt;
*mp3 files can have either id3 or APE tags&lt;br /&gt;
*mka, dsf, dff - ID3v2 format read but are handled by ffmpeg tag reader and it does not support all tags from IDE standard)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags {{kodi}} reads ==&lt;br /&gt;
{{kodi}} will scan the following tags embedded in the music file. The column &#039;&#039;{{kodi}} Version&#039;&#039; indicates the version of {{kodi}} that the tag was introduced, and will work in subsequent versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| {{kodi}} Version&lt;br /&gt;
! Vorbis (.Flac)&lt;br /&gt;
! ID3v2 (.mp3)&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|MUSICBRAINZ_RELEASEGROUPID&lt;br /&gt;
|MUSICBRAINZ RELEASE GROUP ID&lt;br /&gt;
|MUSICBRAINZ_RELEASEGROUPID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Release Group Id&lt;br /&gt;
|MusicBrainz/Release Group Id&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|ARTISTSORT&lt;br /&gt;
|TSOP&lt;br /&gt;
|ARTISTSORT&lt;br /&gt;
| &lt;br /&gt;
|WM/ArtistSortOrder&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|ALBUMARTISTSORT&lt;br /&gt;
|TS02&lt;br /&gt;
|ALBUMARTISTSORT&lt;br /&gt;
|soaa&lt;br /&gt;
|WM/AlbumArtistSortOrder&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|COMPOSERSORT&lt;br /&gt;
|TSOC&lt;br /&gt;
|COMPOSERSORT&lt;br /&gt;
|soco&lt;br /&gt;
|WM/ComposerSortOrder&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|WRITER&lt;br /&gt;
|WRITER&lt;br /&gt;
|WRITER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;{{next|[[Adding_music_to_the_library|Scanning Music into Library]]}} &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Artwork&amp;diff=168215</id>
		<title>Artwork</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Artwork&amp;diff=168215"/>
		<updated>2019-05-26T07:39:32Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Obtaining Artwork */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Artwork_Contents}}&lt;br /&gt;
{{mininav|[[Music_library|Music Library]] {{l2|[[Video_library|Video Library]]}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The use of artwork will transform your mundane media player into a showpiece to be proud of, especially when teamed up with your favourite skin. Kodi   will allow you to display Movie Posters, Fanart, Album Covers, Actor and Artist images to name a few. Install the Kodi slideshow add-on, and you will have a constant display of video or music fanart to brighten your entertainment room.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{red|The {{kodi}} scrapers automatically download artwork with little input required by the user. These pages are for those users that want greater control over their artwork by saving artwork locally or creating their own.}}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As the topic covering artwork is comprehensive, it has been broken down into smaller and more manageable pages for ease of reading. Make use of the Table of Contents and the NavBox located at the top right of the page. Information common to all categories is located on this page and the Artwork Type page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be aware that artwork is skin dependent. Not all artwork types are used in all skins.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Obtaining Artwork =&lt;br /&gt;
Movie, TV Show and Music artwork can be obtained using a variety of methods. The most common method is via the various Kodi scrapers (also known as &#039;&#039;information providers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scrapers ==&lt;br /&gt;
The defautl sources for information and artwork that are used by the default scrapers are: &lt;br /&gt;
&lt;br /&gt;
Movies- [https://fanart.tv/ Fanart.tv] and [https://www.themoviedb.org/ The MovieDB]&amp;lt;br /&amp;gt;&lt;br /&gt;
TV Shows- [https://fanart.tv/ Fanart.tv] and [https://www.themoviedb.org/ The MovieDB]&amp;lt;br /&amp;gt;&lt;br /&gt;
Music- [https://fanart.tv/ Fanart.tv] and [http://www.theaudiodb.com/ The AudioDB]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Artwork from these sites can also be downloaded manually by visiting and searching the sites and saving the artwork locally as described on the linked pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Managers ==&lt;br /&gt;
There is a range of software that can create nfo files and download artwork and save them to the correct location and correct naming. They perform the same process and function as the Kodi Scraping operation does natively, but they do not add any entries into the Kodi library. Instead they create what is known as &#039;&#039;&#039;[[NFO_files|NFO files]]&#039;&#039;&#039;. This file holds all the metadata for that particular movie, tv show or music. The software will also download associated artwork from the scraper site. Kodi can then read this file and scrape it into the library along with the artwork.&lt;br /&gt;
&lt;br /&gt;
Although these programs are quick and easy to use, they are more suited for use where a movie or tv show is not listed at the scraper site. You are then able to create the metadata from scratch. You would normally use this for, say, home movies, sporting events or other items that are not listed at the scraper site. &lt;br /&gt;
&lt;br /&gt;
It is always best to use Kodi for the normal mainstream scrapes and the Media Managers for the non-listed movie, tv show and music scrapes.&lt;br /&gt;
; {{see also|NFO_files}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Search ==&lt;br /&gt;
Using an online search engine can help you discover individual artworks, or additional sites where artwork is hosted. When downloading, check that the resolution is of an acceptable standard. Also pay respect to any copyright notices that are attached to the artwork.&lt;br /&gt;
&lt;br /&gt;
Once downloaded, they must be named and saved correctly for the artwork to be visible to Kodi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create Your Own ==&lt;br /&gt;
{{main|Artwork/Types}}&lt;br /&gt;
So you are not happy with the artwork the scraper downloaded? And you just can&#039;t find that perfect artwork by manually searching the internet. Then, you will just have to create your own. For those who are artistically minded and can easily navigate around image editing software, then you should be able to easily create your very own user-defined artwork on your computer.  Only your imagination is the limit, but be mindful that the artwork needs to remain true to the movie or tv show it represents. &lt;br /&gt;
&lt;br /&gt;
If you are unsure where to start, the following links may prove useful. Especially if you plan to share your masterpieces. If this is the case, it is best to stick to the posted guidelines.&lt;br /&gt;
*Fanart.TV- The premier repository for all things artwork. They have an in-depth guide for artwork requirements&lt;br /&gt;
:;&#039;&#039;see : [https://fanart.tv/movie-fanart/&amp;lt;nowiki&amp;gt;Fanart.tv- Image Creation Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
*The MovieDB- The go to movie scraper site for Kodi. In addition to metadata, they also hold a large repository of artwork that are created and uploaded to the site by people just like you. Read their easy to understand artwork creation guide.&lt;br /&gt;
:; &#039;&#039;see : [https://www.themoviedb.org/bible/image/59f7583e9251416e7100006e#59f758409251416e7100006f themoviedb- Image Creation Guide]&#039;&#039;&lt;br /&gt;
*The TVDB- The go to TV Show scraper site for Kodi. In addition to metadata, they also hold a large repository of artwork devoted to TV Shows. Read their easy to understand artwork creation guide.&lt;br /&gt;
:; &#039;&#039;see : [http://www.thetvdb.com/wiki/index.php/Category:Images&amp;lt;nowiki&amp;gt;theTVDB- Image Creation Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
*IMDB- A comprehensive listing of ensuring artwork is appropriate and suitable.&lt;br /&gt;
:; &#039;&#039;see : [https://contribute.imdb.com/updates/guide/images&amp;lt;nowiki&amp;gt;IMDB- Image Submission Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
*TheAudioDB- The go to scraper site for all things music. They hold metadata on Artists, Albums and Songs with a large collection of music artwork.&lt;br /&gt;
:; &#039;&#039;see : [http://theaudiodb.com/forum/viewtopic.php?f=2&amp;amp;t=1&amp;lt;nowiki&amp;gt;TheAudioDB- Image Creation Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= What Artwork is Used Automatically =&lt;br /&gt;
&lt;br /&gt;
== Local Art Comes First ==&lt;br /&gt;
&#039;&#039;&#039;Local artwork takes priority, so on update of both music and video libraries {{kodi}} will always use local artwork when it can find some. Only when there is no local artwork found, does {{kodi}} use the artwork that the scrapers can fetch from online sources.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;It is important to note that once remote artwork for a movie, tv show, artist or album has been successfully scraped into the library (because there was no local art found when the scraper was run), Kodi will not look for local art to replace it on subsequent library updates.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you have made changes to either local artwork and/or metadata (in the form of a nfo file), you must instruct Kodi to update using one of the following methods...&lt;br /&gt;
#If the Library has not yet been created, or the source has not yet been added&lt;br /&gt;
#*Ensure your artwork is named and saved correctly. Add the [[Media sources]] to Kodi and allow to update. Artwork will be cached&lt;br /&gt;
#This Movie/TV Show/Album/Artist is new and has not been added to the library yet&lt;br /&gt;
#*An Update Library will scrape and cache the artwork, or&lt;br /&gt;
#*For Videos, navigate Videos&amp;gt;Files, navigate to the item and call up the Information page. This will start an automatic scrape for that single item&lt;br /&gt;
#*For Music, navigate Music&amp;gt;Files, locate and highlight the new artist or album. From the context menu select &#039;&#039;Scan item to library&#039;&#039;&lt;br /&gt;
#I added new artwork for Movie/TV Show/Album/Artist already in the library&lt;br /&gt;
#*For videos follow instructions for &#039;&#039;Kodi- Choose Art&#039;&#039; below&lt;br /&gt;
#*For music follow instructions in &#039;&#039;Kodi- Choose Art&#039;&#039; below&lt;br /&gt;
#I added new artwork for a lot of Movies/TV Shows/Music already in the library&lt;br /&gt;
#*Update each Movie/TV Show/Music manually using instructions in the previous option, or&lt;br /&gt;
#*Remove the Source and clean library. Re-add the source and allow the Update Library&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also: [[Updating_or_removing_videos|Update Video Library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also: [[Update_Music_Library#Scan_Library|Update Music Library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Available Artwork Found By Scrapers ==&lt;br /&gt;
Scraper results (and NFO files) can include multiple potential images for each single type of artwork. When a type of art has not been found locally then during scraping the first image will be automatically assigned to the media item so skins and other interfaces can access it for display. The full list from the scraper results will be saved for the &amp;quot;Choose art&amp;quot; dialog (even if using local artwork), where you can select a new image for any art type from those available online and of course local files. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use a Media Manager to download local artwork and create [[NFO files]], the full list may not be available to use in &amp;quot;Choose art&amp;quot; as most, if not all, Media Managers strip out the additional artwork links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Choosing Art You Want =&lt;br /&gt;
From within Kodi, you have the ability to manually change the artwork at any time by following these directions. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039;The following is based on the Video Library. Music Library follows the same process, but the screenshots will be slightly different for Choose Art- Artists and Choose Art- Albums&lt;br /&gt;
&lt;br /&gt;
#Highlight the media item whose artwork you want to change. &lt;br /&gt;
#Call up the &#039;&#039;Information&#039;&#039; dialog, (Image 1)&lt;br /&gt;
#* For seasons and movie sets the &amp;quot;Choose Art&amp;quot; option is in the [[Context menu]].&lt;br /&gt;
#Select &#039;&#039;Choose Art&#039;&#039;. (Image 1)&lt;br /&gt;
#From within this page, you will be given the option to select which type of artwork you would like to change. (Image 2)&lt;br /&gt;
#* If the type of artwork you would like to change is not listed, use the &#039;&#039;&#039;Add art type&#039;&#039;&#039; button to add it. An onscreen keyboard will be displayed. Enter the new type of artwork and select &#039;&#039;&#039;Ok&#039;&#039;&#039;.&lt;br /&gt;
#* Examples of artwork type are those listed in the following pages- eg clearlogo, clearart, banner etc...&lt;br /&gt;
#Once selected, you will then be provided with a list of available artwork at the scraper site, or you can navigate to a local or network location. (Image 3)&lt;br /&gt;
#Once you select the desired image, it will replace the existing image. You will be returned to the screen displayed in Image 2&lt;br /&gt;
#If you do not intend to change any other artwork types, simply Esc or Back out of the screen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=350px heights=200px&amp;gt;&lt;br /&gt;
File:Artwork-ChooseArt03.jpg|Image 1- Choose Art on the Information dialog&lt;br /&gt;
File:Artwork-ChooseArt01.jpg|Image 2- Select which type of artwork to change&lt;br /&gt;
File:Artwork-ChooseArt02.jpg|Image 3- List of available remote artworks from the scraped sites, as well as the ability to &#039;&#039;Browse&#039;&#039; local and network sources&lt;br /&gt;
File:Artwork-ChooseArt04.jpg|Image 4- Using the Refresh Method&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
An alternative method for Music and Video library:&lt;br /&gt;
#Choose &#039;&#039;Refresh&#039;&#039; as seen in Image 1.&lt;br /&gt;
#You will then be asked &#039;&#039;Locally stored information found. Ignore and refresh from Internet?&#039;&#039; (Image 4)&lt;br /&gt;
#*To scrape local metadata - Select &#039;&#039;&#039;No&#039;&#039;&#039; &lt;br /&gt;
#**If no local nfo file is available, Kodi will scrape metadata from the online scraper site&lt;br /&gt;
#**Local artwork still has priority. If no local artwork is found, {{Kodi}} will search the NFO file for valid links to artwork and download artwork if links are valid&lt;br /&gt;
#*To scrape online metadata (and ignore nfo file, if any) - Select &#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
#**Local artwork still has priority. If no local artwork is found, the scraper results are used to fetch artwork&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Add-ons to display artwork =&lt;br /&gt;
The following add-ons allow you to display your movie, TV show and music artwork.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Screensavers ==&lt;br /&gt;
Want to do more with all that wonderful fanart? Install this Kodi screensaver. Just like a screensaver on computers from yesteryear, the Kodi screensaver will produce a slideshow of your Movie and TV Show fanart, or set it to display your Music Fanart. Don&#039;t like either of those? Then setup a directory with your own pictures and it can produce a screensaver from your selection of photos.&lt;br /&gt;
; {{see also|Add-on:Picture Slideshow Screensaver}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Managing Artwork =&lt;br /&gt;
There are a number of ways to maintain and improve Kodi&#039;s handling of the artwork. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cache ==&lt;br /&gt;
{{#lst:Artwork/Cache|intro}}&lt;br /&gt;
; {{see also|Artwork/Cache}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recovering Disk Space ==&lt;br /&gt;
After years of use, it is expected that your system will gather some clutter- that being either orphaned artwork files or corrupted artwork which will not display. &lt;br /&gt;
; {{see also|HOW-TO:Reduce disk space usage}}&lt;br /&gt;
; {{see also|Artwork/Cache}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Texture Cache Maintenance ===&lt;br /&gt;
{{#lst:Texture_Cache_Maintenance_utility|intro}}&lt;br /&gt;
; {{see also|Texture Cache Maintenance utility}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import/Export ==&lt;br /&gt;
&lt;br /&gt;
Kodi has the facility to export and import the library databases and in particular the artwork. The resolution of the artwork when exported is that used internally by Kodi, and may be lower than the original artwork. Export is the way to capture art that has been downloaded from a remote site as a local file. &lt;br /&gt;
; {{see also|Import-export library}}&lt;br /&gt;
&lt;br /&gt;
= Accessing with skins and JSON-RPC =&lt;br /&gt;
{{#lst:Artwork/Accessing with skins and JSON-RPC|intro}}&lt;br /&gt;
; {{see also|Artwork/Accessing with skins and JSON-RPC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
There are certain scenarios where attempting to replace existing artwork with new artwork, &#039;&#039;&#039;you may experience {{kodi}} refusing to load the new artwork&#039;&#039;&#039;. This occurs when replacing one artwork with another artwork having the same name. eg replacing &#039;&#039;poster.jpg&#039;&#039; with a new &#039;&#039;poster.jpg&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Rest assured that the new image has been accepted, but due to the same filename, {{kodi}} may take upto 24 hrs to check the image hash, realise the image is different and clear out the cached image and replace it with the new one. This is intended behaviour. Further reading available in the following link&lt;br /&gt;
&lt;br /&gt;
; {{see also|Artwork/Cache}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
*[[HOW-TO:Create Music Library]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[HOW-TO:Create Video Library]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Add-on:The Movie Database]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Add-on:Universal Album Scraper]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Add-on:Universal Artist Scraper]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Artwork&amp;diff=168214</id>
		<title>Artwork</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Artwork&amp;diff=168214"/>
		<updated>2019-05-26T07:38:48Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Import/Export */  remove translocation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Artwork_Contents}}&lt;br /&gt;
{{mininav|[[Music_library|Music Library]] {{l2|[[Video_library|Video Library]]}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The use of artwork will transform your mundane media player into a showpiece to be proud of, especially when teamed up with your favourite skin. Kodi   will allow you to display Movie Posters, Fanart, Album Covers, Actor and Artist images to name a few. Install the Kodi slideshow add-on, and you will have a constant display of video or music fanart to brighten your entertainment room.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{red|The {{kodi}} scrapers automatically download artwork with little input required by the user. These pages are for those users that want greater control over their artwork by saving artwork locally or creating their own.}}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As the topic covering artwork is comprehensive, it has been broken down into smaller and more manageable pages for ease of reading. Make use of the Table of Contents and the NavBox located at the top right of the page. Information common to all categories is located on this page and the Artwork Type page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be aware that artwork is skin dependent. Not all artwork types are used in all skins.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Obtaining Artwork =&lt;br /&gt;
Movie, TV Show and Music artwork can be obtained using a variety of methods. The most common method is via the various Kodi scrapers (also known as &#039;&#039;informatio providers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scrapers ==&lt;br /&gt;
The defautl sources for information and artwork that are used by the default scrapers are: &lt;br /&gt;
&lt;br /&gt;
Movies- [https://fanart.tv/ Fanart.tv] and [https://www.themoviedb.org/ The MovieDB]&amp;lt;br /&amp;gt;&lt;br /&gt;
TV Shows- [https://fanart.tv/ Fanart.tv] and [https://www.themoviedb.org/ The MovieDB]&amp;lt;br /&amp;gt;&lt;br /&gt;
Music- [https://fanart.tv/ Fanart.tv] and [http://www.theaudiodb.com/ The AudioDB]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Artwork from these sites can also be downloaded manually by visiting and searching the sites and saving the artwork locally as described on the linked pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Managers ==&lt;br /&gt;
There is a range of software that can create nfo files and download artwork and save them to the correct location and correct naming. They perform the same process and function as the Kodi Scraping operation does natively, but they do not add any entries into the Kodi library. Instead they create what is known as &#039;&#039;&#039;[[NFO_files|NFO files]]&#039;&#039;&#039;. This file holds all the metadata for that particular movie, tv show or music. The software will also download associated artwork from the scraper site. Kodi can then read this file and scrape it into the library along with the artwork.&lt;br /&gt;
&lt;br /&gt;
Although these programs are quick and easy to use, they are more suited for use where a movie or tv show is not listed at the scraper site. You are then able to create the metadata from scratch. You would normally use this for, say, home movies, sporting events or other items that are not listed at the scraper site. &lt;br /&gt;
&lt;br /&gt;
It is always best to use Kodi for the normal mainstream scrapes and the Media Managers for the non-listed movie, tv show and music scrapes.&lt;br /&gt;
; {{see also|NFO_files}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Search ==&lt;br /&gt;
Using an online search engine can help you discover individual artworks, or additional sites where artwork is hosted. When downloading, check that the resolution is of an acceptable standard. Also pay respect to any copyright notices that are attached to the artwork.&lt;br /&gt;
&lt;br /&gt;
Once downloaded, they must be named and saved correctly for the artwork to be visible to Kodi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create Your Own ==&lt;br /&gt;
{{main|Artwork/Types}}&lt;br /&gt;
So you are not happy with the artwork the scraper downloaded? And you just can&#039;t find that perfect artwork by manually searching the internet. Then, you will just have to create your own. For those who are artistically minded and can easily navigate around image editing software, then you should be able to easily create your very own user-defined artwork on your computer.  Only your imagination is the limit, but be mindful that the artwork needs to remain true to the movie or tv show it represents. &lt;br /&gt;
&lt;br /&gt;
If you are unsure where to start, the following links may prove useful. Especially if you plan to share your masterpieces. If this is the case, it is best to stick to the posted guidelines.&lt;br /&gt;
*Fanart.TV- The premier repository for all things artwork. They have an in-depth guide for artwork requirements&lt;br /&gt;
:;&#039;&#039;see : [https://fanart.tv/movie-fanart/&amp;lt;nowiki&amp;gt;Fanart.tv- Image Creation Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
*The MovieDB- The go to movie scraper site for Kodi. In addition to metadata, they also hold a large repository of artwork that are created and uploaded to the site by people just like you. Read their easy to understand artwork creation guide.&lt;br /&gt;
:; &#039;&#039;see : [https://www.themoviedb.org/bible/image/59f7583e9251416e7100006e#59f758409251416e7100006f themoviedb- Image Creation Guide]&#039;&#039;&lt;br /&gt;
*The TVDB- The go to TV Show scraper site for Kodi. In addition to metadata, they also hold a large repository of artwork devoted to TV Shows. Read their easy to understand artwork creation guide.&lt;br /&gt;
:; &#039;&#039;see : [http://www.thetvdb.com/wiki/index.php/Category:Images&amp;lt;nowiki&amp;gt;theTVDB- Image Creation Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
*IMDB- A comprehensive listing of ensuring artwork is appropriate and suitable.&lt;br /&gt;
:; &#039;&#039;see : [https://contribute.imdb.com/updates/guide/images&amp;lt;nowiki&amp;gt;IMDB- Image Submission Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
*TheAudioDB- The go to scraper site for all things music. They hold metadata on Artists, Albums and Songs with a large collection of music artwork.&lt;br /&gt;
:; &#039;&#039;see : [http://theaudiodb.com/forum/viewtopic.php?f=2&amp;amp;t=1&amp;lt;nowiki&amp;gt;TheAudioDB- Image Creation Guide&amp;lt;/nowiki&amp;gt;]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What Artwork is Used Automatically =&lt;br /&gt;
&lt;br /&gt;
== Local Art Comes First ==&lt;br /&gt;
&#039;&#039;&#039;Local artwork takes priority, so on update of both music and video libraries {{kodi}} will always use local artwork when it can find some. Only when there is no local artwork found, does {{kodi}} use the artwork that the scrapers can fetch from online sources.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;It is important to note that once remote artwork for a movie, tv show, artist or album has been successfully scraped into the library (because there was no local art found when the scraper was run), Kodi will not look for local art to replace it on subsequent library updates.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you have made changes to either local artwork and/or metadata (in the form of a nfo file), you must instruct Kodi to update using one of the following methods...&lt;br /&gt;
#If the Library has not yet been created, or the source has not yet been added&lt;br /&gt;
#*Ensure your artwork is named and saved correctly. Add the [[Media sources]] to Kodi and allow to update. Artwork will be cached&lt;br /&gt;
#This Movie/TV Show/Album/Artist is new and has not been added to the library yet&lt;br /&gt;
#*An Update Library will scrape and cache the artwork, or&lt;br /&gt;
#*For Videos, navigate Videos&amp;gt;Files, navigate to the item and call up the Information page. This will start an automatic scrape for that single item&lt;br /&gt;
#*For Music, navigate Music&amp;gt;Files, locate and highlight the new artist or album. From the context menu select &#039;&#039;Scan item to library&#039;&#039;&lt;br /&gt;
#I added new artwork for Movie/TV Show/Album/Artist already in the library&lt;br /&gt;
#*For videos follow instructions for &#039;&#039;Kodi- Choose Art&#039;&#039; below&lt;br /&gt;
#*For music follow instructions in &#039;&#039;Kodi- Choose Art&#039;&#039; below&lt;br /&gt;
#I added new artwork for a lot of Movies/TV Shows/Music already in the library&lt;br /&gt;
#*Update each Movie/TV Show/Music manually using instructions in the previous option, or&lt;br /&gt;
#*Remove the Source and clean library. Re-add the source and allow the Update Library&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also: [[Updating_or_removing_videos|Update Video Library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also: [[Update_Music_Library#Scan_Library|Update Music Library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Available Artwork Found By Scrapers ==&lt;br /&gt;
Scraper results (and NFO files) can include multiple potential images for each single type of artwork. When a type of art has not been found locally then during scraping the first image will be automatically assigned to the media item so skins and other interfaces can access it for display. The full list from the scraper results will be saved for the &amp;quot;Choose art&amp;quot; dialog (even if using local artwork), where you can select a new image for any art type from those available online and of course local files. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use a Media Manager to download local artwork and create [[NFO files]], the full list may not be available to use in &amp;quot;Choose art&amp;quot; as most, if not all, Media Managers strip out the additional artwork links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Choosing Art You Want =&lt;br /&gt;
From within Kodi, you have the ability to manually change the artwork at any time by following these directions. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039;The following is based on the Video Library. Music Library follows the same process, but the screenshots will be slightly different for Choose Art- Artists and Choose Art- Albums&lt;br /&gt;
&lt;br /&gt;
#Highlight the media item whose artwork you want to change. &lt;br /&gt;
#Call up the &#039;&#039;Information&#039;&#039; dialog, (Image 1)&lt;br /&gt;
#* For seasons and movie sets the &amp;quot;Choose Art&amp;quot; option is in the [[Context menu]].&lt;br /&gt;
#Select &#039;&#039;Choose Art&#039;&#039;. (Image 1)&lt;br /&gt;
#From within this page, you will be given the option to select which type of artwork you would like to change. (Image 2)&lt;br /&gt;
#* If the type of artwork you would like to change is not listed, use the &#039;&#039;&#039;Add art type&#039;&#039;&#039; button to add it. An onscreen keyboard will be displayed. Enter the new type of artwork and select &#039;&#039;&#039;Ok&#039;&#039;&#039;.&lt;br /&gt;
#* Examples of artwork type are those listed in the following pages- eg clearlogo, clearart, banner etc...&lt;br /&gt;
#Once selected, you will then be provided with a list of available artwork at the scraper site, or you can navigate to a local or network location. (Image 3)&lt;br /&gt;
#Once you select the desired image, it will replace the existing image. You will be returned to the screen displayed in Image 2&lt;br /&gt;
#If you do not intend to change any other artwork types, simply Esc or Back out of the screen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=350px heights=200px&amp;gt;&lt;br /&gt;
File:Artwork-ChooseArt03.jpg|Image 1- Choose Art on the Information dialog&lt;br /&gt;
File:Artwork-ChooseArt01.jpg|Image 2- Select which type of artwork to change&lt;br /&gt;
File:Artwork-ChooseArt02.jpg|Image 3- List of available remote artworks from the scraped sites, as well as the ability to &#039;&#039;Browse&#039;&#039; local and network sources&lt;br /&gt;
File:Artwork-ChooseArt04.jpg|Image 4- Using the Refresh Method&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
An alternative method for Music and Video library:&lt;br /&gt;
#Choose &#039;&#039;Refresh&#039;&#039; as seen in Image 1.&lt;br /&gt;
#You will then be asked &#039;&#039;Locally stored information found. Ignore and refresh from Internet?&#039;&#039; (Image 4)&lt;br /&gt;
#*To scrape local metadata - Select &#039;&#039;&#039;No&#039;&#039;&#039; &lt;br /&gt;
#**If no local nfo file is available, Kodi will scrape metadata from the online scraper site&lt;br /&gt;
#**Local artwork still has priority. If no local artwork is found, {{Kodi}} will search the NFO file for valid links to artwork and download artwork if links are valid&lt;br /&gt;
#*To scrape online metadata (and ignore nfo file, if any) - Select &#039;&#039;&#039;Yes&#039;&#039;&#039;&lt;br /&gt;
#**Local artwork still has priority. If no local artwork is found, the scraper results are used to fetch artwork&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Add-ons to display artwork =&lt;br /&gt;
The following add-ons allow you to display your movie, TV show and music artwork.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Screensavers ==&lt;br /&gt;
Want to do more with all that wonderful fanart? Install this Kodi screensaver. Just like a screensaver on computers from yesteryear, the Kodi screensaver will produce a slideshow of your Movie and TV Show fanart, or set it to display your Music Fanart. Don&#039;t like either of those? Then setup a directory with your own pictures and it can produce a screensaver from your selection of photos.&lt;br /&gt;
; {{see also|Add-on:Picture Slideshow Screensaver}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Managing Artwork =&lt;br /&gt;
There are a number of ways to maintain and improve Kodi&#039;s handling of the artwork. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cache ==&lt;br /&gt;
{{#lst:Artwork/Cache|intro}}&lt;br /&gt;
; {{see also|Artwork/Cache}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recovering Disk Space ==&lt;br /&gt;
After years of use, it is expected that your system will gather some clutter- that being either orphaned artwork files or corrupted artwork which will not display. &lt;br /&gt;
; {{see also|HOW-TO:Reduce disk space usage}}&lt;br /&gt;
; {{see also|Artwork/Cache}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Texture Cache Maintenance ===&lt;br /&gt;
{{#lst:Texture_Cache_Maintenance_utility|intro}}&lt;br /&gt;
; {{see also|Texture Cache Maintenance utility}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import/Export ==&lt;br /&gt;
&lt;br /&gt;
Kodi has the facility to export and import the library databases and in particular the artwork. The resolution of the artwork when exported is that used internally by Kodi, and may be lower than the original artwork. Export is the way to capture art that has been downloaded from a remote site as a local file. &lt;br /&gt;
; {{see also|Import-export library}}&lt;br /&gt;
&lt;br /&gt;
= Accessing with skins and JSON-RPC =&lt;br /&gt;
{{#lst:Artwork/Accessing with skins and JSON-RPC|intro}}&lt;br /&gt;
; {{see also|Artwork/Accessing with skins and JSON-RPC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
There are certain scenarios where attempting to replace existing artwork with new artwork, &#039;&#039;&#039;you may experience {{kodi}} refusing to load the new artwork&#039;&#039;&#039;. This occurs when replacing one artwork with another artwork having the same name. eg replacing &#039;&#039;poster.jpg&#039;&#039; with a new &#039;&#039;poster.jpg&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Rest assured that the new image has been accepted, but due to the same filename, {{kodi}} may take upto 24 hrs to check the image hash, realise the image is different and clear out the cached image and replace it with the new one. This is intended behaviour. Further reading available in the following link&lt;br /&gt;
&lt;br /&gt;
; {{see also|Artwork/Cache}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
*[[HOW-TO:Create Music Library]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[HOW-TO:Create Video Library]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Add-on:The Movie Database]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Add-on:Universal Album Scraper]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Add-on:Universal Artist Scraper]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Artist_information_folder&amp;diff=166346</id>
		<title>Artist information folder</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Artist_information_folder&amp;diff=166346"/>
		<updated>2019-05-07T06:31:52Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Remove repeated various artists compilation comment&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MusicLibraryCreate}}&lt;br /&gt;
{{mininav|[[Music_library]] }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;In v18 the concept of the Artist Information Folder is introduced as a new way to handle providing local artist artwork and information via nfo files. The Artist Information Folder is a user nominated folder that {{kodi}} will look in first for artwork or NFO files for &#039;&#039;any&#039;&#039; artist. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This topic is of interest to those users that want to provide local artwork for artists, or capture their current artist art and additional data for transfer to another installation of {{kodi}}&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In v17 and prior releases of {{kodi}} the ability to automatically fetch local art and information from NFO files depended upon the music files being in a strict &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; folder structure. &lt;br /&gt;
{{kodi}} populated the basic library by using data embedded in the music files. It did not use the folder structure or filenames to populate the library, but it would try to identify a unique folder for each (album) artist and a unique folder for each album from the location of the related music files, and look there for art and additional information for the artist and album respectively.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not all music fits neatly under such a strict layout. For example:&lt;br /&gt;
*Collaboration albums with more than one album artist (very common in Classical music with composer, conductor and orchestra credited, but happens in pop when two artists in their own right make an album together). &lt;br /&gt;
*All the albums by an artist had to be on the same music source which made it difficult to organise libraries to suit personal preferences.&lt;br /&gt;
&lt;br /&gt;
Art and additional information could only be provided for album artists, not those artists that only feature as a guest on some songs on an album by another artist or on a various artists compilation album, nor the other musicians and professionals that contribute to the production.&lt;br /&gt;
&lt;br /&gt;
The way {{kodi}} tried to identify folders from their contents, combined with a slightly inaccurate music file arrangement,  produced some unexpected art results that were often difficult to pin down. &amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/pull/12891&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro1&amp;quot; /&amp;gt;From v18 the Artist Information Folder can be used to resolve many issues with providing local art and additional information for Artists. Local artist art and nfo files can be provided without requiring a specific folder for music files, and artist NFO files can be kept separately from the music rather than jumbled with it. &amp;lt;section end=&amp;quot;intro1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
{|&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= Do I need to have an Artist Information Folder?&lt;br /&gt;
| Answer= No, {{kodi}} will continue to be backwards compatible and pick up artist art and NFO files from the same places it does for v17. Of course, if you choose not to use the Artist Information Folder you will still encounter the same limitations described above. Also if you do not have any local artist artwork or want to use NFO files then there is no need for one either.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= Why would I want to nominate a folder?&lt;br /&gt;
| Answer=*So that you can provide local art and NFO files for artists that are:&lt;br /&gt;
** involved in collaboration albums&lt;br /&gt;
** only song artists (no albums, only guests or on compilations)&lt;br /&gt;
** musicians or other contributors&lt;br /&gt;
* To keep artist art and data separate from music files.&lt;br /&gt;
* To handle having music from one artist spilt across many music sources.&lt;br /&gt;
If you have ever had the wrong local art appear in an odd place then you probably need it.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= How do I setup the Artist Information Folder?&lt;br /&gt;
| Answer= See Section 3- Recommended Setup&amp;lt;br&amp;gt;&lt;br /&gt;
The folder can be named in whatever way suits you and located with, or away from, your music files. We recommend away from your music files.&lt;br /&gt;
Once a folder has been created on your file system, set it as the Artist Information Folder in either one of two ways:&lt;br /&gt;
* In the settings page here... &#039;&#039;&#039;&#039;&#039;See: [[Settings/Media/Music#Library|Artist Information Folder Setting]]&#039;&#039;&#039;&#039;&#039;, or &lt;br /&gt;
* Via the Settings button on the Add to Library dialog that is displayed when you add a new music source. &#039;&#039;&#039;&#039;&#039;See: [[Adding_music_to_the_library#Adding_Music_to_Library| Adding Sources]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= How is the individual artist information organised and populated?&lt;br /&gt;
| Answer= Any artist can have a subfolder within the Artist Information Folder which is named same as the artist name. Within that folder can be artwork and additional artist information as XML metadata in an &#039;&#039;&#039;&#039;&#039;[[NFO_files/Music| NFO file]]&#039;&#039;&#039;&#039;&#039; called &#039;&#039;artist.nfo&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The artist folders can be created manually, however it is easiest to create the initial artist folders and contents using the export facility. See Section 4- Using Export.  That way folders are created with the correct names, as slight differences in naming could prevent {{kodi}} from locating the artist. The artwork and NFO files can then be manually edited and the library refreshed.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= How does {{kodi}} use the contents?&lt;br /&gt;
| Answer= The artwork and NFO files in the Artist Information Folder are read by Kodi as part of scanning and scraping process. &amp;lt;br&amp;gt;&lt;br /&gt;
If you have made changes to the NFO Files for Artists already in your library, then these changes need to be &#039;&#039;&#039;Refreshed&#039;&#039;&#039; into the library.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Update_Music_Library#Refresh_Artist|Refresh Artists]]&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Update_Music_Library#Refresh_Album|Refresh Albums]]&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
To change existing artwork or to add missing artwork, either use the Refresh method above or manually change the artwork&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Music_artwork#Manually_Add_Artwork| Manually Add Artwork]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that the music library import facility does not make use of separate nfo files at all. Import only works on the single xml files that can be created via export. &amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Import-export_library#Import_2| Music Library Import]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= Does the Artist Information Folder have to be separate from my music files?&lt;br /&gt;
| Answer= No, it is the user&#039;s choice but it will be less confusing if it is separate. Also note that using the export facility to populate the Artist Information Folder can result in thousands of artist folders. Decide if you want all these folders, containing just art and nfo files, mixed in with your other folders that contain music files.&lt;br /&gt;
Finally if you find the explanation in the next question confusing then just don’t do it, make it a separate folder somewhere else. &lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= What happens if I make the Artist Information Folder the same as my main music source?&lt;br /&gt;
| Answer=Say you have a folder called &amp;quot;mymusic&amp;quot; that contains all your music files under an &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; folder structure, and you choose to make that the Artist Information Folder, then {{kodi}} will look first for artist artwork and nfo in folders in mymusic\&amp;lt;artistname&amp;gt; where &amp;lt;artistname&amp;gt; is the exact artist name. The names of your existing folders for each artist may match, or may not (remember {{kodi}} does not care how music folders are named). What you read as the same name may not be exactly the same.  Say they match, then the art and NFO files in them will be found and used.  But if all you want is to use your existing artist art and nfo files already in your music folder layout then setting the Artist Information Folder the same as a music source  is unnecessary, {{kodi}} will look there anyway.&amp;lt;br&amp;gt; &lt;br /&gt;
For art and NFO for extra artists you can create (or let export create for you) additional artist folders along side your existing folders, however you will end up with some that have music and some that don&#039;t. Some of the artwork addons people have used already do this mixing of music and art only folders, so it may be familiar and if the artist folders are correctly named Kodi will start to pick up the art on scanning rather than have the addon set it.  However for others being able to use the Artist Information Folder to separate art and music will be a relief. &lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= What happens when I have a separate Artist Information Folder but also leave artist NFO and artwork files above my music files?&lt;br /&gt;
| Answer= {{kodi}} will look first for the artist under the Artist Information Folder and use that artwork and NFO file. If it does not find a folder for the artist there, then for album artists only it falls back to looking for a suitable artist folder in an &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; folder structure as it did for v17. &amp;lt;br&amp;gt;&lt;br /&gt;
There are a few more safety checks in v18 to try and avoid some of the cases of mistaken identity, but in doing that it may also not show such art in the one place it is wanted.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= Does this affect Album artwork and NFO Files?&lt;br /&gt;
| Answer= No, this does not apply to albums. Local album artwork and NFO files still be looked in the folder common to all the music files for that album (if such a unique folder exists).&amp;lt;br&amp;gt;&lt;br /&gt;
If album related folders and files are located within the artist folders of the Artist Information Folder then they generally have no effect, unless the Artist Information Folder is the same as the music source and the music files are also located there. &lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= When using File View mode will I see the artwork from the Artist Information Folder?&lt;br /&gt;
| Answer= No, the Artist Information Folder is a music library feature. In file view you only see the artwork found in the folder you are browsing.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= Why won&#039;t the scan pick up my artwork?&lt;br /&gt;
| Answer= There could be many different reasons for that, only some relate to the Artist Information Folder. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;See: [[Music_artwork|Music Artwork]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Recommended Setup =&lt;br /&gt;
A frequent question from users is &#039;&#039;what do you recommend?&#039;&#039;, in the case of the Artist Information Folder the answer is simple: unless you have local artwork for artists, or want to enter artist information via NFO files there is nothing to do. For a first time {{kodi}} user the recommendation is to tag your music files accurately, scan them into the library and allow the scrapers to fetch additional artist and album information and artwork for you.&lt;br /&gt;
&lt;br /&gt;
With v18 you can arrange your music files however you like and still have access to local art and NFO files. We would recommend that all the music files from an album are kept in a unique folder, perhaps with subfolders for each part of a multi-part set. Perhaps you choose to arrange those in artist folders of some kind, but that does not have to be strictly adhered too. You could divide a large music collection by genre (with an artist having albums in more than one), or by decade, or some broader music category e.g. Xmas music. Use an &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; structure if it is convenient for you.&lt;br /&gt;
&lt;br /&gt;
Once you start to extend your use of {{kodi}} then a number of situations can arise:&lt;br /&gt;
*you have artists that the scraper was unable to find information or art for&lt;br /&gt;
*you want to manually edit some of the information&lt;br /&gt;
*having selected particular art from the many choices the scraper has found, you want to backup that choice&lt;br /&gt;
*you want to transfer your current library to another installation of {{kodi}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now it is time to populate the Artist Information Folder with Artist folders. Use the &#039;&#039;Artists folders only&#039;&#039; method in the link below.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Import-export_library/Music|Import-Export Music Library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;{{next|[[Scraping_Music|Scraping Additional Music Data]]}} &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=154792</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=154792"/>
		<updated>2019-01-19T15:42:42Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tags {{kodi}} reads */  add tags new in v18&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MusicLibraryCreate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
This page, Music File and Tagging, provides the following information:&lt;br /&gt;
&lt;br /&gt;
*How the Music section differs from the Video section of {{kodi}}&lt;br /&gt;
*How to organise your music files &lt;br /&gt;
*The recommended method for tagging your music files&lt;br /&gt;
*Explanation of some commonly misunderstood Music File Tags&lt;br /&gt;
*The Audio Files and Tags that {{kodi}} reads and uses&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Understanding the Music Library =&lt;br /&gt;
{{Red|&#039;&#039;&#039;The Music section of {{kodi}} has many differences to the Video section of {{kodi}}. It is important that you read this section to ensure your music and artwork are correctly scraped and displayed.&#039;&#039;&#039;}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;understanding&amp;quot; /&amp;gt;It is important to understand the fundamental difference between video library operation and the music library operation: &lt;br /&gt;
*The video library is based on using the filenames to obtain online data. If the video files are incorrectly named, then there are no scraper results and there will be no library entry.&lt;br /&gt;
*&#039;&#039;&#039;The music library is based on scanning tags embedded in the music files.&#039;&#039;&#039; It ignores the folder structure and file names you have created to store your music files. Basic and correct tagging is essential to ensure the library is populated correctly. Having slight variations in the tags for artist and album names could mean duplicated and unwanted entries.&amp;lt;section end=&amp;quot;understanding&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Folder and File Structure =&lt;br /&gt;
Although {{kodi}} ignores the folder structure and the names of the folders and files, the structure of your folders is important as it affects the operation of other functions such as Import/Export, nfo files and Artwork. For example, if you have all your music files in one folder (which is possible), then you lose the ability to use local nfo files, local artwork, and the import/export module will not function correctly.&lt;br /&gt;
&lt;br /&gt;
For this reason, {{kodi}} recommends the use of the following structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
Remember that {{kodi}} does not extract any information from the filename. The only purpose the file name serves is to provide {{kodi}} a unique id to locate the file.&lt;br /&gt;
&lt;br /&gt;
The name you use for your files is your choice, but it is important that they are:&lt;br /&gt;
#Consistent&lt;br /&gt;
#Make sense&lt;br /&gt;
&lt;br /&gt;
Example file names:&lt;br /&gt;
&lt;br /&gt;
*Using the simple Song Name only = &#039;&#039;Everybody Wants to Rule the World.flac&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
*Using a more complex combination of Artist-Album-Song  = &#039;&#039;Madonna-True Blue-Open Your Heart.flac&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you would like to use track numbers in the file name, then ensure you include the disc number, even if there is only one disc. eg&lt;br /&gt;
*&#039;&#039;0102 Everybody Wants to Rule the World.flac&#039;&#039; or &#039;&#039;D01T02 Everybody Wants to Rule the World.flac&#039;&#039;&lt;br /&gt;
*&#039;&#039;Madonna-True Blue-0106 Open Your Heart.flac&#039;&#039; or &#039;&#039;Madonna-True Blue-D01T06 Open Your Heart.flac&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Where 0102 = Disc 01 and Track 02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Folders ==&lt;br /&gt;
Folders are used as follows:&lt;br /&gt;
#Album folders - Used to group &#039;&#039;&#039;songs&#039;&#039;&#039; from the same album into one folder&lt;br /&gt;
#Artist folders- Used to group &#039;&#039;&#039;albums&#039;&#039;&#039; from the same artist into one folder&lt;br /&gt;
#Source folder- Used to group &#039;&#039;&#039;Collections&#039;&#039;&#039; into one folder. (see next section)&lt;br /&gt;
&lt;br /&gt;
The following is a typical recommended structure:&lt;br /&gt;
&lt;br /&gt;
 f:\   ....................................(root)&lt;br /&gt;
  |__Artist Music   .......................(source folder)&lt;br /&gt;
  |  |__ Madonna   ........................(artist folder)&lt;br /&gt;
  |  |   |__ Beautiful Stranger (1999)   ..(album folder)&lt;br /&gt;
  |  |   |   |__ Song 1&lt;br /&gt;
  |  |   |   |__ Song 2&lt;br /&gt;
  |  |   |   |__ Song 3 etc&lt;br /&gt;
  |  |   |__ Bedtime Stories (1994)   .....(album folder)&lt;br /&gt;
  |  |   |   |__ Song 1&lt;br /&gt;
  |  |   |   |__ Song 2&lt;br /&gt;
  |  |   |   |__ Song 3 etc&lt;br /&gt;
  |  |   |__ Like A Prayer (1989)   .......(album folder)&lt;br /&gt;
  |  |   |   |__ Song 1&lt;br /&gt;
  |  |   |   |__ Song 2&lt;br /&gt;
  |  |   |   |__ Song 3 etc&lt;br /&gt;
  |  |__ Simply Red   .....................(artist folder)&lt;br /&gt;
  |      |__ Picture Book (1985)   ........(album folder)&lt;br /&gt;
  |          |__ Song 1&lt;br /&gt;
  |          |__ Song 2&lt;br /&gt;
  |          |__ Song 3 etc&lt;br /&gt;
  |&lt;br /&gt;
  |__Compilations   .......................(Source)&lt;br /&gt;
  |  |__ Essential Eighties   .............(album folder)&lt;br /&gt;
  |  |       |__ Song 1&lt;br /&gt;
  |  |       |__ Song 2&lt;br /&gt;
  |  |       |__ Song 3 etc&lt;br /&gt;
  |  |__ 100% Hits- Best of 2005   ........(album folder)&lt;br /&gt;
  |          |__ Song 1&lt;br /&gt;
  |          |__ Song 2&lt;br /&gt;
  |          |__ Song 3 etc&lt;br /&gt;
  |&lt;br /&gt;
  |__Classical   ..........................(Source)&lt;br /&gt;
  |&lt;br /&gt;
  |__Audio Books   ........................(Source)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
A source folder contains your media collection- in this case Music. This folder is then set as a Source in {{kodi}} which enables {{kodi}} to access your Music. (remember, Kodi does not know where your media is until you tell it)&lt;br /&gt;
&lt;br /&gt;
In the Video section of Kodi, you would set one, or more, sources for Movies, TV Shows, Music Videos, Home Movies etc. The Music section oparates along the same principle. &lt;br /&gt;
&lt;br /&gt;
As an example, you would save your music folders into separate Sources for the following:&lt;br /&gt;
*&#039;&#039;&#039;Single Artist type Albums &#039;&#039;&#039;&lt;br /&gt;
**These are albums released by a single artist or band&lt;br /&gt;
**This source will contain the Artist / Album / Song structure&lt;br /&gt;
**Examples- Kate Bush, Kylie Minogue, Tears for Fears etc&lt;br /&gt;
*&#039;&#039;&#039;Various Artists or Compilation Albums&#039;&#039;&#039;&lt;br /&gt;
**These are albums that contain songs from many different artists or bands.&lt;br /&gt;
**As there is multiple artists, there is no Artist folder. This source would contain the Album / Song structure.&lt;br /&gt;
**Examples- 2017 Grammy Nominees, So Fresh: Hits of 2016, Open Space: The Classic Chillout Album etc&lt;br /&gt;
*&#039;&#039;&#039;Classical Music&#039;&#039;&#039;&lt;br /&gt;
**Albums released by a single Composer. It is a separation from the main stream music in the Single Artist Source, which aids in better sorting in Kodi&lt;br /&gt;
**This source would contain the Artist / Album / Song structure, assuming single composer type albums, and groups all classical music in one source&lt;br /&gt;
**Examples- Vaughan Williams, Rachmaninov, Mozart etc&lt;br /&gt;
&lt;br /&gt;
The idea is to group similar types of albums. This is not a requirement, and Kodi will still function if you grouped your music into a single source. It is a best practice guide which overcomes some hurdles with local files for compilation and collaboration type albums. These hurdles will no longer be an issue from v18 onwards.&lt;br /&gt;
&lt;br /&gt;
Setting and Scanning of Sources is covered in detail in the next step of the guide. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ripping CD&#039;s =&lt;br /&gt;
{{#lst:Ripping CDs|intro}}&lt;br /&gt;
&lt;br /&gt;
There is no requirement to use this native {{Kodi}} CD Ripper. If you are comfortable using other ripping software, then we recommend you continue using that software. It makes no difference to {{kodi}} which software was used.&lt;br /&gt;
&lt;br /&gt;
{{main|Ripping CDs}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tagging =&lt;br /&gt;
Ever wonder how your music player always knows the name of the song, album, artist and track number of the music you play? This information comes from metadata embedded in the music file. If you purchased your music from an online store, then that store would have embedded the metadata in the file. If you ripped your own music, then the ripping software would have embedded the data into the file, probably without you even knowing. It is not uncommon that only minimal metadata is embedded, but this works very well on simple music players and is a  convenient solution to sorting your library on these players.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
{{kodi}} also makes use of this embedded metadata. {{kodi}}, being an advanced and feature rich player, requires a greater precision in the embedded tags. Any slight variance in, for example, the Album name between the tracks from the same album will see multiple entries in the library for that Album. Same with Artists. It is not uncommon to have a single album split into three similarly named albums. It is for this reason that there is a separation of the Scanning and Scraping processes for Music. The initial scan allows you to find and correct errors in tagging, before scraping. Failing to do that will create an unmanageable library.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Example of errors in tagging, which will cause duplicated entries in the library...&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!Similar Name 1 || Similar Name 2 || Note&lt;br /&gt;
|-&lt;br /&gt;
|György Ligeti || Gyorgy Ligeti || Accented and unaccented names will create duplicate entries&lt;br /&gt;
|-&lt;br /&gt;
|The Best of || The Very Best Of || Inconsistent naming between songs of the same album and/or artist will cause duplicated entries&lt;br /&gt;
|-&lt;br /&gt;
|Madonna || Madonnna || Spelling mistakes will cause duplicated entries for albums and/or artists&lt;br /&gt;
|-&lt;br /&gt;
|Sting || Sting and The Police || Seen as two separate and unrelated Artists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The easiest method to comprehensively tag your music files is with MusicBrainz Picard.&lt;br /&gt;
&lt;br /&gt;
As {{kodi}} scans your music collection, it copies the data contained in those tags into the {{kodi}} music database. The benefits of this are:&lt;br /&gt;
*Once the scan is complete, the tags are not accessed again&lt;br /&gt;
*All information is now obtained from the database. This has the benefit of dramatically increasing efficency and speed when navigating the library.&lt;br /&gt;
*Now that a database entry exists, you are able to scrape additional information from online sources. This is covered later in the guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MusicBrainz ==&lt;br /&gt;
&#039;&#039;&#039;{{kodi}} has strong support for MusicBrainz tagging. It is highly recommended that users tag their music files using MusicBrainz picard.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MusicBrainz&#039;&#039;&#039; is an open source music encyclopedia that collects music metadata and makes it available to the public. MusicBrainz has a database that, as of Sept 2017, [https://musicbrainz.org/statistics consists of over 1,258,860 Artists, over 1,866,600 albums and over 17,846,800 recordings]. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MusicBrainz Picard&#039;&#039;&#039; is the music file tagger software that can access the MusicBrainz database to locate metadata to embed into your music files. It is recommended that your music collection is correctly tagged using the tagging software [https://picard.musicbrainz.org/ MusicBrainz Picard]. This is a free download. There are other Taggers that are able to access the MusicBraniz database, but Picard seems to be friendliest to use.&lt;br /&gt;
&lt;br /&gt;
Below is a screenshot of the main screen of the Picard software. A brief description of the layout as follows.&lt;br /&gt;
&lt;br /&gt;
*Top Left Box- Folder listing of your music collection&lt;br /&gt;
*Top Centre Box- Albums are dragged and dropped here in preparation for matching and tagging. Pressing &#039;&#039;Lookup&#039;&#039; (greyed out) will commence the lookup process&lt;br /&gt;
*Top Right Box- Matching albums are displayed here and your songs are overlayed. In the screenshot, songs 01, 08 and 09 have been matched to the suggested album. If all songs match and you agree the correct album was located, simply pressing Save will tag the album with the tags displayed in the Bottom Tag Box.&lt;br /&gt;
*Bottom Tag Box - Selecting a song from the Top Right Box will display all available tag fields (left column), the current tags in the music file (Original Value column) and the MusicBrainz tags to be embedded in the music file (right column).&lt;br /&gt;
&lt;br /&gt;
It is important to note that a lot of music is distributed with only the basic metadata embedded, as can be clearly seen in the screenshot below. (Original Value column)&lt;br /&gt;
&lt;br /&gt;
The example in the image below shows the following:&lt;br /&gt;
*Most tags are missing (original value column)&lt;br /&gt;
*The top three yellow entries are incorrect (original value column) and the corrections are in the right column&lt;br /&gt;
*The green entries in the right column indicate new tags to be embedded&lt;br /&gt;
*The black entries at the bottom of the list indicate no change to the existing tags as they are correct.&lt;br /&gt;
&lt;br /&gt;
Although {{kodi}} will populate the library with those minimal tags, the errors in those tags would create havoc in the library.&lt;br /&gt;
&lt;br /&gt;
Further information and guides can be found at the [https://picard.musicbrainz.org/ MusicBrainz Picard] site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:MusicBrainzPicard01.jpg|1300px|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although Picard is very easy to use, you must avoid blindly accepting everything offered by the software. It is important that you confirm the correct album was located. Due to the global nature of the database, there are many releases for a single album. These releases differ between countries, usually due to copyright requirements. This may lead you to inadvertendly select the incorrect release for your album, even though it is named exactly the same. The differences between releases may be as simple as different song ordering or the inclusion of additional bonus tracks.&lt;br /&gt;
&lt;br /&gt;
For the best tagging experience, it is important to set the correct options in Picard, particularly the &amp;quot;Clear Existing Tags&amp;quot; option in settings. This option means that any old tags that may cause issues are wiped, preserving only the good, clean musicbrainz tagging.&lt;br /&gt;
&lt;br /&gt;
[[File:Picard options.jpg|400px|centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the music files are tagged, it is important to avoid modifying the MusicBrainz tags unless you clearly understand the relationship of the MBID&#039;s and the other related tags. For example, embedding MBID tags, but then editing the Artist tag or Album Artist tag will result in incorrect entries in the library.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [https://musicbrainz.org/ MusicBrainz Website]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [https://picard.musicbrainz.org/ MusicBrainz Picard Software]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;center&amp;gt;{{red|&#039;&#039;&#039;The remainder of this page deals with special use cases or provides information for technical interest and reference only. It can be safely disregarded if these do not apply to you&#039;&#039;&#039;}}&amp;lt;/center&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;{{next|[[Adding_music_to_the_library|Scanning Music Into Library]]}} &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cue Sheets ==&lt;br /&gt;
{{#lst:Cue_sheets|intro}}&lt;br /&gt;
&lt;br /&gt;
{{kodi}} does provide basic support for using cue sheets to define individual tracks when an entire CD has been ripped into a single music file. However the information provided by  the cue sheet standard is much more limited than that of standard tagging, hence to enjoy the full music library features it is recommended that tracks are ripped into separate files and fully tagged.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{red|If you do not use Cue Sheets you can safely move onto the next step.}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
;{{see also|Cue_sheets}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Streams =&lt;br /&gt;
{{#lst:Internet_video_and_audio_streams|intro}}&lt;br /&gt;
&lt;br /&gt;
;{{see also|Internet_video_and_audio_streams}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Technical Explanation: File tags =&lt;br /&gt;
For many categories, such as genres and artists, {{kodi}} supports multiple values in the one field.  By default it uses the character sequence &amp;quot; / &amp;quot; to divide the entry into multiple values.  This divider may be changed via [[advancedsettings.xml]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Resolving Compilations and Multiple Artists ==&lt;br /&gt;
{{kodi}} reads the &#039;&#039;Album Artist&#039;&#039; tag in ID3, Ogg, APE and MP4 tags and uses it if available to assign an artist to the album (independently of the track&#039;s artist information).  This is the &amp;quot;Album Artist&amp;quot; tag (in ID3 this is represented by the &amp;quot;TPE2&amp;quot; tag; in vorbiscomment (ogg) files &amp;quot;ALBUMARTIST&amp;quot;, &amp;quot;ALBUM ARTIST&amp;quot; and &amp;quot;ENSEMBLE&amp;quot; are all supported).  Multiple artists for either a track or album artist can be specified in &amp;quot;Artist1 / Artist2 / Artist3&amp;quot; format.&lt;br /&gt;
&lt;br /&gt;
If no &#039;&#039;Album Artist&#039;&#039; tag exists, {{kodi}} will use the first (primary) artist from the tracks as the &#039;&#039;Album Artist&#039;&#039;.  Essentially we do a string comparison of all the track artists, and assign the common artists as the &#039;&#039;Album artist&#039;&#039;. This is generally the TPE1 tag in ID3.&lt;br /&gt;
&lt;br /&gt;
As many users don&#039;t yet use the &#039;&#039;Album Artist&#039;&#039; tag, {{kodi}} has an additional filter system for identifying compilation albums, where each track normally has a different artist.  As {{kodi}} scans a folder, it does the following:&lt;br /&gt;
# Identifies albums based on &#039;&#039;Album&#039;&#039; name alone in the folder and groups the songs that have the same &#039;&#039;Album&#039;&#039; name together as an album.&lt;br /&gt;
# Runs through each album&#039;s assigned songs.  If there is 2 or more tracks with the same &#039;&#039;Track&#039;&#039; number, the group of songs must come from 2 or more albums, so the &#039;&#039;Album&#039;&#039; name is ruled out as a possible compilation.&lt;br /&gt;
# If any of the songs assigned to the &#039;&#039;Album&#039;&#039; name have an &#039;&#039;Album Artist&#039;&#039; tag, then {{kodi}} assumes the user knows what they&#039;re doing, and this album is also ruled out from being a compilation.&lt;br /&gt;
# If two or more songs assigned to the &#039;&#039;Album&#039;&#039; name then have different primary artists, then the &#039;&#039;Album&#039;&#039; name is considered to be a group of songs from a compilation, and the &#039;&#039;Various Artists&#039;&#039;&amp;quot; tag is assigned as the album artist.&lt;br /&gt;
# Otherwise, if all the songs have the same primary artist but don&#039;t have the same full artist list (eg a song or two has an additional artist) then the album is assigned the primary artist as it&#039;s &#039;&#039;Album Artist&#039;&#039;, and we assume the additional artists are guest artists.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Roles Tags ==&lt;br /&gt;
WIP / TBA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ratings in ID3 tags ==&lt;br /&gt;
Ratings in ID3 tags are read via the POPM field, and (if this doesn&#039;t exist) in a custom (TXXX) field named &amp;quot;RATING&amp;quot;.  For the RATING field, we accept 1-5 as valid ratings.  For the POPM field things are more complicated, as there is no established standard in place.  We currently most closely respect what Mediamonkey does, and also have some support for what Windows Media Player 11 does.  The POPM tag takes a value from 0..255, with 0 meaning no rating, 1 the worst, and 255 the best.  We currently map these as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
!&#039;&#039;&#039;POPM value&#039;&#039;&#039; || &#039;&#039;&#039;Star rating&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|0 ||&lt;br /&gt;
|- &lt;br /&gt;
|1 || &#039;&#039;&#039;*&#039;&#039;&#039; This is a special case for Windows Media Player&lt;br /&gt;
|- &lt;br /&gt;
| 2-8 || &lt;br /&gt;
|- &lt;br /&gt;
|9-49 || &#039;&#039;&#039;*&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|50-113 ||&#039;&#039;&#039;**&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|114-167 || &#039;&#039;&#039;***&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|168-218 || &#039;&#039;&#039;****&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|219-255 ||&#039;&#039;&#039;*****&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Audio Formats &amp;amp; Tags =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Supported Audio Formats ==&lt;br /&gt;
Although the list of playable formats is quite comprehensive, it is not accurate to say that every {{kodi}} installation will play every format. The ability to play some of the more obscure formats will depend upon the version of {{kodi}} and the operating system in use. Some formats will require the installation of add-ons.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Advancedsettings.xml|musicextensions}}&lt;br /&gt;
&lt;br /&gt;
;{{See also|Advancedsettings.xml}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Supported Metadata Containers ==&lt;br /&gt;
The following metadata containers are supported by {{kodi}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Metadata Container || Note&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:APEv2 tag|APEv2 tag]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Advanced_Systems_Format|ASF]] ||&lt;br /&gt;
|-&lt;br /&gt;
|Generic Tag || A generic tag for basic data from other odd file types&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:ID3|ID3]] || v1, v2.3 and v2.4&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:MPEG-4 Part 14#Metadata|MP4]] ||&lt;br /&gt;
|-&lt;br /&gt;
|[https://xiph.org/ Xiph.org] || Vorbis Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common File &amp;amp; Tag Combination ==&lt;br /&gt;
You will notice that not all the tags listed in the section &#039;&#039;Supported Audio Formats&#039;&#039; above are listed in the following table. Those formats that are ommitted do not have provision to support embedded tags. If your collection contains any of these unsupported formats, you will be unable to scan the music into the library. Your options are:&lt;br /&gt;
#Convert your audio file to a supported format and tag using MusicBrainz Picard. (recommended)&lt;br /&gt;
#Access your music via the File Manager or via File View&lt;br /&gt;
&lt;br /&gt;
{{kodi}} supports the following common Audio File and Tag Formats &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!| Metadata container&lt;br /&gt;
!| Additional Filename extensions&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:APEv2 tag|APEv2 tag]] || ape, mp3, aac, wv, mpc&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:Advanced_Systems_Format|ASF]] || asf, wmv, wma&lt;br /&gt;
|-&lt;br /&gt;
| Generic Tag || it, mod, module, nst, wow, s3m, xm&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:ID3|ID3 v1]] || mp3, aac&lt;br /&gt;
|-&lt;br /&gt;
| [[wikipedia:ID3|ID3 v2]] || mp3, aac, tta, aif, aiff, wav, flac&lt;br /&gt;
|-&lt;br /&gt;
| iTunes [[wikipedia:MPEG-4 Part 14#Metadata|MP4]] || .3g2 .m4a .m4b .m4p .m4r .m4v .mp4&lt;br /&gt;
|-&lt;br /&gt;
|[https://xiph.org/ Xiph.org] || flac, oga, ogg, opus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
*FLAC files- xiph tags override id3v2 tags &lt;br /&gt;
*mp3 files can have either id3 or APE tags&lt;br /&gt;
*mka, dsf, dff - ID3v2 format read but are handled by ffmpeg tag reader and it does not support all tags from IDE standard)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags {{kodi}} reads ==&lt;br /&gt;
{{kodi}} will scan the following tags embedded in the music file. The column &#039;&#039;{{kodi}} Version&#039;&#039; indicates the version of {{kodi}} that the tag was introduced, and will work in subsequent versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| {{kodi}} Version&lt;br /&gt;
! Vorbis (.Flac)&lt;br /&gt;
! ID3v2 (.mp3)&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|ARTISTSORT&lt;br /&gt;
|TSOP&lt;br /&gt;
|ARTISTSORT&lt;br /&gt;
| &lt;br /&gt;
|WM/ArtistSortOrder&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|ALBUMARTISTSORT&lt;br /&gt;
|TS02&lt;br /&gt;
|ALBUMARTISTSORT&lt;br /&gt;
|soaa&lt;br /&gt;
|WM/AlbumArtistSortOrder&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|COMPOSERSORT&lt;br /&gt;
|TSOC&lt;br /&gt;
|COMPOSERSORT&lt;br /&gt;
|soco&lt;br /&gt;
|WM/ComposerSortOrder&lt;br /&gt;
|-&lt;br /&gt;
|v18&lt;br /&gt;
|WRITER&lt;br /&gt;
|WRITER&lt;br /&gt;
|WRITER&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;{{next|[[Adding_music_to_the_library|Scanning Music Into Library]]}} &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Music Files &amp;amp; Tagging}}&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Artist_information_folder&amp;diff=139798</id>
		<title>Artist information folder</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Artist_information_folder&amp;diff=139798"/>
		<updated>2018-08-04T14:54:47Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Initial draft introducing the Artist Information Folder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[:Category:Music_library| Music Library Index]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;In v18 the concept of the Artist Information Folder is introduced as a new way to handle providing local artist artwork and information via nfo files. The Artist Information Folder is a user nominated folder that {{kodi}} will look in first for artwork or NFO files for &#039;&#039;any&#039;&#039; artist. &amp;lt;br&amp;gt;&lt;br /&gt;
This topic is of interest to those users that want to provide local artwork for artists, or capture their current artist art and additional data for transfer to another installation of {{kodi}}&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In v17 and prior releases of {{kodi}} the ability to automatically fetch local art and information from NFO files depended upon the music files being in a strict &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; folder structure. &lt;br /&gt;
{{kodi}} populated the basic library by using data embedded in the music files. It did not use the folder structure or filenames to populate the library, but it would try to identify a unique folder for each (album) artist and a unique folder for each album from the location of the related music files, and look there for art and additional information for the artist and album respectively.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not all music fits neatly under such a strict layout. For example:&lt;br /&gt;
*Collaboration albums with more than one album artist (very common in Classical music with composer, conductor and orchestra credited, but happens in pop when two artists in there own right make an album together). &lt;br /&gt;
*All the albums by an artist had to be on the same music source which made it difficult to organise libraries to suit personal preferences.&lt;br /&gt;
Art and additional information could only be provided for album artists, not those artists that only feature as a guest on some songs on an album by another artist or on a compilation album, nor the other musicians and professionals that contribute to the production.&lt;br /&gt;
&lt;br /&gt;
The way {{kodi}} tried to identify folders from their contents, combined with a slightly inaccurate music file arrangement,  produced some unexpected art results that were often difficult to pin down. &amp;lt;ref&amp;gt;https://github.com/xbmc/xbmc/pull/12891&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;From v18 the Artist Information Folder can be used to resolve many issues with providing local art and additional information for Artists. Local artist art and nfo files can be provided without requiring a specific folder for music files, and artist NFO files can be kept separately from the music rather than jumbled with it. &amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
= FAQ =&lt;br /&gt;
{|&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= Do I need to have an Artist Information Folder?&lt;br /&gt;
| Answer= No, {{kodi}} will continue to be backwards compatible and pick up artist art and NFO files from the same places it does for v17. Of course, if you choose not to use the Artist Information Folder you will still encounter the same limitations described above. Also if you do not have any local artist artwork or want to use NFO files then there is no need for one either.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= Why would I want to nominate a folder?&lt;br /&gt;
| Answer=*So that you can provide local art and NFO files for artists that are:&lt;br /&gt;
** involved in collaboration albums&lt;br /&gt;
** only song artists (no albums, only guests or on compilations)&lt;br /&gt;
** musicians or other contributors&lt;br /&gt;
* To keep artist art and data separate from music files.&lt;br /&gt;
* To handle having music from one artist spilt across many music sources.&lt;br /&gt;
If you have ever had the wrong local art appear in an odd place then you probably need it.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= How do I setup the Artist Information Folder?&lt;br /&gt;
| Answer= See Section 3- Recommended Setup&lt;br /&gt;
The folder can be named in whatever way suits you and located with, or away from, your music files. We recommend away from your music files.&lt;br /&gt;
Once a folder has been created on your file system, set it as the Artist Information Folder in either one of two ways:&lt;br /&gt;
* In the settings page here... &#039;&#039;&#039;&#039;&#039;See: [[Settings/Media/Music#Library|Artist Information Folder Setting]]&#039;&#039;&#039;&#039;&#039;, or &lt;br /&gt;
* Via the Settings button on the Add to Library dialog that is displayed when you add a new music source. &#039;&#039;&#039;&#039;&#039;See: [[Adding_music_to_the_library#Adding_Music_to_Library| Adding Sources]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= How is the individual artist information organised and populated?&lt;br /&gt;
| Answer= Any artist can have a subfolder within the Artist Information Folder which is named same as the artist name. Within that folder can be artwork and additional artist information as XML metadata in an &#039;&#039;&#039;&#039;&#039;[[NFO_files/Music| NFO file]]&#039;&#039;&#039;&#039;&#039; called &#039;&#039;artist.nfo&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The artist folders can be created manually, however it is easiest to create the initial artist folders and contents using the export facility. See 4- Using Export.  That way folders are created with the correct names, as slight differences in naming could prevent {{kodi}} from locating the artist. The artwork and NFO files can then be manually edited and the library refreshed.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= How does {{kodi}} use the contents?&lt;br /&gt;
| Answer= The artwork and NFO files in the Artist Information Folder are read by Kodi as part of scanning and scraping process. &lt;br /&gt;
If you have made changes to the NFO Files for Artists already in your library, then these changes need to be &#039;&#039;&#039;Refreshed&#039;&#039;&#039; into the library.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;See: [[Update_Music_Library#Refresh_Artist|Refresh Artists]]&#039;&#039;&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;See: [[Update_Music_Library#Refresh_Album|Refresh Albums]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
To change existing artwork or to add missing artwork, either use the Refresh method above or manually change the artwork&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;See: [[Music_artwork#Manually_Add_Artwork| Manually Add Artwork]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note that the music library import facility does not make use of separate nfo files at all. Import only works on the single xml files that can be created via export. &#039;&#039;&#039;&#039;&#039;See: [[Import-export_library#Import_2| Music Library Import]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= Does the Artist Information Folder have to be separate from my music files?&lt;br /&gt;
| Answer= No, it is the user&#039;s choice but it will be less confusing if it is separate. Also note that using the export facility to populate the Artist Information Folder can result in thousands of artist folders. Decide if you want all these folders, containing just art and nfo files, mixed in with your other folders that contain music files.&lt;br /&gt;
Finally if you find the explanation in the next question confusing then just don’t do it, make it a separate folder somewhere else. &lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= What happens if I make the Artist Information Folder the same as my main music source?&lt;br /&gt;
| Answer=Say you have a folder called &amp;quot;mymusic&amp;quot; that contains all your music files under an &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; folder structure, and you choose to make that the Artist Information Folder, then {{kodi}} will look first for artist artwork and nfo in folders in mymusic\&amp;lt;artistname&amp;gt; where &amp;lt;artistname&amp;gt; is the exact artist name. The names of your existing folders for each artist may match, or may not (remember {{kodi}} does not care how music folders are named). What you read as the same name may not be exactly the same.  Say they match, then the art and NFO files in them will be found and used.  But if all you want is to use your existing artist art and nfo files already in your music folder layout then setting the Artist Information Folder the same as a music source  is unnecessary, {{kodi}} will look there anyway.&amp;lt;br&amp;gt; &lt;br /&gt;
For art and NFO for extra artists you can create (or let export create for you) additional artist folders along side your existing folders, however you will end up with some that have music and some that don&#039;t. Some of the artwork addons people have used already do this mixing of music and art only folders, so it may be familiar and if the artist folders are correctly named Kodi will start to pick up the art on scanning rather than have the addon set it.  However for others being able to use the Artist Information Folder to separate art and music will be a relief. &lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= What happens when I have a separate Artist Information Folder but also leave artist NFO and artwork files above my music files?&lt;br /&gt;
| Answer= {{kodi}} will look first for the artist under the Artist Information Folder and use that artwork and NFO file. If it does not find a folder for the artist there, then for album artists only it falls back to looking for a suitable artist folder in an &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; folder structure as it did for v17. &amp;lt;br&amp;gt;&lt;br /&gt;
There are a few more safety checks in v18 to try and avoid some of the cases of mistaken identity, but in doing that it may also not show such art in the one place it is wanted.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= Does this affect Album artwork and NFO Files?&lt;br /&gt;
| Answer= No, this does not apply to albums. Local album artwork and NFO files still be looked in the folder common to all the music files for that album (if such a unique folder exists).&amp;lt;br&amp;gt;&lt;br /&gt;
If album related folders and files are located within the artist folders of the Artist Information Folder then they generally have no effect, unless the Artist Information Folder is the same as the music source and the music files are also located there. &lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question= When using File View mode will I see the artwork from the Aritist Information Folder?&lt;br /&gt;
| Answer= No, the Artist Information Folder is only a music library feature. In file view you only see the artwork found in the folder you are browsing.&lt;br /&gt;
}}&lt;br /&gt;
{{FAQ|&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question= Why won&#039;t the scan pick up my artwork?&lt;br /&gt;
| Answer= There could be many different reasons for that, only some relate to the Artist Information Folder.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;See: [[Music_artwork|Music Artwork Missing]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
= Recommended Setup =&lt;br /&gt;
A frequent question from users is &#039;&#039;what do you recommend?&#039;&#039;, in the case of the Artist Information Folder the answer is simple: unless you have local artwork for artists, or want to enter artist information via NFO files there is nothing to do. For a first time {{kodi}} user the recommendation is to tag your music files accurately, scan them into the library and allow the scrapers to fetch additional artist and album information and artwork for you.&lt;br /&gt;
&lt;br /&gt;
With v18 you can arrange your music files however you like and still have access to local art and NFO files. We would recommend that all the music files from an album are kept in a unique folder, perhaps with subfolders for each part of a multi-part set. Perhaps you choose to arrange those in artist folders of some kind, but that does not have to be strictly adhered too. You could divide a large music collection by genre (with an artist having albums in more than one), or by decade, or some broader music category e.g. Xmas music. Use an &#039;&#039;&#039;Artist &amp;gt; Album &amp;gt; Songs&#039;&#039;&#039; structure if it is convenient for you.&lt;br /&gt;
&lt;br /&gt;
Once you start to extend your use of {{kodi}} then a number of situations can arise:&lt;br /&gt;
*you have artists that the scraper was unable to find information or art for&lt;br /&gt;
*you want to manually edit some of the information&lt;br /&gt;
*having selected particular art from the many choices the scraper has found you want to backup that choice&lt;br /&gt;
*you want to transfer your current library to another installation of {{kodi}}&lt;br /&gt;
&lt;br /&gt;
Then it is time to setup an Artist Information Folder. &lt;br /&gt;
# Create the Artist Information Folder outside the folders which hold your music files&lt;br /&gt;
# Name that folder in whatever way suits you&lt;br /&gt;
# Once the folder is created set this folder in the &#039;&#039;Artist Information Folder&#039;&#039; setting here... &#039;&#039;&#039;&#039;&#039;See: [[Settings/Media/Music#Library|Artist Information Folder Setting]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
# Use the export facility to populate the Artist Information Folder &lt;br /&gt;
A typical folder structure type is displayed below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 f:\   .......................................(Drive root)&lt;br /&gt;
  |&lt;br /&gt;
  |__ArtistInfo   ............................(Artist Information Folder) &lt;br /&gt;
  |     |&lt;br /&gt;
  |&lt;br /&gt;
  |&lt;br /&gt;
  |__MyMusic   ...............................(Source) &lt;br /&gt;
  |_____Pop Music   .......................(Source)&lt;br /&gt;
  |     |__ Madonna   ........................(Artist folder)&lt;br /&gt;
  |     |   |__ Beautiful Stranger (1999)   ..(Album folder)&lt;br /&gt;
  |     |   |   |__ Songs&lt;br /&gt;
  |&lt;br /&gt;
  |_____Compilations   .......................(Source)&lt;br /&gt;
  |     |__ Essential Eighties   .............(Album folder)&lt;br /&gt;
  |     |       |__ Songs&lt;br /&gt;
  |&lt;br /&gt;
  |_____Classical   ..........................(Source)&lt;br /&gt;
  |     |&lt;br /&gt;
  |&lt;br /&gt;
  |_____Soundtracks   ........................(Source)&lt;br /&gt;
  |     |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Using Export With The Artist Information Folder =&lt;br /&gt;
The export facility is the easy way to create artist folders in the Artist Information Folder, and populate them with the current artwork and additional artist information that has been already been scraped (or create empty files as templates that can be manually edited). &lt;br /&gt;
&lt;br /&gt;
To do this directly &#039;&#039;&#039;&#039;&#039;[[Import-export_library#Music_Library_Export_.2F_Import|export the music library]]&#039;&#039;&#039;&#039;&#039;, choosing &#039;&#039;&#039;To library folders&#039;&#039;&#039; as the kind of export output. Choose in the items to export which artists to do this for:&lt;br /&gt;
* album artists&lt;br /&gt;
* song artists&lt;br /&gt;
* other artists - the musicians and other people involved in production&lt;br /&gt;
&lt;br /&gt;
However if you are concerned about what is going to be created you can choose &#039;&#039;&#039;Separate files for each item&#039;&#039;&#039; as the kind of export output. This will create the artist folders (and album folders for each artist) in a destination of your choice. Use this as a harmless test to see what is going to be produced without impacting your music files or Artist Information Folder.&lt;br /&gt;
&lt;br /&gt;
The various music export options are described in more detail here.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{top}}&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=139706</id>
		<title>Advancedsettings.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=139706"/>
		<updated>2018-07-17T17:44:32Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* sorttokens */  correct explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}{{mininav|[[Settings]]|page=advancedsettings.xml}}&lt;br /&gt;
{{bigger|{{note|&#039;&#039;&#039;The advancedsettings.xml file does not exist by default. You have to create it first!&#039;&#039;&#039;}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The [[advancedsettings.xml]] file, which does not exist by default, can be created by a user in their &#039;&#039;&#039;[[userdata folder]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This file is used for advanced settings and options that do not have GUI controls inside of {{kodi}}. Some settings are experimental or very rarely set, so they can only be used via the advancedsettings.xml file. The file is simply a plain text file and can be edited by various text editors, so long as the name is &amp;quot;advancedsettings.xml&amp;quot;. These advanced settings can be used to tweak various things such as episode naming patterns, special network ports, special behaviors, and more.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following page will describe the structure of the advancedsettings.xml file and the various individual settings.&lt;br /&gt;
&lt;br /&gt;
{{note|&lt;br /&gt;
# All XML tags must be lowercase. The start and end of the advancedsettings.xml file must have the &amp;lt;advancedsettings&amp;gt; and &amp;lt;/advancedsettings&amp;gt; tags.&lt;br /&gt;
# Kodi will only read the advancedsettings.xml file when it starts up. If you make changes while it is running then you must restart Kodi.&lt;br /&gt;
# For some Windows versions, Kodi has two &amp;lt;code&amp;gt;\userdata\&amp;lt;/code&amp;gt; folders. The correct one to put the advancedsettings.xml file in is not the one in Program Files, but in &amp;lt;code&amp;gt;%appdata%\Kodi\userdata\.&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
&lt;br /&gt;
The layout of &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;setting&amp;quot; gives the name of the setting, and &amp;quot;value&amp;quot; gives its value.&lt;br /&gt;
&lt;br /&gt;
A list of the available &amp;quot;setting&amp;quot; strings and their values is given below.&lt;br /&gt;
&lt;br /&gt;
= List of available settings =&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting settings ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== loglevel ===&lt;br /&gt;
{{Anchor|.3Cloglevel.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
Sets the logging level used to log errors and information. The &amp;quot;hide&amp;quot; attribute is optional. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;loglevel hide=&amp;quot;attribute&amp;quot;&amp;gt;options&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Attribute&lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;true&#039;&#039;&#039; &lt;br /&gt;
| Hides the &amp;quot;enable debugging&amp;quot; setting in the Settings page. (default)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;false&#039;&#039;&#039;&lt;br /&gt;
| Allows &amp;quot;enable debugging&amp;quot; setting to switch between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;2&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Option&lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | Action&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;-1&#039;&#039;&#039;&lt;br /&gt;
| No logging, suppresses all log output &lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
| Normal logging, only logging errors (default)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
| Debug logging with freemem, fps and cpu usage (no on screen)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;2&#039;&#039;&#039; &lt;br /&gt;
| Same as 1 (with on screen display)&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;3&#039;&#039;&#039; &lt;br /&gt;
| Same as 2 + full smb logging (no on screen display)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mw-collapsible mw-collapsed wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:100px;&amp;quot; | Example &lt;br /&gt;
! style=&amp;quot;width:500px;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
! Example 1:&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt;  &lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Example 2:&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel hide=&amp;quot;true&amp;quot;&amp;gt;2&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The setting is persistent through shutdown and restarts.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If debugging is enabled in the GUI, loglevel will be set to &#039;&#039;&#039;2&#039;&#039;&#039;. This will over-ride the &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; setting. You must disable the GUI Setting before adding the entry to &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
:&#039;&#039;{{see also|Log_file|label 1=Debug Log}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== jsonrpc ===&lt;br /&gt;
{{Anchor|.3Cjsonrpc.3E}}&lt;br /&gt;
To make it easier for developers using the [[JSON RPC]] API in their (third party) applications to debug during development the json output of Kodi can be prettified by setting &#039;&#039;&#039;compactoutput&#039;&#039;&#039; to &#039;&#039;&#039;false&#039;&#039;&#039;. Default json output mode is a compact print which does not contain any unnecessary whitespaces and therefore is difficult to read for humans.&lt;br /&gt;
Furthermore using the &#039;&#039;&#039;tcpport&#039;&#039;&#039; setting it is possible to change the default TCP port used by Kodi for JSON RPC (which is 9090) to any other valid port.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsonrpc&amp;gt;&lt;br /&gt;
    &amp;lt;compactoutput&amp;gt;false&amp;lt;/compactoutput&amp;gt;&lt;br /&gt;
    &amp;lt;tcpport&amp;gt;9999&amp;lt;/tcpport&amp;gt;&lt;br /&gt;
&amp;lt;/jsonrpc&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio/video playback settings ==&lt;br /&gt;
&lt;br /&gt;
=== skiploopfilter ===&lt;br /&gt;
{{anchor|.3Cskiploopfilter.3E}}&lt;br /&gt;
The amount of the loop filter to skip on h.264 decoding.  This can help the performance of slower machines when decoding h264 content.  Values, in decreasing CPU usage (and decreasing quality)&lt;br /&gt;
* -16 None&lt;br /&gt;
* 0 Skip only empty frames (default)&lt;br /&gt;
* 8 Skip non-reference frames&lt;br /&gt;
* 16 Skip bi-dir frames&lt;br /&gt;
* 32 Skip all non-key frames&lt;br /&gt;
* 48 Skip all frames&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;skiploopfilter&amp;gt;8&amp;lt;/skiploopfilter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== video ===&lt;br /&gt;
{{anchor|.3Cvideo.3E}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;video&amp;gt; section also includes the following child-tags, which have their own sections:&lt;br /&gt;
*[[#cleandatetime]]&lt;br /&gt;
*[[#cleanstrings]]&lt;br /&gt;
*[[#excludefromscan]]&lt;br /&gt;
*[[#excludefromlisting]]&lt;br /&gt;
*[[#excludetvshowsfromscan]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note|Some tags that have a &amp;quot;third-level&amp;quot; and are grouped together are highlighted in color.}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Parent tag that all other child tags need to be placed inside of. Do not use more than one &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039; tag, but instead place all other child-tags within a single &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;video&amp;gt;&amp;lt;/video&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039; set.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;subsdelayrange&amp;gt;10&amp;lt;/subsdelayrange&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Delay range for subtitles, in seconds.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;audiodelayrange&amp;gt;10&amp;lt;/audiodelayrange&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Delay range for audio/video sync, in seconds.&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;usetimeseeking&amp;gt;true&amp;lt;/usetimeseeking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Whether to use time based or percentage based seeking. {{small see also|HOW-TO:Modify time seeking}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforwardbig&amp;gt;600&amp;lt;/timeseekforwardbig&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackwardbig&amp;gt;-600&amp;lt;/timeseekbackwardbig&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes) and -600 (-10 minutes) respectively. &#039;&#039;{{small|See also: [[HOW-TO:Modify time seeking]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforward&amp;gt;2&amp;lt;/percentseekforward&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackward&amp;gt;-2&amp;lt;/percentseekbackward&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Amount to seek forward as a percentage, when doing a short seek.  Defaults to 2 (2%) and -2 (2%) respectively. &#039;&#039;{{small|See also: [[HOW-TO:Modify time seeking]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforwardbig&amp;gt;10&amp;lt;/percentseekforwardbig&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackwardbig&amp;gt;-10&amp;lt;/percentseekbackwardbig&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Amount to seek forward as a percentage, when doing a long seek.  Defaults to 10 (10%) and -10 (10%) respectively. &#039;&#039;{{small|See also: [[HOW-TO:Modify time seeking]] }}&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;fullscreenonmoviestart&amp;gt;true&amp;lt;/fullscreenonmoviestart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Whether to go to fullscreen or not when starting a movie. Defaults to true.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;VideoPlayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Set the default video player: VideoPlayer or an external player. See &#039;&#039;&#039;[[External players]]&#039;&#039;&#039; for more info.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Regular expressions that if evaluated to true won&#039;t be added to library.  It is possible to add multiple &amp;lt;code&amp;gt;&amp;lt;regexp&amp;gt;&amp;lt;/code&amp;gt; tags to match multiple patterns&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Regular expressions that if evaluated to true won&#039;t be displayed in files view.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;90&amp;lt;/playcountminimumpercent&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Minimum percentage that has to be played before it is marked as watched. Set to 101 to never auto-mark items as watched. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ignoresecondsatstart&amp;gt;180&amp;lt;/ignoresecondsatstart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Number of seconds to ignore at video start after which a resume point is created. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ignorepercentatend&amp;gt;8&amp;lt;/ignorepercentatend&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Percentage of video to ignore at the end. If you stop watching the video here no resume point is created. Set to 101 to never save a resume point. The video is already marked as watched at 90%, see above. &#039;&#039;{{small|See also: [[HOW-TO:Modify automatic watch and resume points]] }}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;vdpauscaling&amp;gt;true&amp;lt;/vdpauscaling&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Scales with vdpau instead of opengl and turns on its HQ scaler when available, enabling this might slow down rendering and cause framedrops especially on ION systems, this setting requires a vdpau feature set C GPU.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;enablehighqualityhwscalers&amp;gt;true&amp;lt;/enablehighqualityhwscalers&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Allow turning on the spline36 and lanczos3 shader (for GL builds).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;dxvaallowhqscaling&amp;gt;false&amp;lt;/dxvaallowhqscaling&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Enables high quality video upscaling for Windows.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ppffmpegdeinterlacing&amp;gt;linblenddeint&amp;lt;/ppffmpegdeinterlacing&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Override the deinterlacing options passed to libpostproc.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;ppffmpegpostprocessing&amp;gt;ha:128:7,va,dr&amp;lt;/ppffmpegpostprocessing&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Override the post processing options passed to libpostproc when &#039;Video post-processing&#039; is activated in GUI Videos-Settings-Playback.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;autoscalemaxfps&amp;gt;30&amp;lt;/autoscalemaxfps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| When scaling method is set to auto, bilinear is chosen when the fps is higher than this limit, the default is 30.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;adjustrefreshrate&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | Settings for when &amp;quot;Adjust refreshrate to match video fps&amp;quot; is enabled in the video playback GUI settings.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fps&amp;gt;23.976&amp;lt;/fps&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;60.0&amp;lt;/refresh&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; &amp;quot;Adjust refreshrate to match video fps&amp;quot; will try to select the best refreshrate for the video fps but it doesn&#039;t always get it right, for example it might switch to an unsupported refreshrate. You can add overrides here to switch to a certain refreshrate based on video fps. It&#039;s possible to add as many overrides as you need.  Overrides are processed in order, if the first one doesn&#039;t match the fps or no refreshrates match that override, it will try the next one until no overrides are left.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;fps&#039;&#039;&#039; - if the fps is between 23.966 and 23.986&lt;br /&gt;
* &#039;&#039;&#039;refresh&#039;&#039;&#039; - switch to the first found refreshrate that is between 59.99 and 60.01&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmin&amp;gt;29.96&amp;lt;/fpsmin&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmax&amp;gt;30.01&amp;lt;/fpsmax&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;59.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;61.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;fpsmin&#039;&#039;&#039; / &#039;&#039;&#039;fpsmin&#039;&#039;&#039; - You can also specify the fps range yourself.&lt;br /&gt;
* &#039;&#039;&#039;refreshmin&#039;&#039;&#039; / &#039;&#039;&#039;refreshmax&#039;&#039;&#039; - Same for the refreshrate&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;50.0&amp;lt;/refresh&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; If none of the overrides match, or none of the refreshrates match any of the fps matching overrides, it will choose a fallback refreshrate. Fallbacks are process in order, if the first fallback doesn&#039;t match any refreshrate, it will try the next one until no fallbacks are left.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;refresh&#039;&#039;&#039; - Switch to the first found refreshrate that is between 49.99 and 50.01.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;49.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;51.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &#039;&#039;&#039;Example -&#039;&#039;&#039; You can also specify the range for the fallback yourself.&lt;br /&gt;
&lt;br /&gt;
If none of the overrides match the video fps, or no refreshrates match any of the fps matching overrides, and no fallbacks are specified or no refreshrates match any fallbacks, it will automatically choose the best refreshrate (same as having no overrides and fallbacks).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;/adjustrefreshrate&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#CADCFB;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;checkdxvacompatibility&amp;gt;value&amp;lt;/checkdxvacompatibility&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Advanced setting not present: let Kodi autodetect cards that support H.264 profile &amp;gt; L4.1. Set value to false to enable DXVA no matter what. Set value to true if Kodi doesn&#039;t autodetect that the graphics card doesn&#039;t support &amp;gt; L4.1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;useocclusionquery&amp;gt;-1&amp;lt;/useocclusionquery&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Use an occlusion query when capturing videoframes, -1 means auto detect, 0 means disabled, 1 means enabled, the default is -1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;fpsdetect&amp;gt;1&amp;lt;/fpsdetect&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| FPS detection for video playback&lt;br /&gt;
* 0 = trust codec fps&lt;br /&gt;
* 1 = recalculate from video timestamps with uniform spacing&lt;br /&gt;
* 2 = recalculate from video timestamps always&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;latency&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot;| Start of &#039;&#039;&#039;latency&#039;&#039;&#039; tags. Display latency (video lag). Latency is given in msecs.&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;delay&amp;gt;0&amp;lt;/delay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | Global default display latency.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | Override latency for given display (not video) refresh rates. When Kodi is in windowed mode, override is ignored. Multiple overrides are allowed.&lt;br /&gt;
&lt;br /&gt;
Syntax of an override entry:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;refresh&amp;gt;&lt;br /&gt;
  &amp;lt;min&amp;gt;, &amp;lt;max&amp;gt; refresh rate range, OR&lt;br /&gt;
  &amp;lt;rate&amp;gt; exact refresh rate&lt;br /&gt;
  &amp;lt;delay&amp;gt; display latency for the given refresh rate&lt;br /&gt;
&amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;min&amp;gt;23&amp;lt;/min&amp;gt;&lt;br /&gt;
      &amp;lt;max&amp;gt;24&amp;lt;/max&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;125&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &#039;&#039;&#039;Example:&#039;&#039;&#039; display has 125 msec latency at 23-24 Hz&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;rate&amp;gt;50&amp;lt;/rate&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;50&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &#039;&#039;&#039;Example:&#039;&#039;&#039; display has 50 msec latency at 50 (+/-0.01) Hz&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;/latency&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| style=&amp;quot;background:#F0E68C;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregex3d&amp;gt;[-. _]3d[-. _]&amp;lt;/stereoscopicregex3d&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregexsbs&amp;gt;[-. _]h?sbs[-. _]&amp;lt;/stereoscopicregexsbs&amp;gt;&lt;br /&gt;
  &amp;lt;stereoscopicregextab&amp;gt;[-. _]h?tab[-. _]&amp;lt;/stereoscopicregextab&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Filename triggers for 3D (stereoscopic) mode.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
  &amp;lt;assfixedworks&amp;gt;false&amp;lt;/assfixedworks&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| Position behavior of ass subtitiles when setting &amp;quot;subtitle position on screen&amp;quot; set to &amp;quot;fixed&amp;quot;. True to show at the fixed position set in video calibration. False to show at the bottom of video (default).&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== audio ===&lt;br /&gt;
{{anchor|.3Caudio.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;audio&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of headroom Kodi should use above the maximum volume level, in decibels.  Defaults to 0, valid values 0, 6, 12. --&amp;gt;&lt;br /&gt;
  &amp;lt;headroom&amp;gt;0&amp;lt;/headroom&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Default audio player: paplayer or dvdplayer --&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;paplayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be added to library. --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of gain (dB) to be applied to AC3 streams that have been mixed-down to 2 channels. Default is 12.0. Valid values are: -96.0 to 96.0. --&amp;gt;&lt;br /&gt;
  &amp;lt;ac3downmixgain&amp;gt;12.0&amp;lt;/ac3downmixgain&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Minimum percentage that has to be played before it is considered for incrementing in the Top 100 database view, or for last.fm submittal --&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;99&amp;lt;/playcountminimumpercent&amp;gt; &lt;br /&gt;
  &amp;lt;!-- Whether to use Dynamic Range Compression (DRC) on AC3 streams. 1.0 is &amp;quot;full&amp;quot; compression, as defined by the audio track&#039;s metadata, which is recommended for &amp;quot;basic&amp;quot; sound systems such as the internal speakers on a TV. 0.0 is no compression at all, which is recommended for people with nice multi-speaker sound systems. -1.0 (default) defaults to whatever ffmpeg uses, which is currently the same as 1.0. This has no effect if passthrough is enabled for AC3. --&amp;gt;&lt;br /&gt;
  &amp;lt;applydrc&amp;gt;-1.0&amp;lt;/applydrc&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterhold&amp;gt;0.025&amp;lt;/limiterhold&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterrelease&amp;gt;0.1&amp;lt;/limiterrelease&amp;gt; &lt;br /&gt;
&amp;lt;/audio&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information on the configuration of audio under Frodo see [[AudioEngine/HOW-TO: Configure audio]]&lt;br /&gt;
&lt;br /&gt;
=== edl ===&lt;br /&gt;
{{anchor|.3Cedl.3E}}&lt;br /&gt;
{{main|EDL}}&lt;br /&gt;
Commercial break detection not as good you think it could be? Are some commercial breaks in a series of adverts not being skipped? Are some parts being skipped that are clearly not commercials? Does the end of the previous recording still show? The following advanced settings can be used to better identify full commercial break sequences, remove incorrectly flagged commercial breaks, and have playback start at the actual beginning of the recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edl&amp;gt;&lt;br /&gt;
  &amp;lt;!-- if true, commercial breaks will be merged according to the remaining options. --&amp;gt;&lt;br /&gt;
  &amp;lt;mergeshortcommbreaks&amp;gt;false&amp;lt;/mergeshortcommbreaks&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks won&#039;t be merged if the total length of the commercial break would be greater than this (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreaklength&amp;gt;250&amp;lt;/maxcommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- After merging, commercial breaks shorter than this will be removed (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;mincommbreaklength&amp;gt;90&amp;lt;/mincommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks that are further apart than this won&#039;t be merged (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreakgap&amp;gt;120&amp;lt;/maxcommbreakgap&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to wait before automatically skipping when the start of a commercial break reached (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowait&amp;gt;0&amp;lt;/commbreakautowait&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to rewind after automatically skipping to the end of the commercial break (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowind&amp;gt;0&amp;lt;/commbreakautowind&amp;gt;&lt;br /&gt;
&amp;lt;/edl&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pvr ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pvr&amp;gt;&lt;br /&gt;
  &amp;lt;timecorrection&amp;gt;0&amp;lt;/timecorrection&amp;gt;  &amp;lt;!-- Correct all times (epg tags, timer tags, recording tags) by this amount of minutes. --&amp;gt;&lt;br /&gt;
  &amp;lt;infotoggleinterval&amp;gt;3000&amp;lt;/infotoggleinterval&amp;gt;  &amp;lt;!-- If there is more than one pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. --&amp;gt;&lt;br /&gt;
  &amp;lt;channeliconsautoscan&amp;gt;true&amp;lt;/channeliconsautoscan&amp;gt; &amp;lt;!-- Automatically scan user defined folder for channel icons when loading internal channel groups. --&amp;gt;&lt;br /&gt;
  &amp;lt;autoscaniconsuserset&amp;gt;false&amp;lt;/autoscaniconsuserset&amp;gt; &amp;lt;!-- Mark channel icons populated by auto scan as &amp;quot;user set&amp;quot;. --&amp;gt;&lt;br /&gt;
  &amp;lt;numericchannelswitchtimeout&amp;gt;1000&amp;lt;/numericchannelswitchtimeout&amp;gt; &amp;lt;!-- Time in ms before the numeric dialog auto closes when confirmchannelswitch is disabled. --&amp;gt;&lt;br /&gt;
&amp;lt;/pvr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== epg ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;epg&amp;gt;&lt;br /&gt;
  &amp;lt;updatecheckinterval&amp;gt;300&amp;lt;/updatecheckinterval&amp;gt;  &amp;lt;!-- check if tables need to be updated every X minutes --&amp;gt;&lt;br /&gt;
  &amp;lt;cleanupinterval&amp;gt;900&amp;lt;/cleanupinterval&amp;gt;  &amp;lt;!-- remove old entries from the EPG every X minutes --&amp;gt;&lt;br /&gt;
  &amp;lt;activetagcheckinterval&amp;gt;60&amp;lt;/activetagcheckinterval&amp;gt;  &amp;lt;!-- check for updated active tags every X minute --&amp;gt;&lt;br /&gt;
  &amp;lt;retryinterruptedupdateinterval&amp;gt;30&amp;lt;/retryinterruptedupdateinterval&amp;gt;  &amp;lt;!-- retry an interrupted epg update after X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;updateemptytagsinterval&amp;gt;60&amp;lt;/updateemptytagsinterval&amp;gt;  &amp;lt;!-- override user selectable EPG update interval (minutes) for empty EPG tags --&amp;gt;&lt;br /&gt;
  &amp;lt;displayupdatepopup&amp;gt;true&amp;lt;/displayupdatepopup&amp;gt;  &amp;lt;!-- display a progress popup while updating EPG data from clients --&amp;gt;&lt;br /&gt;
  &amp;lt;displayincrementalupdatepopup&amp;gt;false&amp;lt;/displayincrementalupdatepopup&amp;gt;  &amp;lt;!-- also display a progress popup while doing incremental EPG updates --&amp;gt;&lt;br /&gt;
&amp;lt;/epg&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== forcedswaptime ===&lt;br /&gt;
{{anchor|.3Cforcedswaptime.3E}}&lt;br /&gt;
Use to force a backbuffer-&amp;gt;frontbuffer swap while vsync is enabled. Set to the time (in ms) to allow for the swap (e.g. &amp;lt;forcedswaptime&amp;gt;1&amp;lt;/forcedswaptime&amp;gt; is typical).  &lt;br /&gt;
&lt;br /&gt;
Default: Off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== omxdecodestartwithvalidframe ===&lt;br /&gt;
{{note|This tag is only in some Raspberry Pi specific distributions, such as [[OpenELEC]]. As of March 2015, this tag has not been merged into &amp;quot;vanilla&amp;quot; Kodi builds.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;omxdecodestartwithvalidframe&amp;gt;&amp;lt;/omxdecodestartwithvalidframe&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video library settings ==&lt;br /&gt;
&lt;br /&gt;
=== videoextensions ===&lt;br /&gt;
{{anchor|.3Cvideoextensions.3E}}&amp;lt;section begin=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Video windows.&lt;br /&gt;
&lt;br /&gt;
Default extensions for VIDEOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.m4v .3g2 .3gp .nsv .tp .ts .ty .strm .pls .rm .rmvb .mpd .m3u .m3u8 .ifo .mov .qt .divx .xvid&lt;br /&gt;
.bivx .vob .nrg .pva .wmv .asf .asx .ogm .m2v .avi .dat .mpg .mpeg .mp4 .mkv .mk3d .avc .vp3&lt;br /&gt;
.svq3 .nuv .viv .dv .fli .flv .001 .wpl .vdr .dvr-ms .xsp .mts .m2t .m2ts .evo .ogv .sdp .avs&lt;br /&gt;
.rec .url .pxml .vc1 .h264 .rcv .rss .mpls .webm .bdmv .wtv .trp .f4v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;videoextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/videoextensions&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== discstubextensions ===&lt;br /&gt;
{{main|Media stubs}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;discstubextensions&amp;quot; /&amp;gt;&lt;br /&gt;
The default filename extension for Disc Stubs is:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
.disc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Using the following tags, it is possible to &amp;lt;tt&amp;gt;&amp;lt;add&amp;gt;&amp;lt;/tt&amp;gt; additional or &amp;lt;tt&amp;gt;&amp;lt;remove&amp;gt;&amp;lt;/tt&amp;gt; existing disc stub extensions to better suit your requirements.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;discstubextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.disk|.stub&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.disc&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/discstubextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;discstubextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== languagecodes ===&lt;br /&gt;
{{anchor|.3Clanguagecodes.3E}}&lt;br /&gt;
Translation table for subtitle and audio names.  Contains entries of the form&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;languagecodes&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;short&amp;gt;alt&amp;lt;/short&amp;gt;&lt;br /&gt;
    &amp;lt;long&amp;gt;Alternate&amp;lt;/long&amp;gt;&lt;br /&gt;
  &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/languagecodes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== sorttokens ===&lt;br /&gt;
{{anchor|.3Csorttokens.3E}}&lt;br /&gt;
Allows you to specify additional tokens that will be ignored at the start of lines during sorting.&lt;br /&gt;
{{note|Sort tokens are case sensitive.}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
  &amp;lt;token&amp;gt;the&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example &amp;quot;the &amp;quot;, &amp;quot;the.&amp;quot; and &amp;quot;the_&amp;quot; will be ignored at the start of titles or names when sorting items, in both video and music libraries. A separator can also be specified, for example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
    &amp;lt;token separators=&amp;quot;&#039;&amp;quot;&amp;gt;L&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In that case the value L&#039;, as in French movie name &#039;&#039;L&#039;argent&#039;&#039;, will be ignored and the item listed under &amp;quot;A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== moviestacking ===&lt;br /&gt;
{{anchor|.3Cmoviestacking.3E}}&amp;lt;section begin=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
{{main|File stacking}}&lt;br /&gt;
This is used by the [[file stacking]] algorithm to combine multi-part files and contains a list of &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|regular expressions]]&#039;&#039;&amp;quot;. For stacking videos that are contained in folders, such as VIDEO_TS folders, see &#039;&#039;&#039;[[advancedsettings.xml#folderstacking|&amp;lt;folderstacking&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As of v9.11, video stacking regular expressions &#039;&#039;&#039;must&#039;&#039;&#039; contain exactly four (4) capture expressions. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[0-9]+)(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;a-d&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- movienamea-xvid.avi, movienameb-xvid.avi --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;append=&amp;quot;yes&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the end.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;append&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This expression will match movename1-xvid.avi, moviename2-xvid.avi.&lt;br /&gt;
         Be warned that it will likely stack sequels in a flat directory layout,&lt;br /&gt;
         so it is only recommend in a dir-per-video layout. --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[0-9])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the beginning. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;prepend&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(Title)(Volume)(Ignore)(Extension)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no argument is supplied, or the argument &amp;lt;tt&amp;gt;append=&amp;quot;no&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions are overwritten by the user specified ones.&lt;br /&gt;
&amp;lt;section end=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== folderstacking ===&lt;br /&gt;
{{main|File stacking}}&lt;br /&gt;
This is similar to &#039;&#039;&#039;[[advancedsettings.xml#moviestacking|&amp;lt;moviestacking&amp;gt;]]&#039;&#039;&#039;, but is used for videos that are contained in folders that use the folder names to stack, such as VIDEO_TS folders (DVD rips that are not in ISO format).&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;folderstacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;((cd|dvd|dis[ck])[0-9]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/folderstacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cleandatetime ===&lt;br /&gt;
{{anchor|.3Ccleandatetime.3E}}&lt;br /&gt;
Matches a year number in a string using a &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expression]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Default expression:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleandatetime&amp;gt;(.+[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-1][0-9])([ _\,\.\(\)\[\]\-][^0-9]|$)&amp;lt;/cleandatetime&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* The string found before will be used as basis string getting cleaned by the cleanstrings expressions. &lt;br /&gt;
:* By default date formats like MM:YY are ignored.&lt;br /&gt;
&lt;br /&gt;
=== cleanstrings ===&lt;br /&gt;
{{anchor|.3Ccleanstrings.3E}}&lt;br /&gt;
Clean unwanted characters from filenames or folders by using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;. Please note that everything right of the match (at the end of the file name) is removed, so if you would have a file named &#039;&#039;Super movie.mp4&#039;&#039; and would add &amp;lt;tt&amp;gt;&amp;lt;regexp&amp;gt; &amp;lt;/regexp&amp;gt;&amp;lt;/tt&amp;gt; (only a space), the only thing that would be left is &#039;&#039;Super&#039;&#039;, which is probably not what you want.&lt;br /&gt;
&lt;br /&gt;
Default expressions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleanstrings&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;[ _\,\.\(\)\[\]\-](ac3|dts|custom|dc|divx|divx5|dsr|dsrip|dutch|dvd|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multisubs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|cd[1-9]|r3|r5|bd5|se|svcd|swedish|german|read.nfo|nfofix|unrated|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|hrhd|hrhdtv|hddvd|bluray|x264|h264|xvid|xvidvd|xxx|www.www|\[.*\])([ _\,\.\(\)\[\]\-]|$)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;(\[.*\])&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/cleanstrings&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== tvshowmatching ===&lt;br /&gt;
{{anchor|.3Ctvshowmatching.3E}}&lt;br /&gt;
Matches the season and episode numbers in file paths by using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvshowmatching&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;s([0-9]+)[ ._x-]*e([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)([^\\\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.s01.e01, foo.s01_e01, S01E02 foo, S01 - E02, S01xE02 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\._ -]()[Ee][Pp]_?([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.ep01, foo.EP_01 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{4})[\.-]([0-9]{2})[\.-]([0-9]{2})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.yyyy.mm.dd.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{2})[\.-]([0-9]{2})[\.-]([0-9]{4})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.mm.dd.yyyy.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ \[\(-]([0-9]+)x([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.1x09* or just /1x09* --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ -]([0-9]+)([0-9][0-9])([\._ -][^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.103*, 103 foo --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\/._ -]p(?:ar)?t[_. -]()([ivx]+)([._ -][^\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- Part I, Pt.VI --&amp;gt;&lt;br /&gt;
&amp;lt;/tvshowmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
:* Paths are converted to lower case before matching.&lt;br /&gt;
:* Examples of matching regexps for certain filenames can be found on the [[TV Shows (Video Library)|TV shows]] page.&lt;br /&gt;
&lt;br /&gt;
:* For multi-episode matching to work, there needs to be a third set of parentheses &#039;()&#039; at the end, this part is fed back into the regexp engine.&lt;br /&gt;
&lt;br /&gt;
:* A [https://forum.kodi.tv/showthread.php?tid=51614 forum thread] has a discussion of pre-made regex lists to match common names. These might improve Kodi&#039;s ability to match TV show names in some situations, at the risk of additional false positives.&lt;br /&gt;
&lt;br /&gt;
==== Filenames without Season ====&lt;br /&gt;
There are two methods to add episodes without a season in their file path. Both ways will force the season to &#039;1&#039; by default, so that you can use&lt;br /&gt;
the &#039;Use Absolute Ordering (Single Season)&#039; setting from the TheTvDb.com scraper.&lt;br /&gt;
&lt;br /&gt;
; Simple Method &#039;&#039;(XBMC v9.11 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Use only one pair of parentheses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]([0-9]+)&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
; Advanced Method &#039;&#039;(XBMC v10.05 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Supports multi-episode files without season&lt;br /&gt;
: Use an empty pair of parentheses for the season&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Specifying Default Season &#039;&#039;(XBMC v12.0 onwards and Kodi)&#039;&#039;&lt;br /&gt;
It is possible to set the default season for specific regular expressions by setting the &#039;defaultseason&#039; attribute.&lt;br /&gt;
: Works with both the simple method and advanced method&lt;br /&gt;
: If not used, the season will be set to &#039;1&#039;&lt;br /&gt;
: Useful for setting specials to season &#039;0&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp defaultseason=&amp;quot;0&amp;quot;&amp;gt;[/\._ \-]X()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;regexp defaultseason=&amp;quot;1&amp;quot;&amp;gt;[/\._ \-]E()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== tvmultipartmatching ===&lt;br /&gt;
{{anchor|.3Ctvmultipartmatching.3E}}&lt;br /&gt;
Matches a multipart episode number based on a previously identified episode file, using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvmultipartmatching&amp;gt;^[-_ex]+([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)&amp;lt;/tvmultipartmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* Text matching is compared case-insensitive.&lt;br /&gt;
:* Specifying this option &#039;&#039;&#039;replaces&#039;&#039;&#039; the default value&lt;br /&gt;
&lt;br /&gt;
=== excludefromscan ===&lt;br /&gt;
{{anchor|.3Cexcludefromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a library scan (except tvshows) using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;. This can be for both Video or Audio sections of &amp;lt;tt&amp;gt;advancedsettings.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;-trailer&amp;lt;/regexp&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== excludefromlisting ===&lt;br /&gt;
{{anchor|.3Cexcludefromlisting.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;  &lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== excludetvshowsfromscan ===&lt;br /&gt;
{{anchor|.3Cexcludetvshowsfromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a tvshow library scan using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludetvshowsfromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludetvshowsfromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== trailermatching ===&lt;br /&gt;
{{anchor|.3Ctrailermatching.3E}}&lt;br /&gt;
Contains &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expression]]&#039;&#039;&amp;quot; syntax (commonly referred to as &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|RegEx]]&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|RegExp]]&#039;&#039;&amp;quot;) to match the locally stored trailers to movies in the library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;trailermatching&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This regexp will match moviename_Trailer.avi --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;(.*?)(_Trailer)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/trailermatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videolibrary ===&lt;br /&gt;
{{anchor|.3Cvideolibrary.3E}}&lt;br /&gt;
Options specific to the Video Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;false&amp;lt;/allitemsonbottom&amp;gt;  &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;cleanonupdate&amp;gt;false&amp;lt;/cleanonupdate&amp;gt;  &amp;lt;!-- default set to false to prevent Kodi from removing items from the database while updating.  --&amp;gt;&lt;br /&gt;
    &amp;lt;usefasthash&amp;gt;true&amp;lt;/usefasthash&amp;gt; &amp;lt;!-- defaults to true. Set to false in order to skip hashing based on the folders modification time. --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt; &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;  &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* --&amp;gt;&lt;br /&gt;
    &amp;lt;exportautothumbs&amp;gt;false&amp;lt;/exportautothumbs&amp;gt;  &amp;lt;!-- export auto-generated thumbs. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importwatchedstate&amp;gt;false&amp;lt;/importwatchedstate&amp;gt;  &amp;lt;!-- import previously exported playdate and playcount from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importresumepoint&amp;gt;false&amp;lt;/importresumepoint&amp;gt;  &amp;lt;!-- import previously exported resume point from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt; &amp;lt;!-- 0 results in using the current datetime when adding a video;&lt;br /&gt;
                                  1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                  2 results in using the newer datetime of the file&#039;s mtime and ctime --&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videoscanner ===&lt;br /&gt;
{{anchor|.3Cvideoscanner.3E}}&lt;br /&gt;
Options specific to the Video scanner&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videoscanner&amp;gt;&lt;br /&gt;
    &amp;lt;ignoreerrors&amp;gt;true&amp;lt;/ignoreerrors&amp;gt; &amp;lt;!-- Set to true to silently ignore errors while scanning videos. This prevents the error dialogue box, so you don&#039;t have to keep hitting &amp;quot;yes&amp;quot; to keep scanning.--&amp;gt;&lt;br /&gt;
  &amp;lt;/videoscanner&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Library artwork ==&lt;br /&gt;
&lt;br /&gt;
=== imageres ===&lt;br /&gt;
{{anchor|.3Cimageres.3E}}&lt;br /&gt;
This tag is new for v12 (Frodo), replacing &amp;lt;thumbsize&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;imageres description&amp;quot; /&amp;gt;Specify the maximal resolution that art should be resized to in pixels. The width is automatically calculated as being 16/9*height.  The image will be resized to fit within this size. e.g. an image that is 2000x500 will be cached at size 1280x320. An image that is 500x800 will be cached at size 450x720 using the default value of 720.&amp;lt;section end=&amp;quot;imageres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imageres&amp;gt;720&amp;lt;/imageres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanartres ===&lt;br /&gt;
{{anchor|.3Cfanartres.3E}}&lt;br /&gt;
This tag is new for v12 (Frodo), replacing &amp;lt;fanartheight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;fanartres description&amp;quot; /&amp;gt;Specify the resolution that cached fanart should be resized to in pixels. The width is automatically calculated as being 16/9*height. Only images that are exactly 16x9 and equal to or greater than this resolution will be cached at this size - all other images will be cached using &amp;lt;imageres&amp;gt;. The default value is 1080.&amp;lt;section end=&amp;quot;fanartres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanartres&amp;gt;1080&amp;lt;/fanartres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanart ===&lt;br /&gt;
{{anchor|.3Cfanart.3E}}&lt;br /&gt;
As of v12 (Frodo), this tag is only used for music and not video.&lt;br /&gt;
&lt;br /&gt;
A list of additional files to try when searching for fanart images.  (The defaults are fanart.jpg and fanart.png which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanart&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;fanart.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;backdrop.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/fanart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicthumbs ===&lt;br /&gt;
{{anchor|.3Cmusicthumbs.3E}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;musicthumbs&amp;quot; /&amp;gt;A list of additional files to try when searching for music thumbnail images.  (The default is folder.jpg which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicthumbs&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;folder.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;thumb.jpg|cover.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/musicthumbs&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;section end=&amp;quot;musicthumbs&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== imagescalingalgorithm ===&lt;br /&gt;
Specify the image scaling algorithm for image resizing/caching i.e. posters, fanart, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imagescalingalgorithm&amp;gt;bicubic&amp;lt;/imagescalingalgorithm&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/xbmc/xbmc/blob/1a8753d5cd93890dc6a9f9d4b2ce8848066ea5d0/xbmc/pictures/PictureScalingAlgorithm.cpp#L32-L43 Available image scaling algorithms]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
fast_bilinear&lt;br /&gt;
bilinear&lt;br /&gt;
bicubic&lt;br /&gt;
experimental&lt;br /&gt;
nearest_neighbor&lt;br /&gt;
averaging_area&lt;br /&gt;
bicublin&lt;br /&gt;
gaussian&lt;br /&gt;
sinc&lt;br /&gt;
lanczos&lt;br /&gt;
bicubic_spline&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video and music library settings ==&lt;br /&gt;
&lt;br /&gt;
=== playlistasfolders ===&lt;br /&gt;
{{anchor|.3Cplaylistasfolders.3E}}&lt;br /&gt;
In the recent releases, playlists are treated as folders. Selecting a playlist no longer plays it, but opens it, as if it were a folder.&lt;br /&gt;
&lt;br /&gt;
Set to false to revert to the previous behaviour. When you select a playlist, its content is added to the list of elements to be played.&lt;br /&gt;
&lt;br /&gt;
:{{note|This setting will not affect smart playlists, they will always show as folders.}}&lt;br /&gt;
&lt;br /&gt;
;Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlistasfolders&amp;gt;true&amp;lt;/playlistasfolders&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlistretries ===&lt;br /&gt;
{{anchor|.3Cplaylistretries.3E}}&lt;br /&gt;
The number of retries attempted if a source is offline. With this control you can alter the number of consecutive failed items before a playlist fails.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;playlistretries&amp;gt;100&amp;lt;/playlistretries&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlisttimeout ===&lt;br /&gt;
{{anchor|.3Cplaylisttimeout.3E}}&lt;br /&gt;
The timeout, in seconds, before item failure.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlisttimeout&amp;gt;20&amp;lt;/playlisttimeout&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicdatabase/videodatabase ===&lt;br /&gt;
{{anchor|.3Cmusicdatabase.3E/.3Cvideodatabase.3E|musicdatabase/videodatabase|database tags music/video/tv/epg/adsp}}&lt;br /&gt;
{{main|MySQL}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
Allows advanced customization of the default database settings for music, video, TV, EPG, and ADSP databases.&lt;br /&gt;
&lt;br /&gt;
:{{note| &#039;&#039;&#039;It is HIGHLY recommended that you not attempt to place an sqlite3 database outside of kodi&#039;s path.  sqlite3 contains no filesystem abstraction, so this will plain break on any non-local (as far as Kodi is concerned) paths.  Use this for mysql only.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parent tags:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
{{MySQL warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Child tags: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;type&amp;gt;&lt;br /&gt;
: &#039;&#039;Required&#039;&#039; - Can be either &amp;quot;sqlite3&amp;quot; or &amp;quot;mysql&amp;quot; (default: sqlite3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;host&amp;gt;&lt;br /&gt;
:&#039;&#039;Required&#039;&#039; - &lt;br /&gt;
* sqlite3: defines the relative path to the database file (eg. /usr/local/kodi/databases).&lt;br /&gt;
* mysql: defines the host of the mysql socket (eg. localhost, 192.168.0.1, etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;port&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the port of the mysql socket (default: 3306)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;name&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
:by default &amp;quot;MyVideos&amp;quot;+DB number will be used.&lt;br /&gt;
* sqlite3: defines the name of the database file to read from, excluding the &amp;quot;.db&amp;quot; extension.&lt;br /&gt;
* mysql: defines the name of the database to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;user&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;pass&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the password for the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;compression&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - Defaults to false. Set to &amp;quot;true&amp;quot; to enable MySQL compression protocol. Performance benefit is going to be largely dependent on the network bandwidth, latency between database and clients and on the size of the result sets. [https://github.com/xbmc/xbmc/pull/6484]&lt;br /&gt;
: {{Note|Slower clients (such as the RPi and others) won&#039;t benefit from it as the zlib de-compression overhead is higher than the actual compression savings}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;key&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;cert&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ca&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;capath&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ciphers&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) Configure a database for MySQL.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;videodatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;mysql&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;192.168.0.10&amp;lt;/host&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;kodi_video&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;user&amp;gt;kodi&amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;pass&amp;gt;kodi&amp;lt;/pass&amp;gt;&lt;br /&gt;
&amp;lt;/videodatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Configure a database for an sqlite database.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicdatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;sqlite3&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;/usr/local/share/kodi/databases&amp;lt;/host&amp;gt;&lt;br /&gt;
&amp;lt;/musicdatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externalplayer ===&lt;br /&gt;
{{anchor|.3Cexternalplayer.3E}}&lt;br /&gt;
{{see|External players}}&lt;br /&gt;
&lt;br /&gt;
== Music settings ==&lt;br /&gt;
&lt;br /&gt;
=== musicextensions ===&lt;br /&gt;
{{anchor|.3Cmusicextensions.3E}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;musicextensions&amp;quot; /&amp;gt;&lt;br /&gt;
Default extensions for MUSIC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.nsv .m4a .flac .aac .strm .pls .rm .rma .mpa .wav .wma .ogg .mp3 .mp2 .m3u .gdm .imf .m15 .sfx&lt;br /&gt;
.uni .ac3 .dts .aif .aiff .wpl .ape .mac .mpc .mp+ .mpp .shn .wv .dsp .xsp .xwav .waa .wvs .wam&lt;br /&gt;
.gcm .idsp .mpdsp .mss .spt .rsd .sap .cmc .cmr .dmc .mpt .mpd .rmt .tmc .tm8 .tm2 .oga .url&lt;br /&gt;
.pxml .tta .rss .wtv .mka .tak .opus .dff .dsf .m4b .cue .zip .rar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is possible to add or remove extensions for Music, using the following XML tags. Useful if you keep, say, FLAC and mp3 versions of music in the same folder. The &amp;lt;remove&amp;gt; tag can be used to remove mp3 from being listed in the library, leaving only the higher quality FLAC being displayed.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;musicextensions&amp;gt;&lt;br /&gt;
   &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
   &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
 &amp;lt;/musicextensions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;musicextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cddbaddress ===&lt;br /&gt;
{{anchor|.3Ccddbaddress.3E}}&lt;br /&gt;
The address of the online CDDb database.  You may set this to another freedb mirror if there is a more suitable one.  &lt;br /&gt;
&lt;br /&gt;
Default: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;gt;&lt;br /&gt;
&amp;lt;cddbaddress&amp;gt;freedb.freedb.org&amp;lt;/cddbaddress&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== songinfoduration ===&lt;br /&gt;
{{anchor|.3Csonginfoduration.3E}}&lt;br /&gt;
This controls how long the song information will remain onscreen when the song changes during visualisations.  The valid range is &amp;quot;1&amp;quot; to &amp;quot;Indefinite (0)&amp;quot;, in seconds.  This does not include the duration of any transition effects. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;songinfoduration&amp;gt;10&amp;lt;/songinfoduration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicfilenamefilters ===&lt;br /&gt;
{{anchor|.3Cmusicfilenamefilters.3E}}&lt;br /&gt;
Contains filters to match music information (artist, title etc.) from a tag-less music filename.  The first &amp;lt;filter&amp;gt; to match completely is used. Matched items include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%A - Artist&lt;br /&gt;
%T - Title&lt;br /&gt;
%B - Album&lt;br /&gt;
%N - Track number&lt;br /&gt;
%S - Part of set (disk number)&lt;br /&gt;
%D - Duration&lt;br /&gt;
%G - Genre&lt;br /&gt;
%Y - Year&lt;br /&gt;
%R - Rating&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicfilenamefilters&amp;gt;&lt;br /&gt;
  &amp;lt;filter&amp;gt;%A - %T&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/musicfilenamefilters&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musiclibrary ===&lt;br /&gt;
Options specific to the Music Library&lt;br /&gt;
&amp;lt;section begin=&amp;quot;MusicLibrary&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
&amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;true&amp;lt;/allitemsonbottom&amp;gt;       &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt;     &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;albumformat&amp;gt;%B - %Y&amp;lt;/albumformat&amp;gt;              &amp;lt;!-- album label template, default is &amp;quot;%B&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;prioritiseapetags&amp;gt;true&amp;lt;/prioritiseapetags&amp;gt;     &amp;lt;!-- prioritise APEv2 tags over ID3v1/2 tags, default is false. --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;              &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* See Note below--&amp;gt;&lt;br /&gt;
    &amp;lt;artistseparators&amp;gt;                              &amp;lt;!-- separator used for multiple artists. Note that spaces are used for some separators. See Note below--&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;;&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;:&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt;|&amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt; feat. &amp;lt;/separator&amp;gt;&lt;br /&gt;
        &amp;lt;separator&amp;gt; ft. &amp;lt;/separator&amp;gt;&lt;br /&gt;
    &amp;lt;/artistseparators&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt;                        &amp;lt;!--0 results in using the current datetime when adding a song;&lt;br /&gt;
                                                        1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                                        2 results in using the newer datetime of the file&#039;s mtime and ctime   --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- The following tags are available from v18 and later releases --&amp;gt;                                                    &lt;br /&gt;
    &amp;lt;promptfulltagscan&amp;gt;false&amp;lt;/promptfulltagscan&amp;gt;    &amp;lt;!-- prompt for full tag rescan, regardless of files being unchanged, every time scanning is initiated--&amp;gt;&lt;br /&gt;
    &amp;lt;useartistsortname&amp;gt;false&amp;lt;/useartistsortname&amp;gt;    &amp;lt;!-- When &amp;quot;true&amp;quot; the Artist Sort Name is used in sorting of songs, albums and artists. Artists can be sorted in surname. Default is &amp;quot;false&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;artistextraart&amp;gt;                                &amp;lt;!-- Nominate extended ARTIST artwork that can be automatically picked up from local image files --&amp;gt;&lt;br /&gt;
        &amp;lt;arttype&amp;gt;clearlogo&amp;lt;/arttype&amp;gt;                &amp;lt;!-- Insert the artwork type. clearlogo/banner/discart etc --&amp;gt;&lt;br /&gt;
        &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/artistextraart&amp;gt;&lt;br /&gt;
    &amp;lt;albumextraart&amp;gt;                                 &amp;lt;!-- Nominate extended ALBUM artwork that can be automatically picked up from local image files --&amp;gt;&lt;br /&gt;
        &amp;lt;arttype&amp;gt;discart&amp;lt;/arttype&amp;gt;                  &amp;lt;!-- Insert the artwork type. clearlogo/banner/discart etc --&amp;gt;&lt;br /&gt;
        &amp;lt;arttype&amp;gt;backcover&amp;lt;/arttype&amp;gt;&lt;br /&gt;
    &amp;lt;/albumextraart&amp;gt;&lt;br /&gt;
&amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Note|Changing the &amp;lt;itemseparator&amp;gt; or &amp;lt;artistseparators&amp;gt; will only affect newly added items. A rescan won&#039;t change the existing ones. Remove the Source(s) or delete the Music DB and rebuild. This process should be made easier from v18 and up using &amp;lt;promptfulltagscan&amp;gt;}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;MusicLibrary&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Photos settings ==&lt;br /&gt;
&lt;br /&gt;
=== pictureextensions ===&lt;br /&gt;
{{anchor|.3Cpictureextensions.3E}}&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Pictures window.&lt;br /&gt;
&lt;br /&gt;
Default extensions for PICTURES:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.png .jpg .jpeg .bmp .gif .ico .tif .tiff .tga .pcx .cbz .cbr .rss .webp .jp2 .apng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/pictureextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pictureexcludes ===&lt;br /&gt;
{{anchor|.3Cpictureexcludes.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from being displayed in My Pictures using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureexcludes&amp;gt;  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in My Pictures --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;small&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/pictureexcludes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== slideshow ===&lt;br /&gt;
{{anchor|.3Cslideshow.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;slideshow&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to pan images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;panamount&amp;gt;2.5&amp;lt;/panamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to zoom images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;zoomamount&amp;gt;5.0&amp;lt;/zoomamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to compensate (zoom) images to attempt to reduce black bars. --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Results in cropping of the longer length of the image in order to reduce the black bars on the shorter length of the image.  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Defaults to 20. --&amp;gt;&lt;br /&gt;
  &amp;lt;blackbarcompensation&amp;gt;20&amp;lt;/blackbarcompensation&amp;gt;  &lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network settings ==&lt;br /&gt;
&lt;br /&gt;
=== samba ===&lt;br /&gt;
{{anchor|.3Csamba.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;samba&amp;gt;&lt;br /&gt;
  &amp;lt;doscodepage&amp;gt;&amp;lt;/doscodepage&amp;gt;  &amp;lt;!-- code page to use for filenames --&amp;gt;&lt;br /&gt;
  &amp;lt;clienttimeout&amp;gt;10&amp;lt;/clienttimeout&amp;gt;  &amp;lt;!-- timeout (in seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;statfiles&amp;gt;true&amp;lt;/statfiles&amp;gt;  &amp;lt;!-- Set to false to disable smb stat() on files to speed up listings of large directories (over slow links) --&amp;gt;&lt;br /&gt;
&amp;lt;/samba&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hosts ===&lt;br /&gt;
{{anchor|.3Cfhosts.3E}}&lt;br /&gt;
Static dns entries which take precedence over your dns server.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hosts&amp;gt;&lt;br /&gt;
  &amp;lt;entry name=&amp;quot;HOSTNAME&amp;quot;&amp;gt;IPADDRESS&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/hosts&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== network ===&lt;br /&gt;
{{anchor|.3Cnetwork.3E}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;network&amp;gt;&lt;br /&gt;
  &amp;lt;curlclienttimeout&amp;gt;10&amp;lt;/curlclienttimeout&amp;gt;  &amp;lt;!-- Timeout in seconds for libcurl (http/ftp) connections --&amp;gt;&lt;br /&gt;
  &amp;lt;curllowspeedtime&amp;gt;20&amp;lt;/curllowspeedtime&amp;gt;  &amp;lt;!-- Time in seconds for libcurl to consider a connection lowspeed --&amp;gt;&lt;br /&gt;
  &amp;lt;curlretries&amp;gt;2&amp;lt;/curlretries&amp;gt;             &amp;lt;!-- Amount of retries for certain failed libcurl operations (e.g. timeout) --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxyusername&amp;gt;&amp;lt;/httpproxyusername&amp;gt;  &amp;lt;!-- username for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxypassword&amp;gt;&amp;lt;/httpproxypassword&amp;gt;  &amp;lt;!-- password for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
&amp;lt;/network&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In Kodi v17, the three buffer settings are removed from the &amp;lt;code&amp;gt;&amp;lt;network&amp;gt;&amp;lt;/code&amp;gt; tag and now placed under the new &amp;lt;code&amp;gt;&amp;lt;cache&amp;gt;&amp;lt;/code&amp;gt; tag. See &#039;&#039;&#039;[[#cache]]&#039;&#039;&#039; for full details.}}&lt;br /&gt;
&lt;br /&gt;
=== cache ===&lt;br /&gt;
{{see also|HOW-TO:Modify the cache}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cache&amp;gt;&lt;br /&gt;
  &amp;lt;memorysize&amp;gt;0&amp;lt;/memorysize&amp;gt;  &amp;lt;!-- number of bytes used for buffering streams in memory &lt;br /&gt;
    When set to 0 the cache will be written to disk instead of RAM --&amp;gt;&lt;br /&gt;
  &amp;lt;buffermode&amp;gt;0&amp;lt;/buffermode&amp;gt;  &amp;lt;!-- Choose what to buffer:&lt;br /&gt;
     0) Buffer all internet filesystems (like &amp;quot;2&amp;quot; but additionally also ftp, webdav, etc.) (default)&lt;br /&gt;
     1) Buffer all filesystems (including local)&lt;br /&gt;
     2) Only buffer true internet filesystems (streams) (http, etc.)&lt;br /&gt;
     3) No buffer --&amp;gt;&lt;br /&gt;
  &amp;lt;readfactor&amp;gt;4.0&amp;lt;/readfactor&amp;gt; &amp;lt;!-- this factor determines the max readrate in terms of readfactor * avg bitrate of a video file. &lt;br /&gt;
This can help on bad connections to keep the cache filled. It will also greatly speed up buffering. Default value 4.0. --&amp;gt;&lt;br /&gt;
&amp;lt;/cache&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airtunesport ===&lt;br /&gt;
{{anchor|.3Cairtunesport.3E}}&amp;lt;section begin=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the defalt listening port of the AirTunes server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airplayport ===&lt;br /&gt;
{{anchor|.3Cairplayport.3E}}&amp;lt;section begin=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the default listening port of the AirPlay server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File system settings ==&lt;br /&gt;
&lt;br /&gt;
=== packagefoldersize ===&lt;br /&gt;
&amp;lt;section begin=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
{{anchor|.3Cpackagefoldersize.3E}}&lt;br /&gt;
{{xml setting&lt;br /&gt;
 | tag name = packagefoldersize&lt;br /&gt;
 | option type = numerical&lt;br /&gt;
 | option values = &lt;br /&gt;
 | default values = 200&lt;br /&gt;
 | platform = all&lt;br /&gt;
 | XBMC version = 12&lt;br /&gt;
 | description = The amount (in megabytes) of add-on zip packages saved from previous add-on installs. These packages are mainly used for the [[add-on]] rollback feature. Increasing the size should increase the amount of past versions saved. Defaults to 200 MB.&lt;br /&gt;
 | example = Example: &amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;packagefoldersize&amp;gt;200&amp;lt;/packagefoldersize&amp;gt; &amp;lt;!-- this example would keep up to 200MB of add-on packages. --&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== detectasudf ===&lt;br /&gt;
{{anchor|.3Cdetectasudf.3E}}&lt;br /&gt;
Set to true if you wish to detect joint ISO9660/UDF disks as UDF.  &lt;br /&gt;
&lt;br /&gt;
Default: False&lt;br /&gt;
&lt;br /&gt;
=== pathsubstitution ===&lt;br /&gt;
{{anchor|.3Cpathsubstitution.3E}}&lt;br /&gt;
{{main|Path substitution}}&lt;br /&gt;
Path substitutions are for use for redirecting file paths.  These are processed in order, and are useful for substituting an absolute path on a PC with a path suitable for Kodi to handle.  &lt;br /&gt;
&lt;br /&gt;
Default: No path substitutions defined.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pathsubstitution&amp;gt;&lt;br /&gt;
  &amp;lt;substitute&amp;gt;&lt;br /&gt;
    &amp;lt;from&amp;gt;G:\dvds\&amp;lt;/from&amp;gt;&lt;br /&gt;
    &amp;lt;to&amp;gt;smb://somecomputer/g-share/dvds/&amp;lt;/to&amp;gt; &amp;lt;!-- Note the difference between the usage of forward and backslashes --&amp;gt;&lt;br /&gt;
  &amp;lt;/substitute&amp;gt;&lt;br /&gt;
&amp;lt;/pathsubstitution&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input control settings ==&lt;br /&gt;
&lt;br /&gt;
=== remotedelay ===&lt;br /&gt;
{{anchor|.3Cremotedelay.3E}}&lt;br /&gt;
The repeat delay for a LIRC remote control. A delay value between 1 and 20 before a remote button starts repeating on a long keypress (i.e. continuously sending button pushes while it&#039;s held down). &lt;br /&gt;
&lt;br /&gt;
Default: 3&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remotedelay&amp;gt;10&amp;lt;/remotedelay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== controllerdeadzone ===&lt;br /&gt;
{{anchor|.3Ccontrollerdeadzone.3E}}&lt;br /&gt;
This advanced settings has been removed. See [[HOW-TO:Controller deadzone]].&lt;br /&gt;
&lt;br /&gt;
=== enablemultimediakeys ===&lt;br /&gt;
{{anchor|.3Cenablemultimediakeys.3E}}&lt;br /&gt;
This setting only has any effect on Windows versions of Kodi, and only applies to builds from 28th May 2011 onwards.&lt;br /&gt;
In Windows the multimedia keys generate a WM_APPCOMMAND message in addition the keypress. Kodi processes both keypresses and the WM_APPCOMMAND messages, and the end result would be that the command is executed twice. To avoid this, by default multimedia keypresses are disabled. Although it should rarely be necessary, the enablemultimediakeys setting allows you to enable the multimedia keys.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;enablemultimediakeys&amp;gt;true&amp;lt;/enablemultimediakeys&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seeksteps ===&lt;br /&gt;
{{Main|Skip steps}}&lt;br /&gt;
&lt;br /&gt;
This setting changes which increments are available in the settings GUI for additive seeking. Note that &amp;lt;code&amp;gt;&amp;lt;seeksteps&amp;gt;&amp;lt;/code&amp;gt; is not used to actually choose which seek steps are enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;seeksteps&amp;gt;7, 15, 30, 60, 180, 300, 600, 900, 1800&amp;lt;/seeksteps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{editor note|the defaults need to be updated for seeksteps.}}&lt;br /&gt;
&lt;br /&gt;
=== touchscreen ===&lt;br /&gt;
{{anchor|.3Ctouchscreen.3E}}&lt;br /&gt;
This setting allows you to move/align the origin of the touch screen with the origin of the display used. If touch input does not result in a correct movement of the mouse pointer, the behaviour can be corrected with an offset and a stretch/compress factor.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;touchscreen&amp;gt;&lt;br /&gt;
		&amp;lt;x_offset&amp;gt;0&amp;lt;/x_offset&amp;gt; &amp;lt;!-- set pixel x offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;y_offset&amp;gt;0&amp;lt;/y_offset&amp;gt; &amp;lt;!-- set pixel y offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;x_stretch_factor&amp;gt;1.0&amp;lt;/x_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch x axis--&amp;gt;&lt;br /&gt;
		&amp;lt;y_stretch_factor&amp;gt;1.0&amp;lt;/y_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch y axis--&amp;gt;&lt;br /&gt;
    &amp;lt;/touchscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other interface settings ==&lt;br /&gt;
&lt;br /&gt;
=== window ===&lt;br /&gt;
{{anchor|.3Cwindow.3E}}&lt;br /&gt;
{{note|This is a &amp;quot;hidden&amp;quot; guisettings.xml setting (defined by the mouse moving the window size), but it is mentioned here because it is a particularly useful override when used in advancedsettings.xml}}&lt;br /&gt;
This allows you to manually set the default size of Kodi&#039;s windowed mode.  If you resize the window, it will return to the set size when restarting.&lt;br /&gt;
&lt;br /&gt;
WIDTH and HEIGHT are the values for each dimension, in pixels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;window&amp;gt;&lt;br /&gt;
    &amp;lt;width&amp;gt;WIDTH&amp;lt;/width&amp;gt;&lt;br /&gt;
    &amp;lt;height&amp;gt;HEIGHT&amp;lt;/height&amp;gt;&lt;br /&gt;
&amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== restrictcapsmask ===&lt;br /&gt;
{{anchor|.3Crestrictcapsmask.3E}}&lt;br /&gt;
Windows only. A bitmask to prevent Kodi from using detected texture capabilities of the GPU. This helps work around buggy hardware/drivers.&lt;br /&gt;
&lt;br /&gt;
1: prevent the use of compressed textures (DXT1, DXT3, DXT5)&lt;br /&gt;
2: prevent the use of non-power-of-two dimensions for textures&lt;br /&gt;
4: prevent the use of compressed textures with non-power-of-two dimensions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;restrictcapsmask&amp;gt;0&amp;lt;/restrictcapsmask&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== algorithmdirtyregions ===&lt;br /&gt;
{{anchor|.3Calgorithmdirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;{{note|Some GPU/hardware configurations will have some minor issues (such as a visual &amp;quot;flicker&amp;quot;). For those situations try mode 2 or use the default (mode 3, which requires no advancedsetting). Almost all ARM-based devices (such as [[Android]]) willl likely have flickering issues.}}&lt;br /&gt;
 &lt;br /&gt;
Enable dirty-region processing. Dirty regions are any parts of the screen that have changed since the last frame. By not re-rendering what hasn&#039;t changed the GUI can be sped up. Because all GPUs work differently, only Mode 3, combined with nofliptimeout=0, is guaranteed to work for everyone without flickering issues. This mode will reduce CPU/GPU usage, but will not increase GUI speed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! value !! result !! description&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| Off&lt;br /&gt;
| The entire viewport is always rendered.&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
|Union&lt;br /&gt;
|All dirty regions are grouped into the smallest possible rectangle. This is typically the fastest mode for slower GPUs due to only making one pass.&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| {{nowrap|Cost reduction}}&lt;br /&gt;
| Each dirty region is presented separately, in as many passes as there are regions.&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| {{nowrap|Whole Screen}}&lt;br /&gt;
| The entire screen is rendered if there are any dirty regions. This, combined with nofliptimeout is a safe default for drivers that clear buffer contents (manifests as blinking or vibrating images). &#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|}&amp;lt;section end=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;algorithmdirtyregions&amp;gt;1&amp;lt;/algorithmdirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== visualizedirtyregions ===&lt;br /&gt;
{{anchor|.3Cvisualizedirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;Enable dirty-region visualization. Paints a rectangle over marked controls.&lt;br /&gt;
&lt;br /&gt;
* true: on&lt;br /&gt;
* false: off &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{note|This is only a development mode and isn&#039;t of use to normal users.}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;visualizedirtyregions&amp;gt;true&amp;lt;/visualizedirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== showexitbutton ===&lt;br /&gt;
{{anchor|.3Cshowexitbutton.3E}}&lt;br /&gt;
Setting to hide the exit button, useful for people running appliance based setups where exit would only confuse/complicate the user. Modifiable via the advancedsettings.xml by setting showexitbutton to false, default is true (show)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;showexitbutton&amp;gt;true&amp;lt;/showexitbutton&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fullscreen ===&lt;br /&gt;
{{anchor|.3Cfullscreen.3E}}&lt;br /&gt;
Starts Kodi in full screen (check resolutions!).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fullscreen&amp;gt;false&amp;lt;/fullscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== splash ===&lt;br /&gt;
{{anchor|.3Csplash.3E}}&lt;br /&gt;
Set to false if you wish to disable the startup splash image. Defaults to true.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;splash&amp;gt;true&amp;lt;/splash&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cputempcommand ===&lt;br /&gt;
{{anchor|.3Ccputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get CPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia and Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sed -e &#039;s/\([0-9]*\)[0-9]\{3\}.*/\1 C/&#039; /sys/class/thermal/thermal_zone0/temp&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;echo &amp;quot;$(sensors -u | tail -n64 | grep temp1_input | awk &#039;{print $2 }&#039; |awk &#039;{printf(&amp;quot;%d\n&amp;quot;,$1 + 0.5);}&#039;) C&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sensors|sed -ne &amp;quot;s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== gputempcommand ===&lt;br /&gt;
{{anchor|.3Cgputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get GPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-settings -tq gpuCoreTemp) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-smi -q -d TEMPERATURE | grep Gpu | cut -c35-36) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d &amp;quot;-&amp;quot; | cut -f 1 -d &amp;quot;.&amp;quot; | sed -e &amp;quot;s, ,,&amp;quot; | sed &#039;s/$/ C/&#039;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;u&amp;gt;For Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/opt/vc/bin/vcgencmd measure_temp | sed -e &amp;quot;s/temp=//&amp;quot; -e &amp;quot;s/\..*&#039;/ /&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== glrectanglehack ===&lt;br /&gt;
{{anchor|.3Cglrectanglehack.3E}}&lt;br /&gt;
Problems with ghosting or videos which are only played back in the left upper quarter? The following ATI hack may solve it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;glrectanglehack&amp;gt;yes&amp;lt;/glrectanglehack&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== alwaysontop ===&lt;br /&gt;
{{anchor|.3Calwaysontop.3E}}&lt;br /&gt;
Added in XBMC v9.11 (Windows OS only). Keeps Kodi always on top when windowed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;alwaysontop&amp;gt;yes&amp;lt;/alwaysontop&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is also a fake fullscreen GUI option in Kodi&#039;s settings.&lt;br /&gt;
&lt;br /&gt;
== Removed tags ==&lt;br /&gt;
{{anchor|Recently removed tags}}&lt;br /&gt;
* {{anchor|.3Cthumbsize.3E}}&#039;&#039;&#039;&amp;lt;thumbsize&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#imageres|imageres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cfanartheight.3E}}&#039;&#039;&#039;&amp;lt;fanartheight&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#fanartres|fanartres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cdvdthumbs.3E}}&#039;&#039;&#039;&amp;lt;dvdthumbs&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbusydialogdelayms.3E}}&#039;&#039;&#039;&amp;lt;busydialogdelayms&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbginfoloadermaxthreads.3E}}&#039;&#039;&#039;&amp;lt;bginfoloadermaxthreads&amp;gt;&#039;&#039;&#039; - removed in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;showepginfoonselect&amp;gt;&#039;&#039;&#039; - replaced by a GUI setting in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;resample&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;forceDirectSound&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiophile&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiosinkbufferdurationmsec&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;allowtranscode44100&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;streamsilence&amp;gt;&#039;&#039;&#039; - These were various sub-tags for &amp;lt;audio&amp;gt; that were removed in v13 Gotham and either replaced by GUI settings or were no longer needed.&lt;br /&gt;
* {{anchor|.3Cenableairtunesdebuglog.3E}}&#039;&#039;&#039;&amp;lt;enableairtunesdebuglog&amp;gt;&#039;&#039;&#039; - replaced by a GUI option in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videoDisableHi10pMultithreading&amp;gt;&#039;&#039;&#039; - renamed to &amp;lt;disableswmultithreading&amp;gt; in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideallitems&amp;gt;&#039;&#039;&#039; - For both the &amp;lt;code&amp;gt;&amp;lt;videolibrary&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;musiclibrary&amp;gt;&amp;lt;/code&amp;gt; sections, this is replaced by a GUI option in v15 Isengard&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;SmallStepBackSeconds&amp;gt;&#039;&#039;&#039; - In v15 the &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; [[action ID]] has been replaced by &amp;lt;code&amp;gt;seek(-7)&amp;lt;/code&amp;gt; in default keymaps. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details. When the original &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; action ID is used it defaults to the first backwards [[skip steps|additive seeking value]].&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;timeseekforward&amp;gt;/&amp;lt;timeseekbackward&amp;gt;&#039;&#039;&#039; - In v15 these tags are replaced by GUI options via [[skip steps|additive seeking]], which is configured in the GUI. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details.&lt;br /&gt;
* {{anchor|.3Ckaraoke.3E}}&#039;&#039;&#039;&amp;lt;karaoke&amp;gt;&#039;&#039;&#039; - In v16 all of the karaoke features in Kodi were removed.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useddsfanart&amp;gt;&#039;&#039;&#039; - removed in v17 Krypton.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;readbufferfactor&amp;gt;&#039;&#039;&#039; - In v17 &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; is renamed to &#039;&#039;&#039;&amp;lt;memorysize&amp;gt;&#039;&#039;&#039; and &amp;lt;code&amp;gt;&amp;lt;readbufferfactor&amp;gt;&amp;lt;/code&amp;gt; is renamed to &amp;lt;code&amp;gt;&amp;lt;readfactor&amp;gt;&amp;lt;/code&amp;gt;. In addition, all three buffer related settings in &amp;lt;network&amp;gt; are moved out of &amp;lt;network&amp;gt; and into a new &amp;lt;cache&amp;gt; parent tag.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;minvideocachelevel&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;minaudiocachelevel&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;cacheindvdplayer&amp;gt;&#039;&#039;&#039; have been removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useffmpegvda&amp;gt;&#039;&#039;&#039; - Tag was only used for development testing. Removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nofliptimeout&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;blackbarcolour&amp;gt;&#039;&#039;&#039; - Removed in v17 (maybe?)&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;disableswmultithreading&amp;gt;&#039;&#039;&#039; - Removed in v17 (maybe?)&lt;br /&gt;
* {{anchor|.3Cmeasurerefreshrate.3E}}&#039;&#039;&#039;&amp;lt;measurerefreshrate&amp;gt;&#039;&#039;&#039; - Removed in v17 or v18?&lt;br /&gt;
* {{anchor|.3Cmyth.3E}}&#039;&#039;&#039;&amp;lt;myth&amp;gt;&#039;&#039;&#039; - Removed sometime between v16 to v18&lt;br /&gt;
* {{anchor|.3Ctuxbox.3E}}&#039;&#039;&#039;&amp;lt;tuxbox&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;backgroundupdate&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideemptyseries&amp;gt;&#039;&#039;&#039; - Replaced by a GUI option.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;mymovies&amp;gt;&#039;&#039;&#039; and child tag &#039;&#039;&#039;&amp;lt;categoriestogenres&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;albumssortbyartistthenyear&#039;&#039;&#039;&amp;gt; - Removed&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;albumformatright&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* {{anchor|.3Cremoterepeat.3E}}&#039;&#039;&#039;&amp;lt;remoterepeat&amp;gt;&#039;&#039;&#039; - Removed&lt;br /&gt;
* {{anchor|.3Callowd3d9ex.3E}}&#039;&#039;&#039;&amp;lt;allowd3d9ex&amp;gt;&#039;&#039;&#039; and {{anchor|.3Cforced3d9ex.3E}}&#039;&#039;&#039;&amp;lt;forced3d9ex&amp;gt;&#039;&#039;&#039; - Removed sometime between v16 to v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;lingertime&amp;gt;&#039;&#039;&#039; - Replaced by a GUI setting in v18&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;forcevaapienabled&amp;gt;&#039;&#039;&#039; - Removed in v18&lt;br /&gt;
&lt;br /&gt;
== guisettings.xml settings ==&lt;br /&gt;
You can also define the settings normally defined in the GUI (and stored in guisettings.xml) in advancedsettings.xml.  Most guisettings.xml settings defined in advancedsettings.xml will override the guisettings.xml values, and the settings will be removed completely from the interface.&lt;br /&gt;
&lt;br /&gt;
The easiest way to include a guisettings.xml setting is to first change the setting in the interface to the value that you want, and then open the &#039;&#039;&#039;[[userdata]]/guisettings.xml&#039;&#039;&#039; file and find the XML entry that corresponds to that setting.&lt;br /&gt;
&lt;br /&gt;
Then just add that entry to the advancedsettings.xml file.&lt;br /&gt;
&lt;br /&gt;
For instance, to set the Font Character Set (found in the appearance setting, in the Look and Feel section), you&#039;d open up guisettings.xml and find:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;lookandfeel&amp;gt;&lt;br /&gt;
    &amp;lt;charset&amp;gt;Hebrew (Windows)&amp;lt;/charset&amp;gt;&lt;br /&gt;
  &amp;lt;/lookandfeel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simply take that entry and place it in advancedsettings.xml.  The option in Kodi&#039;s interface for the character set will then no longer be visible, and Kodi will always use the Hebrew (Windows) character set.&lt;br /&gt;
&lt;br /&gt;
{{Updated|17}}&lt;br /&gt;
{{DISPLAYTITLE:advancedsettings.xml}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=130846</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=130846"/>
		<updated>2017-09-22T18:07:11Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Correct NFO section (it was totally inaccurate) but not sure this info should be here at all&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music Library Scanning Options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Media &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
and look at the options available:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[File:Music-Library-settings.jpg|800px]] --&amp;gt;&lt;br /&gt;
[[File:Settings_media_music_library.JPG|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Show song and album artists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(This option was previously called &#039;Include Artists who appear only on compilation albums&#039;)&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
The music library is created by scanning metadata that is embedded in the music files, not by looking at the file names or the folders they are located in. Kodi reads the following tags. The Kodi version shows that the tag was added from that version onwards, and the actual ag name is given in the various tag formats supported. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Version&lt;br /&gt;
! Vorbis (.Flac)&lt;br /&gt;
! ID3v2 (.mp3)&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
Having created the music library entries, Kodi can then scrape additional artist and album data from either online sources or from local NFO files. This can be automated as part of update library by enabling &amp;quot;Fetch additional information on update&amp;quot; setting. However, it can be best to scan music files and check the resulting library first, before scraping additional information.&lt;br /&gt;
&lt;br /&gt;
The Universal Album Scraper and The Universal Artist Scraper settings allow the user to choose which online sources are used for different pices of information.&lt;br /&gt;
&lt;br /&gt;
TADB - The Audio Database&lt;br /&gt;
AM - Allmusic&lt;br /&gt;
MB - Musicbrainz&lt;br /&gt;
&lt;br /&gt;
The additional information scraped is:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - TADB/AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
* Votes&lt;br /&gt;
&lt;br /&gt;
Notice that Genres, Year, Compilation and Label may have been derrived from tag data and these will take prescidence. These values can be overwritten by the scarped values if &amp;quot;Prefer Online Information&amp;quot; setting is enabled. But note that if an album is mis-idenitified by the scraper then with &amp;quot;Prefer Online Information&amp;quot; the album artists will also be replaced with those the scraper found.&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
MusicBrainz id tags for artists and albums can **not** be added using [[NFO files]]. However both album.nfo and artist.nfo files can contain the artist or album (release) MusicBrainz id, or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=NFO_files/Music&amp;diff=130845</id>
		<title>NFO files/Music</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=NFO_files/Music&amp;diff=130845"/>
		<updated>2017-09-22T14:14:07Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Technical Details */  Correct music files tags not stored in DB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;width:280px&amp;quot;&lt;br /&gt;
! Steps to create your Music Library&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;1. [[Music_tagging|Music File Tagging]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;2. Scanning Music Into Library&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;3. Scraping Additional Music Information&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &#039;&#039;&#039;[[NFO_files|NFO Files]]&#039;&#039;&#039;&lt;br /&gt;
:*&#039;&#039;&#039;[[NFO files/Music|Music]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;5. [[Music_artwork]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Report NFO corrections:&amp;lt;br /&amp;gt;&lt;br /&gt;
[https:// here in the forum]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{mininav|[[NFO_files]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
{{Red|&#039;&#039;&#039;As the Music section of Kodi has many differences to the Video section of Kodi, please read this section to ensure your music and artwork are correctly scraped and displayed.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Understanding the Music Library ==&lt;br /&gt;
{{#lst:Music_artwork|understanding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding Music to Library ==&lt;br /&gt;
{{#lst:Music_artwork|adding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music nfo Specific Requirements ==&lt;br /&gt;
*A number of database fields can be populated initially by music file tags, but then be overwritten by online or nfo scraping. Whether this occurs depends on the setting &#039;&#039;&#039;Prefer Online Information&#039;&#039;&#039; in &#039;&#039;Settings&amp;gt;Media Settings&amp;gt;Music&#039;&#039;. If &#039;&#039;disabled&#039;&#039;, these fields will remain with the data scanned from the Music File tags. If &#039;&#039;enabled&#039;&#039; these fields will be overwritten by information obtained from either the online or local nfo file scrape. The affected fields are shown below in the section [[NFO_files/Music#Available_nfo_Tags|Available nfo Tags]] &lt;br /&gt;
*In the &#039;&#039;album.nfo&#039;&#039; the top level &amp;lt;artist&amp;gt; tag has been deprecated and is not shown in any sample nfo files. Applies to v12 and prior.&lt;br /&gt;
*There is no XML tag for &#039;&#039;votes&#039;&#039; of individual Songs. This can only come from the music file tags. Album &#039;&#039;votes&#039;&#039; can come from either online or local nfo scraping.&lt;br /&gt;
*FLAC rating contained within the Music File Tag is scored out of 100. Kodi converts this value to its equivalent value out of 10. Values less than 10 in the FLAC music file tag will return a rating of 0 in Kodi.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Placement =&lt;br /&gt;
Music will fetch additional album and album artist information from nfo files.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album&#039;&#039;&#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there. See the first table below.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album artist&#039;&#039;&#039; information each artist needs a separate artist.nfo file located in what Kodi determines as the unique common folder for that artist. Kodi does not fetch additional artist data for artists that only feature on songs, either on compilation albums or as guest artists on songs in albums by others, and you do not have any albums by them in your collection.&lt;br /&gt;
&lt;br /&gt;
{{note|There are weaknesses in the way that Kodi determines the location of the artist folder. It looks for the folder that is common to all the songs with that album artist, the name of that folder is irrelevent. If you have multiple albums by an artist all under an artist folder then this works perfectly. However the algorithm does not work for collaboration albums, those that have more than one album artist e.g. &amp;quot;Riding with the King&amp;quot; by Eric Clapton and BB King, or classical music with composer, orchestra and conductor given as the album artist. Also if you have not kept all songs by an artist under a unique folder, then the artist directory will probably be mis-identified. The result is that Kodi can find the wrong artist.nfo file, and give the artist some other artist&#039;s information, or fail to fine the artist.nfo you created}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Artist *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Artist as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |artist.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\artist.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Album *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Album as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |album.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\Crystal Visions\album.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*The PERFORMER tag can contain many different kinds of musician tags, including ARTIST, ARRANGER, COMPOSER, CONDUCTOR, DJMIXER, ENGINEER, LYRICIST, MIXER, PRODUCER, REMIXER and PERFORMER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available nfo Tags =&lt;br /&gt;
The following two tables list the available tags that can be used in each nfo file. The Album nfo section includes an example nfo for collaboration type albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! NFO (xml) Tag || Required || Overwrites || Multiple ** || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;artist&amp;gt;&amp;lt;/artist&amp;gt; || Yes || No || No || The top level parent tag for the nfo file. All other tags must be contained within these two tags&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;&amp;lt;/name&amp;gt; || No || Yes || No || Overwrites artist name in artist table, when &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;. Does not change that name anywhere else &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt; || No || No || No || Exported but not imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || No || Yes || Artist genre is not related to song genre. &amp;lt;br /&amp;gt;Used for display only. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;yearsactive&amp;gt;&amp;lt;/yearsactive&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;instruments&amp;gt;&amp;lt;/instruments&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;born&amp;gt;&amp;lt;/born&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;biography&amp;gt;&amp;lt;/biography&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;died&amp;gt;&amp;lt;/died&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt; || No || No || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes || Path to available online artist images. &amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported &amp;lt;br /&amp;gt;&lt;br /&gt;
Export to Single File will export a single path. Export to Separate Files will export multiple paths.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || No || No || No || Exported but not used on Import &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;fanart&amp;gt;&lt;br /&gt;
   &amp;lt;thumb preview=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&lt;br /&gt;
 &amp;lt;/fanart&amp;gt; &lt;br /&gt;
|| No || No || Yes || Path to available online artist images. &amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported &amp;lt;br /&amp;gt;&lt;br /&gt;
Export to Single File will not export any paths. Export to Separate Files will export multiple paths.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|| No || No || Yes || Artist discography. &amp;lt;br /&amp;gt;A scraped listing not releated to the albums in the library &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;art&amp;gt;&lt;br /&gt;
   &amp;lt;fanart&amp;gt;&amp;lt;/fanart&amp;gt;&lt;br /&gt;
   &amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&lt;br /&gt;
 &amp;lt;/art&amp;gt;&lt;br /&gt;
|| No || No || Yes || Path to currently selected artwork. Exported to single file nfo only. Not used on import.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on expor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Album nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! NFO (xml) Tag || Required || Overwrites || Multiple ** || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;album&amp;gt;&amp;lt;/album&amp;gt; || Yes || No || No || The top level parent tag for the nfo file. All other tags must be contained within these two tags&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzAlbumID&amp;gt;&amp;lt;/musicBrainzAlbumID&amp;gt; || No || No || No || Exported but tag not merged when scraped or imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;artistdesc&amp;gt;&amp;lt;/artistdesc&amp;gt; || No || No || No || Exported but tag not merged when scraped or imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || Yes || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || No|| Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;compilation&amp;gt;&amp;lt;/compilation&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;review&amp;gt;&amp;lt;/review&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;type&amp;gt;&amp;lt;/type&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasedate&amp;gt;&amp;lt;/releasedate&amp;gt; || No || No || No || Empty XML tag exported, not not used when scraped or imported&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;label&amp;gt;&amp;lt;/label&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes || Path to available online artwork &amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || No || No || No || Exported but tag not used when scraped or imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/rating&amp;gt; || No || No || No || Optional qualifier gives maximum value score is out of&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/userrating&amp;gt; || No || No || No || Optional qualifier gives maximum value score is out of&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;votes&amp;gt;&amp;lt;/votes&amp;gt; || No || No || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;year&amp;gt;&amp;lt;/year&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
   &amp;lt;artist&amp;gt;&amp;lt;/artist&amp;gt;&lt;br /&gt;
   &amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
 &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
|| No || Yes || Yes || Scraped album artist credits can replace those derrived from music file tags. Note even when overwrite is disabled missing album artists will be added&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;position&amp;gt;&amp;lt;/position&amp;gt;&lt;br /&gt;
    &amp;lt;duration&amp;gt;&amp;lt;/duration&amp;gt;&lt;br /&gt;
  &amp;lt;/track&amp;gt;&lt;br /&gt;
|| No || No || Yes || Album track listing. &amp;lt;/br&amp;gt;&lt;br /&gt;
Not related in any way to the songs in the music library, it simply provides descriptive info used by some skins.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;musicBrainzTrackID&amp;gt; will always be empty and can be safely ignored if creating your own nfo files. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasetype&amp;gt;&amp;lt;/releasetype&amp;gt; || No || No || No || Exported with value &amp;quot;album&amp;quot;, not used when scraped or imported. &amp;lt;/br&amp;gt;&lt;br /&gt;
This is an internal flag.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on export &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Sample nfo Files =&lt;br /&gt;
An example of the &#039;&#039;artist.nfo&#039;&#039; and the &#039;&#039;album.nfo&#039;&#039; are provided. Use these as a guide to create  your own nfo files, or to determine errors in your own files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
Sample Music Artist nfo extracted from Single File Export. Click the &#039;&#039;&#039;Expand&#039;&#039;&#039; button, to the right, to view&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Artist nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Annie Lennox&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;3e30aebd-0557-4cfd-8fb9-3945afa5d72b&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
        &amp;lt;genre&amp;gt;Soul&amp;lt;/genre&amp;gt;&lt;br /&gt;
        &amp;lt;style&amp;gt;Rock&amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;style&amp;gt;Pop&amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;mood&amp;gt;Bittersweet&amp;lt;/mood&amp;gt;&lt;br /&gt;
        &amp;lt;yearsactive&amp;gt;1970s - 2010s&amp;lt;/yearsactive&amp;gt;&lt;br /&gt;
        &amp;lt;born&amp;gt;Aberdeen, Scotland (1954)&amp;lt;/born&amp;gt;&lt;br /&gt;
        &amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt;&lt;br /&gt;
        &amp;lt;biography&amp;gt;Ann &amp;amp;quot;Annie&amp;amp;quot; Lennox, OBE (born 25 December 1954) is a Scottish singer-songwriter, political activist and philanthropist. After achieving minor success in the late 1970s...&amp;lt;/biography&amp;gt;&lt;br /&gt;
        &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
        &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/artist/thumb/vtquqv1353945074.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/artist/thumb/vtquqv1353945074.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;path&amp;gt;E:\Music-Picard\Annie Lennox\&amp;lt;/path&amp;gt;&lt;br /&gt;
        &amp;lt;fanart /&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Medusa / Live in Central Park&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;1995&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Medusa&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;1995&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Songs of Mass Destruction&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2007&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Annie Lennox &amp;amp;amp; the BBC Concert Orchestra&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2007&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Nostalgia&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2014&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;A Christmas Cornucopia&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2010&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Diva&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;1992&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;An Evening of Nostalgia With Annie Lennox&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2015&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Die Nixe • The Mermaid&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2001&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;art&amp;gt;&lt;br /&gt;
            &amp;lt;fanart&amp;gt;E:\Music-Picard\Annie Lennox\fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
            &amp;lt;thumb&amp;gt;E:\Music-Picard\Annie Lennox\folder.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;/art&amp;gt;&lt;br /&gt;
    &amp;lt;/artist&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Album nfo ==&lt;br /&gt;
Sample Music Album nfo. Click &#039;&#039;&#039;Expand&#039;&#039;&#039;, to the right, to view.&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Album nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Symphony no. 5 &amp;amp; The Water Goblin&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzAlbumID&amp;gt;df943086-8bb9-41fa-a984-b70be7286701&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
    &amp;lt;artistdesc&amp;gt;Dvořák; Antonín Leopold&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Classical&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Romantic&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Pastoral&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Old and slow&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Happy&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Dramatic&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Fantasy theme of water gobin&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Gratefulness&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;compilation&amp;gt;false&amp;lt;/compilation&amp;gt;&lt;br /&gt;
    &amp;lt;review&amp;gt;Dvořák composed his fifth symphony in the summer months in June and July 1875. The opus number is actually incorrect. The autograph was marked with number 24, but the publisher Simrock gave this symphony a high...&amp;lt;/review&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;album; live recording&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;Chandos&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;N:\Music\Lib\Classical\Dvořák\Symphony no. 5 , The Water Goblin\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;3.500000&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;6&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;502&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Antonín Leopold Dvořák&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;819eaeb2-8dd8-48a5-ad07-0bcd137985ef&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Scottish National Orchestra&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;c6c4103b-cf07-42ad-91a7-b7eab7586e56&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Neeme J├ñrvi&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;8a1d9496-603f-40b1-a38d-2e8985834940&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: I. Allegro ma non troppo&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;1&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:50&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: II. Andante con moto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;2&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:49&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: III. Scherzo. Allegro scherzando&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;3&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: IV. Finale. Allegro molto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;4&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:08&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;The Water Goblin, op. 107&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;5&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;20:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;	&lt;br /&gt;
    &amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Technical Details =&lt;br /&gt;
{{Red|The information in this section is provided for technical interest and reference only. It can be safely disregarded if you have no technical interest in nfo and database functions}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The data within the nfo file should, theoretically, all go to/come from somewhere in the database but, because the content source of the data field can be diverse, the data does not always come from a single source or go to a single database field. Scanning is not just about reading data but processing it too. As some fields are initially set from tags and can then be overwritten by nfo data, there is also a merge process involved in scraping.&amp;lt;br /&amp;gt;&lt;br /&gt;
*There exist peculiarities with some XML tags in the nfo files:&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;name&amp;gt;&#039;&#039;&#039; in artist.nfo can overwrite the name of the artist in the artist table, if &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;, but does not change that name anywhere else&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasedate&amp;gt;&#039;&#039;&#039; is required as part of the internal function of the online scraping process. It does not map directly to any db field, and nothing (currently) happens with its data. Exporting the library to nfo files will create an empty XML tag. It is not used during import/scrape.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;artistdesc&amp;gt;&#039;&#039;&#039; tag in the album.nfo file is related to the strArtists field of the album table of the database. It is derived from ALBUMARTIST and ALBLUMARTISTS tags from the music file tags. If those two tags are empty, then it will be derived from ARTIST and ARTISTS tags in the music files. It is exported to album.nfo as &amp;lt;artistdesc&amp;gt; but the value is not imported/scraped.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasetype&amp;gt;&#039;&#039;&#039; appears in the album.nfo by mistake. It is an internal flag that, in nfo files, will always be output as &#039;&#039;&amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&#039;&#039;, and it is ignored during import/scrape of the nfo file. It relates to the strReleaseType field of the album table in the database. It does &#039;&#039;&#039;not&#039;&#039;&#039; relate to the RELEASETYPE tag in the MusicFile, which connects to &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; in album.nfo.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;track&amp;gt;&#039;&#039;&#039; XML tag, and its children tags in the album.nfo, are not related in any way to the songs in the music library or in the Song table of the database. This XML tag and its children are related to the [[Databases#albuminfosong|albuminfosong]] table which simply provides more descriptive details of the album, which can be displayed by some skins. The presence of &#039;&#039;&amp;lt;musicBrainzTrackID&amp;gt;&#039;&#039; under &#039;&#039;&amp;lt;track&amp;gt;&#039;&#039; is a mistake and is always empty. It is recommended that when creating your own nfo, that these XML tags be omitted from the album.nfo. These XML tags have been removed in v18.&amp;lt;br /&amp;gt;&lt;br /&gt;
*There are music file tags that are not saved to the database, therefore there are no XML tags. The music file tags are accessed by the music player at the commencement of playback.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Music File Tags Not Stored In DB&lt;br /&gt;
|-&lt;br /&gt;
|LYRICS&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*In music the only XML tags with a qualifier is &#039;&#039;Rating&#039;&#039; and &#039;&#039;User Rating&#039;&#039;. It limits the maximum score that is possible for the given rating. This is relevant as Kodi switched from a maximum 5 rating to a maximum of 10 rating.&lt;br /&gt;
*A FLAC file can have a cuesheet embedded in the CUESHEET tag. In v17 and prior there is a Cue table in the Database to make possible replaygain handling during playback for those kinds of files, but this slowed down Kodi for all users, even when no cuesheets were in the music file. v17 removed ReplayGain handling, so there is no replay gain applied for songs from FLAC with embedded cuesheets. This made the songs node 30% faster. This function has been redesigned and will be re-implemented in v18.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are differences in tags used by Single File Export and Separate File Export. Though testing reveals that transposing tages between the two has no detrimental affect on the scrape.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;23&amp;quot; style=&amp;quot;background-color:#E6E6E6;&amp;quot; | &#039;&#039;&#039;Artist nfo&amp;lt;br/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! XML Tag&lt;br /&gt;
! Exported in&lt;br /&gt;
Single File&lt;br /&gt;
! Exported in&lt;br /&gt;
Separate File&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;art&amp;gt;&lt;br /&gt;
   &amp;lt;fanart&amp;gt;&amp;lt;/fanart&amp;gt;&lt;br /&gt;
   &amp;lt;poster&amp;gt;&amp;lt;/poster&amp;gt;&lt;br /&gt;
 &amp;lt;/art&amp;gt;&lt;br /&gt;
|| Yes || No || Path to currently selected artwork. Exported to single file nfo only. Not used on import.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=NFO_files/Music&amp;diff=130844</id>
		<title>NFO files/Music</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=NFO_files/Music&amp;diff=130844"/>
		<updated>2017-09-22T14:10:50Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Album nfo */  Correction of what album xml tags can overwrite data derrived from music file tags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;width:280px&amp;quot;&lt;br /&gt;
! Steps to create your Music Library&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;1. [[Music_tagging|Music File Tagging]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;2. Scanning Music Into Library&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;3. Scraping Additional Music Information&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &#039;&#039;&#039;[[NFO_files|NFO Files]]&#039;&#039;&#039;&lt;br /&gt;
:*&#039;&#039;&#039;[[NFO files/Music|Music]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;5. [[Music_artwork]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Report NFO corrections:&amp;lt;br /&amp;gt;&lt;br /&gt;
[https:// here in the forum]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{mininav|[[NFO_files]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
{{Red|&#039;&#039;&#039;As the Music section of Kodi has many differences to the Video section of Kodi, please read this section to ensure your music and artwork are correctly scraped and displayed.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Understanding the Music Library ==&lt;br /&gt;
{{#lst:Music_artwork|understanding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding Music to Library ==&lt;br /&gt;
{{#lst:Music_artwork|adding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music nfo Specific Requirements ==&lt;br /&gt;
*A number of database fields can be populated initially by music file tags, but then be overwritten by online or nfo scraping. Whether this occurs depends on the setting &#039;&#039;&#039;Prefer Online Information&#039;&#039;&#039; in &#039;&#039;Settings&amp;gt;Media Settings&amp;gt;Music&#039;&#039;. If &#039;&#039;disabled&#039;&#039;, these fields will remain with the data scanned from the Music File tags. If &#039;&#039;enabled&#039;&#039; these fields will be overwritten by information obtained from either the online or local nfo file scrape. The affected fields are shown below in the section [[NFO_files/Music#Available_nfo_Tags|Available nfo Tags]] &lt;br /&gt;
*In the &#039;&#039;album.nfo&#039;&#039; the top level &amp;lt;artist&amp;gt; tag has been deprecated and is not shown in any sample nfo files. Applies to v12 and prior.&lt;br /&gt;
*There is no XML tag for &#039;&#039;votes&#039;&#039; of individual Songs. This can only come from the music file tags. Album &#039;&#039;votes&#039;&#039; can come from either online or local nfo scraping.&lt;br /&gt;
*FLAC rating contained within the Music File Tag is scored out of 100. Kodi converts this value to its equivalent value out of 10. Values less than 10 in the FLAC music file tag will return a rating of 0 in Kodi.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Placement =&lt;br /&gt;
Music will fetch additional album and album artist information from nfo files.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album&#039;&#039;&#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there. See the first table below.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album artist&#039;&#039;&#039; information each artist needs a separate artist.nfo file located in what Kodi determines as the unique common folder for that artist. Kodi does not fetch additional artist data for artists that only feature on songs, either on compilation albums or as guest artists on songs in albums by others, and you do not have any albums by them in your collection.&lt;br /&gt;
&lt;br /&gt;
{{note|There are weaknesses in the way that Kodi determines the location of the artist folder. It looks for the folder that is common to all the songs with that album artist, the name of that folder is irrelevent. If you have multiple albums by an artist all under an artist folder then this works perfectly. However the algorithm does not work for collaboration albums, those that have more than one album artist e.g. &amp;quot;Riding with the King&amp;quot; by Eric Clapton and BB King, or classical music with composer, orchestra and conductor given as the album artist. Also if you have not kept all songs by an artist under a unique folder, then the artist directory will probably be mis-identified. The result is that Kodi can find the wrong artist.nfo file, and give the artist some other artist&#039;s information, or fail to fine the artist.nfo you created}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Artist *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Artist as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |artist.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\artist.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Album *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Album as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |album.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\Crystal Visions\album.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
*The PERFORMER tag can contain many different kinds of musician tags, including ARTIST, ARRANGER, COMPOSER, CONDUCTOR, DJMIXER, ENGINEER, LYRICIST, MIXER, PRODUCER, REMIXER and PERFORMER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Available nfo Tags =&lt;br /&gt;
The following two tables list the available tags that can be used in each nfo file. The Album nfo section includes an example nfo for collaboration type albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! NFO (xml) Tag || Required || Overwrites || Multiple ** || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;artist&amp;gt;&amp;lt;/artist&amp;gt; || Yes || No || No || The top level parent tag for the nfo file. All other tags must be contained within these two tags&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;&amp;lt;/name&amp;gt; || No || Yes || No || Overwrites artist name in artist table, when &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;. Does not change that name anywhere else &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt; || No || No || No || Exported but not imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || No || Yes || Artist genre is not related to song genre. &amp;lt;br /&amp;gt;Used for display only. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;yearsactive&amp;gt;&amp;lt;/yearsactive&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;instruments&amp;gt;&amp;lt;/instruments&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;born&amp;gt;&amp;lt;/born&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;biography&amp;gt;&amp;lt;/biography&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;died&amp;gt;&amp;lt;/died&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt; || No || No || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes || Path to available online artist images. &amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported &amp;lt;br /&amp;gt;&lt;br /&gt;
Export to Single File will export a single path. Export to Separate Files will export multiple paths.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || No || No || No || Exported but not used on Import &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;fanart&amp;gt;&lt;br /&gt;
   &amp;lt;thumb preview=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&lt;br /&gt;
 &amp;lt;/fanart&amp;gt; &lt;br /&gt;
|| No || No || Yes || Path to available online artist images. &amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported &amp;lt;br /&amp;gt;&lt;br /&gt;
Export to Single File will not export any paths. Export to Separate Files will export multiple paths.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|| No || No || Yes || Artist discography. &amp;lt;br /&amp;gt;A scraped listing not releated to the albums in the library &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;art&amp;gt;&lt;br /&gt;
   &amp;lt;fanart&amp;gt;&amp;lt;/fanart&amp;gt;&lt;br /&gt;
   &amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&lt;br /&gt;
 &amp;lt;/art&amp;gt;&lt;br /&gt;
|| No || No || Yes || Path to currently selected artwork. Exported to single file nfo only. Not used on import.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on expor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Album nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! NFO (xml) Tag || Required || Overwrites || Multiple ** || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;album&amp;gt;&amp;lt;/album&amp;gt; || Yes || No || No || The top level parent tag for the nfo file. All other tags must be contained within these two tags&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzAlbumID&amp;gt;&amp;lt;/musicBrainzAlbumID&amp;gt; || No || No || No || Exported but tag not merged when scraped or imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;artistdesc&amp;gt;&amp;lt;/artistdesc&amp;gt; || No || No || No || Exported but tag not merged when scraped or imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || Yes || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || No|| Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || No || Yes || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;compilation&amp;gt;&amp;lt;/compilation&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;review&amp;gt;&amp;lt;/review&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;type&amp;gt;&amp;lt;/type&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasedate&amp;gt;&amp;lt;/releasedate&amp;gt; || No || No || No || Empty XML tag exported, not not used when scraped or imported&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;label&amp;gt;&amp;lt;/label&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes || Path to available online artwork &amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || No || No || No || Exported but tag not used when scraped or imported &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/rating&amp;gt; || No || No || No || Optional qualifier gives maximum value score is out of&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/userrating&amp;gt; || No || No || No || Optional qualifier gives maximum value score is out of&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;votes&amp;gt;&amp;lt;/votes&amp;gt; || No || No || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;year&amp;gt;&amp;lt;/year&amp;gt; || No || Yes || No || &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
   &amp;lt;artist&amp;gt;&amp;lt;/artist&amp;gt;&lt;br /&gt;
   &amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
 &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
|| No || Yes || Yes || Scraped album artist credits can replace those derrived from music file tags. Note even when overwrite is disabled missing album artists will be added&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;position&amp;gt;&amp;lt;/position&amp;gt;&lt;br /&gt;
    &amp;lt;duration&amp;gt;&amp;lt;/duration&amp;gt;&lt;br /&gt;
  &amp;lt;/track&amp;gt;&lt;br /&gt;
|| No || No || Yes || Album track listing. &amp;lt;/br&amp;gt;&lt;br /&gt;
Not related in any way to the songs in the music library, it simply provides descriptive info used by some skins.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;musicBrainzTrackID&amp;gt; will always be empty and can be safely ignored if creating your own nfo files. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasetype&amp;gt;&amp;lt;/releasetype&amp;gt; || No || No || No || Exported with value &amp;quot;album&amp;quot;, not used when scraped or imported. &amp;lt;/br&amp;gt;&lt;br /&gt;
This is an internal flag.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on export &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Sample nfo Files =&lt;br /&gt;
An example of the &#039;&#039;artist.nfo&#039;&#039; and the &#039;&#039;album.nfo&#039;&#039; are provided. Use these as a guide to create  your own nfo files, or to determine errors in your own files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
Sample Music Artist nfo extracted from Single File Export. Click the &#039;&#039;&#039;Expand&#039;&#039;&#039; button, to the right, to view&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Artist nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Annie Lennox&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;3e30aebd-0557-4cfd-8fb9-3945afa5d72b&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
        &amp;lt;genre&amp;gt;Soul&amp;lt;/genre&amp;gt;&lt;br /&gt;
        &amp;lt;style&amp;gt;Rock&amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;style&amp;gt;Pop&amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;mood&amp;gt;Bittersweet&amp;lt;/mood&amp;gt;&lt;br /&gt;
        &amp;lt;yearsactive&amp;gt;1970s - 2010s&amp;lt;/yearsactive&amp;gt;&lt;br /&gt;
        &amp;lt;born&amp;gt;Aberdeen, Scotland (1954)&amp;lt;/born&amp;gt;&lt;br /&gt;
        &amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt;&lt;br /&gt;
        &amp;lt;biography&amp;gt;Ann &amp;amp;quot;Annie&amp;amp;quot; Lennox, OBE (born 25 December 1954) is a Scottish singer-songwriter, political activist and philanthropist. After achieving minor success in the late 1970s...&amp;lt;/biography&amp;gt;&lt;br /&gt;
        &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
        &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/artist/thumb/vtquqv1353945074.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/artist/thumb/vtquqv1353945074.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;path&amp;gt;E:\Music-Picard\Annie Lennox\&amp;lt;/path&amp;gt;&lt;br /&gt;
        &amp;lt;fanart /&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Medusa / Live in Central Park&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;1995&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Medusa&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;1995&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Songs of Mass Destruction&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2007&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Annie Lennox &amp;amp;amp; the BBC Concert Orchestra&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2007&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Nostalgia&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2014&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;A Christmas Cornucopia&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2010&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Diva&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;1992&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;An Evening of Nostalgia With Annie Lennox&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2015&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;album&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Die Nixe • The Mermaid&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;year&amp;gt;2001&amp;lt;/year&amp;gt;&lt;br /&gt;
        &amp;lt;/album&amp;gt;&lt;br /&gt;
        &amp;lt;art&amp;gt;&lt;br /&gt;
            &amp;lt;fanart&amp;gt;E:\Music-Picard\Annie Lennox\fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
            &amp;lt;thumb&amp;gt;E:\Music-Picard\Annie Lennox\folder.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;/art&amp;gt;&lt;br /&gt;
    &amp;lt;/artist&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Album nfo ==&lt;br /&gt;
Sample Music Album nfo. Click &#039;&#039;&#039;Expand&#039;&#039;&#039;, to the right, to view.&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Album nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Symphony no. 5 &amp;amp; The Water Goblin&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzAlbumID&amp;gt;df943086-8bb9-41fa-a984-b70be7286701&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
    &amp;lt;artistdesc&amp;gt;Dvořák; Antonín Leopold&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Classical&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Romantic&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Pastoral&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Old and slow&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Happy&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Dramatic&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Fantasy theme of water gobin&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Gratefulness&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;compilation&amp;gt;false&amp;lt;/compilation&amp;gt;&lt;br /&gt;
    &amp;lt;review&amp;gt;Dvořák composed his fifth symphony in the summer months in June and July 1875. The opus number is actually incorrect. The autograph was marked with number 24, but the publisher Simrock gave this symphony a high...&amp;lt;/review&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;album; live recording&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;Chandos&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;N:\Music\Lib\Classical\Dvořák\Symphony no. 5 , The Water Goblin\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;3.500000&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;6&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;502&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Antonín Leopold Dvořák&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;819eaeb2-8dd8-48a5-ad07-0bcd137985ef&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Scottish National Orchestra&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;c6c4103b-cf07-42ad-91a7-b7eab7586e56&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Neeme J├ñrvi&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;8a1d9496-603f-40b1-a38d-2e8985834940&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: I. Allegro ma non troppo&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;1&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:50&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: II. Andante con moto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;2&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:49&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: III. Scherzo. Allegro scherzando&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;3&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: IV. Finale. Allegro molto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;4&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:08&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;The Water Goblin, op. 107&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;5&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;20:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;	&lt;br /&gt;
    &amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Technical Details =&lt;br /&gt;
{{Red|The information in this section is provided for technical interest and reference only. It can be safely disregarded if you have no technical interest in nfo and database functions}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The data within the nfo file should, theoretically, all go to/come from somewhere in the database but, because the content source of the data field can be diverse, the data does not always come from a single source or go to a single database field. Scanning is not just about reading data but processing it too. As some fields are initially set from tags and can then be overwritten by nfo data, there is also a merge process involved in scraping.&amp;lt;br /&amp;gt;&lt;br /&gt;
*There exist peculiarities with some XML tags in the nfo files:&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;name&amp;gt;&#039;&#039;&#039; in artist.nfo can overwrite the name of the artist in the artist table, if &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;, but does not change that name anywhere else&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasedate&amp;gt;&#039;&#039;&#039; is required as part of the internal function of the online scraping process. It does not map directly to any db field, and nothing (currently) happens with its data. Exporting the library to nfo files will create an empty XML tag. It is not used during import/scrape.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;artistdesc&amp;gt;&#039;&#039;&#039; tag in the album.nfo file is related to the strArtists field of the album table of the database. It is derived from ALBUMARTIST and ALBLUMARTISTS tags from the music file tags. If those two tags are empty, then it will be derived from ARTIST and ARTISTS tags in the music files. It is exported to album.nfo as &amp;lt;artistdesc&amp;gt; but the value is not imported/scraped.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasetype&amp;gt;&#039;&#039;&#039; appears in the album.nfo by mistake. It is an internal flag that, in nfo files, will always be output as &#039;&#039;&amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&#039;&#039;, and it is ignored during import/scrape of the nfo file. It relates to the strReleaseType field of the album table in the database. It does &#039;&#039;&#039;not&#039;&#039;&#039; relate to the RELEASETYPE tag in the MusicFile, which connects to &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; in album.nfo.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;track&amp;gt;&#039;&#039;&#039; XML tag, and its children tags in the album.nfo, are not related in any way to the songs in the music library or in the Song table of the database. This XML tag and its children are related to the [[Databases#albuminfosong|albuminfosong]] table which simply provides more descriptive details of the album, which can be displayed by some skins. The presence of &#039;&#039;&amp;lt;musicBrainzTrackID&amp;gt;&#039;&#039; under &#039;&#039;&amp;lt;track&amp;gt;&#039;&#039; is a mistake and is always empty. It is recommended that when creating your own nfo, that these XML tags be omitted from the album.nfo. These XML tags have been removed in v18.&amp;lt;br /&amp;gt;&lt;br /&gt;
*There are music file tags that are not saved to the database, therefore there are no XML tags. The music file tags are accessed by the music player at the commencement of playback.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Music File Tags Not Stored In DB&lt;br /&gt;
|-&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|-&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|-&lt;br /&gt;
|LYRICS&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|-&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*In music the only XML tags with a qualifier is &#039;&#039;Rating&#039;&#039; and &#039;&#039;User Rating&#039;&#039;. It limits the maximum score that is possible for the given rating. This is relevant as Kodi switched from a maximum 5 rating to a maximum of 10 rating.&lt;br /&gt;
*A FLAC file can have a cuesheet embedded in the CUESHEET tag. In v17 and prior there is a Cue table in the Database to make possible replaygain handling during playback for those kinds of files, but this slowed down Kodi for all users, even when no cuesheets were in the music file. v17 removed ReplayGain handling, so there is no replay gain applied for songs from FLAC with embedded cuesheets. This made the songs node 30% faster. This function has been redesigned and will be re-implemented in v18.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are differences in tags used by Single File Export and Separate File Export. Though testing reveals that transposing tages between the two has no detrimental affect on the scrape.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;23&amp;quot; style=&amp;quot;background-color:#E6E6E6;&amp;quot; | &#039;&#039;&#039;Artist nfo&amp;lt;br/&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! XML Tag&lt;br /&gt;
! Exported in&lt;br /&gt;
Single File&lt;br /&gt;
! Exported in&lt;br /&gt;
Separate File&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;art&amp;gt;&lt;br /&gt;
   &amp;lt;fanart&amp;gt;&amp;lt;/fanart&amp;gt;&lt;br /&gt;
   &amp;lt;poster&amp;gt;&amp;lt;/poster&amp;gt;&lt;br /&gt;
 &amp;lt;/art&amp;gt;&lt;br /&gt;
|| Yes || No || Path to currently selected artwork. Exported to single file nfo only. Not used on import.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=NFO_files/Music&amp;diff=130690</id>
		<title>NFO files/Music</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=NFO_files/Music&amp;diff=130690"/>
		<updated>2017-09-14T08:01:17Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Artist nfo */ Corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;width:280px&amp;quot;&lt;br /&gt;
! Steps to create your Music Library&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;1. [[Music_tagging|Music File Tagging]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;2. Scanning Music Into Library&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;3. Scraping Additional Music Information&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &#039;&#039;&#039;[[NFO_files|NFO Files]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--:*&#039;&#039;&#039;[[NFO_files/movies|Movies]]&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;!--*&#039;&#039;&#039;[[NFO_files/tvshows|TV Shows]]&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
:*&#039;&#039;&#039;[[NFO_files/music|Music]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--:*&#039;&#039;&#039;[[NFO_files/musicvideos|Music Videos]]&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;5. [[Music_artwork]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Report NFO corrections:&amp;lt;br /&amp;gt;&lt;br /&gt;
[https:// here in the forum]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{mininav|[[NFO_files]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
{{Red|&#039;&#039;&#039;As the Music section of Kodi has many differences to the Video section of Kodi, please read this section to ensure your music and artwork are correctly scraped and displayed.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Understanding the Music Library ==&lt;br /&gt;
{{#lst:Music_artwork|understanding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding Music to Library ==&lt;br /&gt;
{{#lst:Music_artwork|adding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music nfo Specific Requirements ==&lt;br /&gt;
*A number of database fields can be populated initially by music file tags, but then be overwritten by online or nfo scraping. Whether this occurs depends on the setting &#039;&#039;&#039;Prefer Online Information&#039;&#039;&#039; in &#039;&#039;Settings&amp;gt;Media Settings&amp;gt;Music&#039;&#039;. If &#039;&#039;disabled&#039;&#039;, these fields will remain with the data scanned from the Music File tags. If &#039;&#039;enabled&#039;&#039; these fields will be overwritten by information obtained from either the online or local nfo file scrape. The affected fields are shown below in the section [[NFO_files/Music#Available_nfo_Tags|Available nfo Tags]] &lt;br /&gt;
*In the &#039;&#039;album.nfo&#039;&#039; the top level &amp;lt;artist&amp;gt; tag has been deprecated and is not shown in any sample nfo files. Applies to v12 and prior.&lt;br /&gt;
*There is no XML tag for &#039;&#039;votes&#039;&#039; of individual Songs. This can only come from the music file tags. Album &#039;&#039;votes&#039;&#039; can come from either online or local nfo scraping.&lt;br /&gt;
*FLAC rating contained within the Music File Tag is scored out of 100. Kodi converts this value to its equivalent value out of 10. Values less than 10 in the FLAC music file tag will return a rating of 0 in Kodi.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Placement =&lt;br /&gt;
Music will fetch additional album and album artist information from nfo files.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album&#039;&#039;&#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there. See the first table below.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album artist&#039;&#039;&#039; information each artist needs a separate artist.nfo file located in what Kodi determines as the unique common folder for that artist. Kodi does not fetch additional artist data for artists that only feature on songs, either on compilation albums or as guest artists on songs in albums by others, and you do not have any albums by them in your collection.&lt;br /&gt;
&lt;br /&gt;
{{note|There are weaknesses in the way that Kodi determines the location of the artist folder. It looks for the folder that is common to all the songs with that album artist, the name of that folder is irrelevent. If you have multiple albums by an artist all under an artist folder then this works perfectly. &lt;br /&gt;
However the algorithm does not work for collaboration albums, those that have more than one album artist e.g. &amp;quot;Riding with the King&amp;quot; by Eric Clapton and BB King, or classical music with composer, orchestra and conductor given as the album artist. Also if you have not kept all songs by an artist under a unique folder, then the artist directory will probably be mis-identified. The result is that Kodi can find the wrong artist.nfo file, and give the artist some other artist&#039;s information, or fail to fine the artist.nfo you created}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Artist *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Artist as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |artist.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\artist.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Album *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Album as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |album.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\Crystal Visions\album.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--*The PERFORMER tag can contain many different kinds of musician tags, including ARTIST, ARRANGER, COMPOSER, CONDUCTOR, DJMIXER, ENGINEER, LYRICIST, MIXER, PRODUCER, REMIXER and PERFORMER --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Available nfo Tags =&lt;br /&gt;
The following two tables list the available tags that can be used in each nfo file. The Album nfo section includes an example nfo for collaboration type albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! nfo (XML) Tag || Required || Overwrites || Multiple ** || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|| No || No || Yes ||Artist discography. &amp;lt;br /&amp;gt;A scraped listing not releated to the albums in the library&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;biography&amp;gt;&amp;lt;/biography&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;born&amp;gt;&amp;lt;/born&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;died&amp;gt;&amp;lt;/died&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;fanart&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&lt;br /&gt;
 &amp;lt;/fanart&amp;gt;&lt;br /&gt;
|| No || No || Yes || Path to available online fanart. &amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || No || Yes ||Artist genre is not related to song genre. &amp;lt;br /&amp;gt; Used for display only.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;instruments&amp;gt;&amp;lt;/instruments&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt; || No || No || No ||Exported but not imported&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;&amp;lt;/name&amp;gt; || No || Yes || No || Overwrites artist name in artist table, when &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;. Does not change that name anywhere else&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || No || No || No || Exported but not used on Import&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes || Path to available online artwork&amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;yearsactive&amp;gt;&amp;lt;/yearsactive&amp;gt; || No || No || Yes ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on export&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Album nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! nfo (XML) Tag || Required || Overwrites || Multiple || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
   &amp;lt;artist&amp;gt;&amp;lt;/artist&amp;gt;&lt;br /&gt;
   &amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
 &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
|| Yes || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;artistdesc&amp;gt;&amp;lt;/artistdesc&amp;gt; || Yes || No || No || XML Tag created on Export, not used on Import&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;compilation&amp;gt;&amp;lt;/compilation&amp;gt; || Yes || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;label&amp;gt;&amp;lt;/label&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzAlbumID&amp;gt;&amp;lt;/musicBrainzAlbumID&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || Yes || No || No || Exported by not used on Import&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/rating&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasedate&amp;gt;&amp;lt;/releasedate&amp;gt; || No || No || No || Empty XML Tag created on Export, not used on Import/scrape&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasetype&amp;gt;&amp;lt;/releasetype&amp;gt; || No || No || No || Appears by mistake. Is not used&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;review&amp;gt;&amp;lt;/review&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes || Path to available online artwork&amp;lt;br /&amp;gt;Importing will also accept paths to local art files which can subsequently be exported&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; || Yes || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;position&amp;gt;&amp;lt;/position&amp;gt;&lt;br /&gt;
    &amp;lt;duration&amp;gt;&amp;lt;/duration&amp;gt;&lt;br /&gt;
  &amp;lt;/track&amp;gt;&lt;br /&gt;
|| Yes || Yes || Yes || Not related in any way to the songs in the music library. &amp;lt;br /&amp;gt;&lt;br /&gt;
It is used by the albuminfosong table which simply provides descriptive data used by some skins.&amp;lt;br /&amp;gt;&lt;br /&gt;
musicBrainzTrackID is exported in error and will always be empty. &amp;lt;br /&amp;gt;&lt;br /&gt;
Can be safely ignored if creating your own nfo files.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;type&amp;gt;&amp;lt;/type&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/userrating&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;votes&amp;gt;&amp;lt;/votes&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;year&amp;gt;&amp;lt;/year&amp;gt; || No || Yes || No ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on export&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sample nfo Files =&lt;br /&gt;
An example of the &#039;&#039;artist.nfo&#039;&#039; and the &#039;&#039;album.nfo&#039;&#039; are provided. Use these as a guide to create  your own nfo files, or to determine errors in your own files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
Sample Music Artist nfo. Click the &#039;&#039;&#039;Expand&#039;&#039;&#039; button, to the right, to view&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Artist nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Fleetwood Mac&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzArtistID&amp;gt;bd13909f-1c29-4c27-a874-d4aaf27c5b1a&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Rock&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Hard Rock&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Rock&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Pop&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Happy&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Relaxed&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;yearsactive&amp;gt;1960s - 2010s&amp;lt;/yearsactive&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;formed&amp;gt;London, England (1967)&amp;lt;/formed&amp;gt;&lt;br /&gt;
    &amp;lt;biography&amp;gt;Fleetwood Mac are a British-American rock band formed in 1967 in London. The only original member present in the band is its eponymous drummer...&amp;lt;/biography&amp;gt;&lt;br /&gt;
    &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
    &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd1...56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd1...f27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd1...4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd1...f27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;E:\Music- Test\Fleetwood Mac\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13...mac-54a08371db4e2.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13...ground/fleetwood-mac-54a08371db4e2.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13...mac-54a083a3607ed.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13...ground/fleetwood-mac-54a083a3607ed.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13...mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13...ground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Future Games&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1971&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Live in London 1968&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1989&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Bare Trees&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1972&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tusk&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1979&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;In Concert 1982&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2010&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rumours&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1977&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Say You Will&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2003&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Kiln House&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1970&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tango in the Night&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1975&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Penguin&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mirage&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1982&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mystery to Me&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Peter GreenΓÇÖs Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1968&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Album nfo ==&lt;br /&gt;
Sample Music Album nfo. Click &#039;&#039;&#039;Expand&#039;&#039;&#039;, to the right, to view.&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Album nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Symphony no. 5 &amp;amp; The Water Goblin&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzAlbumID&amp;gt;df943086-8bb9-41fa-a984-b70be7286701&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
    &amp;lt;artistdesc&amp;gt;Dvořák; Antonín Leopold&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Classical&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Romantic&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Pastoral&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Old and slow&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Happy&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Dramatic&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Fantasy theme of water gobin&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Gratefulness&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;compilation&amp;gt;false&amp;lt;/compilation&amp;gt;&lt;br /&gt;
    &amp;lt;review&amp;gt;Dvořák composed his fifth symphony in the summer months in June and July 1875. The opus number is actually incorrect. The autograph was marked with number 24, but the publisher Simrock gave this symphony a high number of 76&amp;lt;/review&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;album; live recording&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;Chandos&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;N:\Music\Lib\Classical\Dvořák\Symphony no. 5 , The Water Goblin\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;3.500000&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;6&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;502&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Antonín Leopold Dvořák&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;819eaeb2-8dd8-48a5-ad07-0bcd137985ef&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Scottish National Orchestra&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;c6c4103b-cf07-42ad-91a7-b7eab7586e56&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Neeme J├ñrvi&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;8a1d9496-603f-40b1-a38d-2e8985834940&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: I. Allegro ma non troppo&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;1&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:50&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: II. Andante con moto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;2&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:49&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: III. Scherzo. Allegro scherzando&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;3&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: IV. Finale. Allegro molto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;4&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:08&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;The Water Goblin, op. 107&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;5&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;20:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;	&lt;br /&gt;
    &amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Technical Details =&lt;br /&gt;
{{Red|The information in this section is provided for technical interest and reference only. It can be safely disregarded if you have no technical interest in nfo and database functions}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The data within the nfo file should, theoretically, all go to/come from somewhere in the database but, because the content source of the data field can be diverse, the data does not always come from a single source or go to a single database field. Scanning is not just about reading data but processing it too. As some fields are initially set from tags and can then be overwritten by nfo data, there is also a merge process involved in scraping.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There exist peculiarities with some XML tags in the nfo files:&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;name&amp;gt;&#039;&#039;&#039; in artist.nfo can overwrite the name of the artist in the artist table, if &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;, but does not change that name anywhere else&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasedate&amp;gt;&#039;&#039;&#039; is required as part of the internal function of the online scraping process. It does not map directly to any db field, and nothing (currently) happens with its data. Exporting the library to nfo files will create an empty XML tag. It is not used during import/scrape.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;artistdesc&amp;gt;&#039;&#039;&#039; tag in the album.nfo file is related to the strArtists field of the album table of the database. It is derived from ALBUMARTIST and ALBLUMARTISTS tags from the music file tags. If those two tags are empty, then it will be derived from ARTIST and ARTISTS tags in the music files. It is exported to album.nfo as &amp;lt;artistdesc&amp;gt; but the value is not imported/scraped.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasetype&amp;gt;&#039;&#039;&#039; appears in the album.nfo by mistake. It is an internal flag that, in nfo files, will always be output as &#039;&#039;&amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&#039;&#039;, and it is ignored during import/scrape of the nfo file. It relates to the strReleaseType field of the album table in the database. It does &#039;&#039;&#039;not&#039;&#039;&#039; relate to the RELEASETYPE tag in the MusicFile, which connects to &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; in album.nfo.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;track&amp;gt;&#039;&#039;&#039; XML tag, and its children tags in the album.nfo, are not related in any way to the songs in the music library or in the Song table of the database. This XML tag and its children are related to the [[Databases#albuminfosong|albuminfosong]] table which simply provides more descriptive details of the album, which can be displayed by some skins. The presence of &#039;&#039;&amp;lt;musicBrainzTrackID&amp;gt;&#039;&#039; under &#039;&#039;&amp;lt;track&amp;gt;&#039;&#039; is a mistake and is always empty. It is recommended that when creating your own nfo, that these XML tags be omitted from the album.nfo. These XML tags have been removed in v18.&amp;lt;br /&amp;gt;&lt;br /&gt;
*There are music file tags that are not saved to the database, therefore there are no XML tags. The music file tags are accessed by the music player at the commencement of playback.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Music File Tags Not Stored In DB&lt;br /&gt;
|-&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|-&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|-&lt;br /&gt;
|LYRICS&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|-&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*In music the only XML tags with a qualifier is &#039;&#039;Rating&#039;&#039; and &#039;&#039;User Rating&#039;&#039;. It limits the maximum score that is possible for the given rating. This is relevant as Kodi switched from a maximum 5 rating to a maximum of 10 rating.&lt;br /&gt;
*A FLAC file can have a cuesheet embedded in the CUESHEET tag. In v17 and prior there is a Cue table in the Database to make possible replaygain handling during playback for those kinds of files, but this slowed down Kodi for all users, even when no cuesheets were in the music file. v17 removed ReplayGain handling, so there is no replay gain applied for songs from FLAC with embedded cuesheets. This made the songs node 30% faster. This function has been redesigned and will be re-implemented in v18.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Karellen/scratchpad&amp;diff=130638</id>
		<title>User:Karellen/scratchpad</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Karellen/scratchpad&amp;diff=130638"/>
		<updated>2017-09-08T13:55:36Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Music Album nfo */  change album.nfo example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;width:250px&amp;quot;&lt;br /&gt;
! Steps to create your Music Library&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;1. [[Music_tagging|Music File Tagging]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;2. Scanning Music Into Library&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;3. Scraping Additional Music Information&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &#039;&#039;&#039;[[NFO_files|NFO Files]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--:*&#039;&#039;&#039;[[NFO_files/movies|Movies]]&#039;&#039;&#039;&lt;br /&gt;
:*&#039;&#039;&#039;[[NFO_files/tvshows|TV Shows]]&#039;&#039;&#039; --&amp;gt;&lt;br /&gt;
:*&#039;&#039;&#039;[[NFO_files/music|Music]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--:*&#039;&#039;&#039;[[NFO_files/musicvideos|Music Videos]]&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;small&amp;gt;5. [[Music_artwork]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Report NFO corrections:&amp;lt;br /&amp;gt;&lt;br /&gt;
[https:// here in the forum]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{mininav|[[Video library]] {{l2| [[Music library]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
{{Red|&#039;&#039;&#039;As the Music section of Kodi has many differences to the Video section of Kodi, please read this section to ensure your music and artwork are correctly scraped and displayed.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Understanding the Music Library ==&lt;br /&gt;
{{#lst:Music_artwork|understanding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding Music to Library ==&lt;br /&gt;
{{#lst:Music_artwork|adding}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music nfo Specific Requirements ==&lt;br /&gt;
*A number of database fields can be populated initially by music file tags, but then be overwritten by online or nfo scraping. Whether this occurs depends on the setting &#039;&#039;&#039;Prefer Online Information&#039;&#039;&#039; in &#039;&#039;Settings&amp;gt;Media Settings&amp;gt;Music&#039;&#039;. If &#039;&#039;disabled&#039;&#039;, these fields will remain with the data scanned from the Music File tags. If &#039;&#039;enabled&#039;&#039; these fields will be overwritten by information obtained from either the online or local nfo file scrape. The affected fields are shown below in the section [http://kodi.wiki/index.php?title=User:Karellen/scratchpad&amp;amp;action#Available_nfo_Tags Available nfo Tags].&lt;br /&gt;
*In the &#039;&#039;album.nfo&#039;&#039; the top level &amp;lt;artist&amp;gt; tag has been deprecated and is not shown in any sample nfo files. Applies to v12 and prior.&lt;br /&gt;
*There is no XML tag for &#039;&#039;votes&#039;&#039; of individual Songs. This can only come from the music file tags. Album &#039;&#039;votes&#039;&#039; can come from either online or local nfo scraping.&lt;br /&gt;
*FLAC rating contained within the Music File Tag is scored out of 100. Kodi converts this value to its equivalent value out of 10. Values less than 10 in the FLAC music file tag will return a rating of 0 in Kodi.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Red|The information in the remainder of this section is provided for technical interest only. It can be safely disregarded if you have no technical interest in certain functions}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The data within the nfo file should, theoretically, all go to/come from somewhere in the database but, because the content source of the data field can be diverse, the data does not always come from a single source or go to a single database field. Scanning is not just about reading data but processing it too. As some fields are initially set from tags and can then be overwritten by nfo data, there is also a merge process involved in scraping.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There exist peculiarities with some XML tags in the nfo files:&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;name&amp;gt;&#039;&#039;&#039; in artist.nfo can overwrite the name of the artist in the artist table, if &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;, but does not change that name anywhere else&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasedate&amp;gt;&#039;&#039;&#039; is required as part of the internal function of the online scraping process. It does not map directly to any db field, and nothing (currently) happens with its data. Exporting the library to nfo files will create an empty XML tag. It is not used during import/scrape.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;artistdesc&amp;gt;&#039;&#039;&#039; tag in the album.nfo file is related to the strArtists field of the album table of the database. It is derived from ALBUMARTIST and ALBLUMARTISTS tags from the music file tags. If those two tags are empty, then it will be derived from ARTIST and ARTISTS tags in the music files. It is exported to album.nfo as &amp;lt;artistdesc&amp;gt; but the value is not imported/scraped.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;releasetype&amp;gt;&#039;&#039;&#039; appears in the album.nfo by mistake. It is an internal flag that, in nfo files, will always be output as &#039;&#039;&amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&#039;&#039;, and it is ignored during import/scrape of the nfo file. It relates to the strReleaseType field of the album table in the database. It does &#039;&#039;&#039;not&#039;&#039;&#039; relate to the RELEASETYPE tag in the MusicFile, which connects to &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; in album.nfo.&lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;track&amp;gt;&#039;&#039;&#039; XML tag, and its children tags in the album.nfo, are not related in any way to the songs in the music library or in the Song table of the database. This XML tag and its children are related to the [[Databases#albuminfosong|albuminfosong]] table which simply provides more descriptive details of the album, which can be displayed by some skins. The presence of &#039;&#039;&amp;lt;musicBrainzTrackID&amp;gt;&#039;&#039; under &#039;&#039;&amp;lt;track&amp;gt;&#039;&#039; is a mistake and is always empty. It is recommended that when creating your own nfo, that these XML tags be omitted from the album.nfo. These XML tags have been removed in v18.&amp;lt;br /&amp;gt;&lt;br /&gt;
*There are music file tags that are not saved to the database, therefore there are no XML tags. The music file tags are accessed by the music player at the commencement of playback.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Music File Tags Not Stored In DB&lt;br /&gt;
|-&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|-&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|-&lt;br /&gt;
|LYRICS&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|-&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|-&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*In music the only XML tags with a qualifier is &#039;&#039;Rating&#039;&#039; and &#039;&#039;User Rating&#039;&#039;. It limits the maximum score that is possible for the given rating. This is relevant as Kodi switched from a maximum 5 rating to a maximum of 10 rating.&lt;br /&gt;
*A FLAC file can have a cuesheet embedded in the CUESHEET tag. In v17 and prior there is a Cue table in the Database to make possible replaygain handling during playback for those kinds of files, but this slowed down Kodi for all users, even when no cuesheets were in the music file. v17 removed ReplayGain handling, so there is no replay gain applied for songs from FLAC with embedded cuesheets. This made the songs node 30% faster. This function has been redesigned and will be re-implemented in v18.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Placement =&lt;br /&gt;
Music will fetch additional album and album artist information from nfo files.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album&#039;&#039;&#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there. See the first table below.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album artist&#039;&#039;&#039; information each artist needs a separate artist.nfo file located in what Kodi determines as the unique common folder for that artist. Kodi does not fetch additional artist data for artists that only feature on songs, either on compilation albums or as guest artists on songs in albums by others, and you do not have any albums by them in your collection.&lt;br /&gt;
&lt;br /&gt;
{{note|There are weaknesses in the way that Kodi determines the location of the artist folder. It looks for the folder that is common to all the songs with that album artist, the name of that folder is irrelevent. If you have multiple albums by an artist all under an artist folder then this works perfectly. &lt;br /&gt;
However the algorithm does not work for collaboration albums, those that have more than one album artist e.g. &amp;quot;Riding with the King&amp;quot; by Eric Clapton and BB King, or classical music with composer, orchestra and conductor given as the album artist. Also if you have not kept all songs by an artist under a unique folder, then the artist directory will probably be mis-identified. The result is that Kodi can find the wrong artist.nfo file, and give the artist some other artist&#039;s information, or fail to fine the artist.nfo you created}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Artist *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Artist as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |artist.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\artist.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5f5a1, #a1f5e4}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Album *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Album as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |album.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\Crystal Visions\album.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--*The PERFORMER tag can contain many different kinds of musician tags, including ARTIST, ARRANGER, COMPOSER, CONDUCTOR, DJMIXER, ENGINEER, LYRICIST, MIXER, PRODUCER, REMIXER and PERFORMER --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Available nfo Tags =&lt;br /&gt;
The following two tables list the available tags that can be used in each nfo file. The Album nfo section includes an example nfo for collaboration type albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! nfo (XML) Tag || Required || Overwrites || Multiple ** || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;&amp;lt;/name&amp;gt; || Yes || Yes || No || Overwrites artist name in artist table, when &amp;quot;prefer online info&amp;quot; is &amp;quot;enabled&amp;quot;. Does not change that name anywhere else&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;yearsactive&amp;gt;&amp;lt;/yearsactive&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;born&amp;gt;&amp;lt;/born&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;instruments&amp;gt;&amp;lt;/instruments&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;biography&amp;gt;&amp;lt;/biography&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;died&amp;gt;&amp;lt;/died&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt; || No || No || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes || Path to available online artwork &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;fanart&amp;gt;&amp;lt;/fanart&amp;gt; || No || No || Yes || Path to available online artwork &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|| No || No || Yes || Path to artwork in use&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;art&amp;gt;&lt;br /&gt;
   &amp;lt;fanart&amp;gt;&amp;lt;/fanart&amp;gt;&lt;br /&gt;
   &amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&lt;br /&gt;
 &amp;lt;/art&amp;gt;&lt;br /&gt;
|| No || No || Yes || Path to artwork in use&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on export&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Album nfo ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! nfo (XML) Tag || Required || Overwrites || Multiple || Notes&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; || Yes || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;musicBrainzAlbumID&amp;gt;&amp;lt;/musicBrainzAlbumID&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;artistdesc&amp;gt;&amp;lt;/artistdesc&amp;gt; || Yes || No || No || XML Tag created on Export, not used on Import&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; || No || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;compilation&amp;gt;&amp;lt;/compilation&amp;gt; || Yes || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;review&amp;gt;&amp;lt;/review&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;type&amp;gt;&amp;lt;/type&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasedate&amp;gt;&amp;lt;/releasedate&amp;gt; || No || No || No || Empty XML Tag created on Export, not used on Import/scrape&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;label&amp;gt;&amp;lt;/label&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; || No || No || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; || Yes || No || No || &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/rating&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/userrating&amp;gt; || No || No || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;votes&amp;gt;&amp;lt;/votes&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;year&amp;gt;&amp;lt;/year&amp;gt; || No || Yes || No ||&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
   &amp;lt;artist&amp;gt;&amp;lt;/artist&amp;gt;&lt;br /&gt;
   &amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
 &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
|| Yes || Yes || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;position&amp;gt;&amp;lt;/position&amp;gt;&lt;br /&gt;
    &amp;lt;duration&amp;gt;&amp;lt;/duration&amp;gt;&lt;br /&gt;
  &amp;lt;/track&amp;gt;&lt;br /&gt;
|| Yes || Yes || Yes || Not related in any way to the songs in the music library. &amp;lt;br /&amp;gt;&lt;br /&gt;
It is used by the albuminfosong table which simply provides descriptive data used by some skins.&amp;lt;br /&amp;gt;&lt;br /&gt;
musicBrainzTrackID is exported in error and will always be empty. &amp;lt;br /&amp;gt;&lt;br /&gt;
Can be safely ignored if creating your own nfo files.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;releasetype&amp;gt;&amp;lt;/releasetype&amp;gt; || No || No || No || Appears by mistake. Is not used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || With multiple value fields those values are entered using XML tag per value, and when no data exists, the XML tag will not be created on export&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sample nfo Files =&lt;br /&gt;
An example of the &#039;&#039;artist.nfo&#039;&#039; and the &#039;&#039;album.nfo&#039;&#039; are provided. Use these as a guide to create  your own nfo files, or to determine errors in your own files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artist nfo ==&lt;br /&gt;
Sample Music Artist nfo. Click the &#039;&#039;&#039;Expand&#039;&#039;&#039; button, to the right, to view&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Artist nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Fleetwood Mac&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzArtistID&amp;gt;bd13909f-1c29-4c27-a874-d4aaf27c5b1a&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Rock&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Hard Rock&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Rock&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Pop&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Happy&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Relaxed&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;yearsactive&amp;gt;1960s - 2010s&amp;lt;/yearsactive&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;formed&amp;gt;London, England (1967)&amp;lt;/formed&amp;gt;&lt;br /&gt;
    &amp;lt;biography&amp;gt;Fleetwood Mac are a British-American rock band formed in 1967 in London. The only original member present in the band is its eponymous drummer...&amp;lt;/biography&amp;gt;&lt;br /&gt;
    &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
    &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd1...56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd1...f27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd1...4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd1...f27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;E:\Music- Test\Fleetwood Mac\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13...mac-54a08371db4e2.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13...ground/fleetwood-mac-54a08371db4e2.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13...mac-54a083a3607ed.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13...ground/fleetwood-mac-54a083a3607ed.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13...mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13...ground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Future Games&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1971&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Live in London 1968&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1989&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Bare Trees&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1972&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tusk&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1979&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;In Concert 1982&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2010&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rumours&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1977&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Say You Will&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2003&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Kiln House&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1970&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tango in the Night&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1975&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Penguin&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mirage&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1982&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mystery to Me&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Peter GreenΓÇÖs Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1968&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Album nfo ==&lt;br /&gt;
Sample Music Album nfo. Click &#039;&#039;&#039;Expand&#039;&#039;&#039;, to the right, to view.&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Album nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;album&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Symphony no. 5 &amp;amp; The Water Goblin&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzAlbumID&amp;gt;df943086-8bb9-41fa-a984-b70be7286701&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
    &amp;lt;artistdesc&amp;gt;Dvo┼Ö├ík; SNO, J├ñrvi&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Classical&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Romantic&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Pastoral&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Old and slow&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Happy&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Dramatic&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Fantasy theme of water gobin&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;Gratefulness&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;compilation&amp;gt;false&amp;lt;/compilation&amp;gt;&lt;br /&gt;
    &amp;lt;review&amp;gt;Dvo┼Ö├ík composed his fifth symphony in the summer months in June and July 1875. The opus number is actually incorrect. The autograph was marked with number 24, but the publisher Simrock (ignoring the protests of the composer) gave this symphony a high number of 76&amp;lt;/review&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;album; live recording&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;Chandos&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/uuvuvt1389633744.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;N:\Music\Lib\Classical\Dvo┼Ö├ík\Symphony no. 5 , The Water Goblin\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;3.500000&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;6&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;502&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Anton├¡n Dvo┼Ö├ík&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;819eaeb2-8dd8-48a5-ad07-0bcd137985ef&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Scottish National Orchestra&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;c6c4103b-cf07-42ad-91a7-b7eab7586e56&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Neeme J├ñrvi&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;8a1d9496-603f-40b1-a38d-2e8985834940&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: I. Allegro ma non troppo&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;1&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:50&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: II. Andante con moto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;2&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:49&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: III. Scherzo. Allegro scherzando&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;3&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;07:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Symphony no. 5 in F major, op. 76: IV. Finale. Allegro molto&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;4&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;12:08&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;The Water Goblin, op. 107&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;5&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;duration&amp;gt;20:39&amp;lt;/duration&amp;gt;&lt;br /&gt;
    &amp;lt;/track&amp;gt;	&lt;br /&gt;
    &amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
&amp;lt;/album&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:First time user]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=130626</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=130626"/>
		<updated>2017-09-07T15:47:00Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Music database: correct some NFO (XML) and music file tag entries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Development]] {{l2| [[userdata folder]] }} }}&lt;br /&gt;
{{see also|Databases/Versions | nfo}}&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the Databases ==&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building SQL Queries ===&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Accessing the Databases with Kodi Python ===&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music_tagging | Import-Export_library | nfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Music Library ==&lt;br /&gt;
This database contains all information concerning music files that you&#039;ve added to the Music Library. It is used in the Music portion of Kodi. &lt;br /&gt;
&lt;br /&gt;
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
{{red|The current v17 database is MyMusic60.db}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== albumartistview ====&lt;br /&gt;
This table combines album with each album artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || = 0 (fake role ID field)&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || = &amp;quot;AlbumArtist&amp;quot; (fake role desc field)&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order artist appears in credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== albumview ====&lt;br /&gt;
A view of the album table with some additional fields aggregated from the songs of that album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Votes (for album rating)&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer ||Average of number of times songs on album are played &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song on album&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Last date any song on album was played&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== artistview ====&lt;br /&gt;
A view of the artist table with an additional field aggregated from the songs by that artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist birthday (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band formation information&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist genres (just text, no link to genre table) &lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Date artist died (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band disbanded information&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years artist is active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs of available artist images&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URLs of available artist fanart&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song by artist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== songartistview ====&lt;br /&gt;
A view that joins song to artist and artist role.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || ID from role table&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Description of role&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID Hash&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order artist appears in song credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== songview ====&lt;br /&gt;
A view that joins song to album and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song track number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Songs release year&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of music file&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Musicbrainz track ID&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || Play count&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || Start position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || End position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; time last played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song rating&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || Song rated by user (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for song rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song description or comment&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album title&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Full path for music file&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag (song is on a compilation album)&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumArtists || text || Album artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|mood || text || Song mood&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text ||  Music file timestamp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== album ====&lt;br /&gt;
An album. This equates to what Musicbrainz call a &amp;quot;release&amp;quot; and represents the unique release (i.e. issuing) of an item on a specific date with specific release information such as the country, label, etc. Hence album title and artist do not have to be unique as long as we have the release ID (Musicbrainz album ID), Kodi can handle different versions of the same album e.g. original release and then a later remaster (both same title and artist).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table ||||&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name |||| ALBUM || &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz album ID |||| MUSICBRAINZ_ALBUMID || &amp;lt;musicBrainzAlbumID&amp;gt;&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album artist(s) description (not always a concatenation of names) |||| ALBUMARTIST,  &amp;lt;br /&amp;gt;&lt;br /&gt;
ALBUMARTISTS, &amp;lt;br /&amp;gt;&lt;br /&gt;
ARTIST and ARTISTS&lt;br /&gt;
|| &amp;lt;artistdesc&amp;gt;&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table) |||| GENRE || &amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year |||| YEAR or DATE || &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [Unused] ||||&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag |||| COMPILATION || &amp;lt;compilation&amp;gt;&amp;lt;/compilation&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods ||||  || &amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles ||||  || &amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes ||||  || &amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review ||||  || &amp;lt;review&amp;gt;&amp;lt;/review&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images ||||  || &amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label |||| LABEL || &amp;lt;label&amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot; |||| RELEASETYPE || &amp;lt;type&amp;gt;&amp;lt;/type&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating ||||  || &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/rating&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10) ||||  || &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/userrating&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || text || Date/time data scraped from online sources or NFO files ||||&lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot; ||||  || &amp;lt;releasetype&amp;gt;&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Votes (for album rating) ||||  || &amp;lt;votes&amp;gt;&amp;lt;/votes&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows related Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the XML tag are allowed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== album_artist ====&lt;br /&gt;
This table links artists and albums&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order of artist names for credits&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || text || Artist name (denormalised)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== album_genre ====&lt;br /&gt;
This links albums with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order of genre for concatentation &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== albuminfosong ====&lt;br /&gt;
Track listing information for the tracks on an album. This is returned when additional information for an album is scraped from online sources or NFO files. It has no relationship with the songs actually in the user&#039;s music collection, it is just more descriptive details about the album.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfoSong || integer || Primary Key ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Foreign key to [[Databases#album|album table]] ||||&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Track number ||||&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
   &amp;lt;position&amp;gt;&amp;lt;/position&amp;gt;&lt;br /&gt;
 &amp;lt;/track&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Track title ||||&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/track&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Track duration in seconds ||||&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
   &amp;lt;duration&amp;gt;&amp;lt;/duration&amp;gt;&lt;br /&gt;
 &amp;lt;/track&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
The current artwork for artists and albums&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#album|album]]or [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || &amp;quot;album&amp;quot; or &amp;quot;artist&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|type || text || art type e.g. &amp;quot;thumb&amp;quot;, &amp;quot;fanart&amp;quot; etc.&lt;br /&gt;
|-&lt;br /&gt;
|url || text || URL of image (can be remote, local or music file with art embedded)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== artist ====&lt;br /&gt;
An artist is generally a musician, group of musicians, or other music professional (like a producer or engineer). E.g. Bob Dylan, Pink Floyd, London Symphony Orchestra, Andrew Collins (producer).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table ||||&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name |||| ARTIST, ARTISTS, &amp;lt;br /&amp;gt; ALBUMARTIST and &amp;lt;br /&amp;gt;&lt;br /&gt;
ALBUMARTISTS &lt;br /&gt;
&lt;br /&gt;
|| &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID |||| MUSICBRAINZ_ARTISTID || &amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist birthday (and place) ||||  || &amp;lt;born&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band formation information ||||  || &amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist genres (just text, no link to genre table)  ||||  || &amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist moods ||||  || &amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist styles ||||  || &amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist instruments ||||  || &amp;lt;instruments&amp;gt;&amp;lt;/instruments&amp;gt;  ^^&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist biography ||||  || &amp;lt;biography&amp;gt;&amp;lt;/biography&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Date artist died (and place) ||||  || &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band disbanded information ||||  || &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years artist is active ||||  || &amp;lt;yearsactive&amp;gt;&amp;lt;/yearsactive&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs of available artist images ||||  || &amp;lt;thumb preview=&amp;quot; &amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URLs of available artist fanart ||||  || &amp;lt;fanart&amp;gt;&amp;lt;thumb preview=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&amp;lt;/fanart&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || varchar(20) || Date last scraped metadata&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== content ====&lt;br /&gt;
The scraper addon and settings used for scraping additional information for specific albums or artists.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Virtual path encoding what album or artist e.g. &amp;quot;musicdb://artists/235&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strScraperPath || text || Scraper name e.g. &amp;quot;metadata.artists.universal&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || &amp;quot;artists&amp;quot; or &amp;quot;albums&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Scraper settings as XML&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== cue ====&lt;br /&gt;
Cuesheet information that has been extracted from a FLAC file. Generally Cuesheets as separate files are not handled in this way, only those embedded in FLAC files.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| MusicFileTag&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path(music)|music path]] of where file is located ||||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of FLAC file the cuesheet is embedded in ||||&lt;br /&gt;
|-&lt;br /&gt;
|strCuesheet || text || Cuesheet |||| CUESHEET&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== discography ====&lt;br /&gt;
The discography of an artist. This is returned when additional information for an artist is scraped from online sources or NFO files. It has no relationship with the albums actually in the user&#039;s music collection, it is just details about the artist.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]] ||||&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || text || Album title |||| &lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strYear || text || Year album released ||||&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== genre(music) ====&lt;br /&gt;
A music genre. This is a lookup table that enumerates the song genre values read from the genre tags embedded in music files e.g. &amp;quot;Progressive Rock&amp;quot;, &amp;quot;Baroque&amp;quot; etc. But could contain anything that has been given as a &amp;quot;genre&amp;quot;, and is not strictly limited to music genres.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key ||||  || &lt;br /&gt;
|-&lt;br /&gt;
|strGenre || varchar(256) || Genre Name |||| GENRE  || &amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; ^^&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== path(music) ====&lt;br /&gt;
The path of a folder containing music that has been scanned into the music library. This holds hash values of name, size, and timestamp for each folder and sub folder that is used to determine if the conents have changed and thererfore the music files need rescanning as part of library update.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description &lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media path &lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== role ====&lt;br /&gt;
An artist role, a way that an artist has contributed to or been involved with a song. This could be by being in the song artist credits (&amp;quot;artist&amp;quot;), as a musician (&amp;quot;Guitar&amp;quot;, &amp;quot;Orchestra&amp;quot; or &amp;quot;vocals&amp;quot; etc.), as composer, conductor, lyricist etc. or involved in some other way as music professional e.g. producer, engineer, mixer etc.  This is a lookup table that enumerates the various roles that have been read from tags embedded in music files.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] **&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || Primary Key ||||&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Description of role ||||&lt;br /&gt;
ARTIST, ARRANGER, COMPOSER, CONDUCTOR, &amp;lt;br /&amp;gt;&lt;br /&gt;
DJMIXER, ENGINEER, LYRICIST, MIXER, &amp;lt;br /&amp;gt;&lt;br /&gt;
PRODUCER, REMIXER and PERFORMER &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== song ====&lt;br /&gt;
A song. It is the way that the individual track(s) from a music file are held in the music library. Generally a music file contains just one song, however it may contain more and have an associated cuesheet (separately or embedded) that identifies the individual tracks. A song may be from an album (the release of several tracks as one product so includes EPs etc. ), or a single. Singles from an artist (no album title given in the embedded tags) are internally linked with a fake album in the album table.  &lt;br /&gt;
 	&lt;br /&gt;
The music library can contain songs with the same title, artist credits, track number and album as long as they come from separate music files. Unexpectedly Musicbrainz Track ID is not unique on an album, recordings are sometimes repeated e.g. &amp;quot;[silence]&amp;quot; or on a disc set. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] **&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table ||||&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table ||||&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]] ||||&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song artist(s) description (not always a concatenation of names) |||| ARTIST and ARTISTS&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres (denormalised concatenation of values in genre table) |||| GENRE&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song title |||| TITLE&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song disc (upper 4 bytes) and track number (lower 4 bytes)|||| TRACKNUMBER and &amp;lt;br /&amp;gt; DISCNUMBER&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song duration in seconds ||||&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Songs release year |||| YEAR or DATE&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unused] ||||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of music file ||||&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Musicbrainz track ID |||| MUSICBRAINZ_TRACKID&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || Play count ||||&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || Start position (in seconds) when song from cuesheet ||||&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || End position (in seconds) when song from cuesheet ||||&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [unused]  ||||&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; time last played ||||&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song rating ||||&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || Song rated by user (out of 10) |||| RATING&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song description or comment |||| COMMENT&lt;br /&gt;
|-&lt;br /&gt;
|mood || text || Song mood |||| MOOD&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text ||  Music file timestamp ||||&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for song rating ||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== song_artist ====&lt;br /&gt;
This table links songs to artists and the roles they contributed.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|idRole || integer || Foreign key to [[Databases#role|role table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order in artist credits&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || text || Name of artist (denormalised)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== song_genre ====&lt;br /&gt;
This table links the songs with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Genre order when concatenating to single string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== version(music) ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of the music database&lt;br /&gt;
|-&lt;br /&gt;
|iCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Video Library ==&lt;br /&gt;
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of Kodi. The following information is for version 75.&lt;br /&gt;
&lt;br /&gt;
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
{{red|The current database in use for v17 is MyVideos107.db}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== episodeview ====&lt;br /&gt;
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Path to episode file&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || text ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || text ||  User Rating&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || text ||  Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Name of program&lt;br /&gt;
|-&lt;br /&gt;
|genre || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|studio || text || Studio&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || Premiered Date&lt;br /&gt;
|-&lt;br /&gt;
|mpaa || text || MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Resume Point&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Length of video&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== movieview ====&lt;br /&gt;
A view that joins movie to file and path.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Image URL&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text ||  Movie Set&lt;br /&gt;
|-&lt;br /&gt;
|strSetOverview || text ||  Movie Set plot&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Resume Point&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Length of video&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideoview ====&lt;br /&gt;
A view that joins musicvideo to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || Premier of Music Video&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowview ====&lt;br /&gt;
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|-&lt;br /&gt;
|duration || integer || Total duration&lt;br /&gt;
|-&lt;br /&gt;
|idParentPath || integer ||&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow counts ====&lt;br /&gt;
This table stores the TV Show watched count, total seasons, last played and date added data&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date Added&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The information in the Video Library is organized into the following tables. Several large tables (such as [[Databases#episode|episode]], [[Databases#movie|movie]], [[Databases#settings|settings]], and [[Databases#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.&lt;br /&gt;
&lt;br /&gt;
==== actor ====&lt;br /&gt;
This table stores actor, artist, director, and writer information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Name of the actor, artist, director, or writer&lt;br /&gt;
|-&lt;br /&gt;
|art_urls|| text || Image URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actor_link ====&lt;br /&gt;
This table links actors to Movies, TV Shows, Episodes, Music Videos and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#tvshow|tv show table]], [[Databases#movie|movie table]],[[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, TV Show, Episode, Music Video&lt;br /&gt;
|-&lt;br /&gt;
|role || text || Role the actor played&lt;br /&gt;
|-&lt;br /&gt;
|cast_order || integer || Order actors will be displayed&lt;br /&gt;
|}==== art ====&lt;br /&gt;
This table stores URLs for video art metadata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || The id of the media this piece of art is for&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor&lt;br /&gt;
|-&lt;br /&gt;
|type || text || The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart&lt;br /&gt;
|-&lt;br /&gt;
|url || text || Image URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== bookmark ====&lt;br /&gt;
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idBookmark || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|timeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || integer || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|thumbNailImage || text || Thumbnail for bookmark&lt;br /&gt;
|-&lt;br /&gt;
|player || text || Player used to store bookmark&lt;br /&gt;
|-&lt;br /&gt;
|playerState || text || Player&#039;s internal state in XML&lt;br /&gt;
|-&lt;br /&gt;
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country ====&lt;br /&gt;
This table lists countries.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|country_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Country Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country link ====&lt;br /&gt;
This table links countries to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|country_id || integer || Foreign key to [[Databases#country|country table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer ||Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || integer || Movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== director_link ====&lt;br /&gt;
This table links directors to Movies, TV show episodes and Music Videos&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#movie|movie table]],[[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, Episode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== episode ====&lt;br /&gt;
This table stores television episode information. Information concerning the series is stored in [[Databases#tvshow|tvshow]]. To link an episode to its parent series, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Path to episode file&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || text ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || text ||  User Rating&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || text ||  Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
==== files ====&lt;br /&gt;
This table stores filenames and links the path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre ====&lt;br /&gt;
This table stores genre information. For convenience the contents are duplicated in [[Databases#movie|movie]] and [[Databases#tvshow|tvshow]], so a join isn&#039;t necessary.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|genre_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Genre label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre_link ====&lt;br /&gt;
This table links genres to movies. (The contents are also stored in movies.c14, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|genre_id || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#movie|movie table]], [[Databases#tvshow|tv show table]], [[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, TV Show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movie ====&lt;br /&gt;
This table stores movie information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Image URL&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movielinktvshow ====&lt;br /&gt;
This table links movies to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideo ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path ====&lt;br /&gt;
This table stores path information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || Type of content (tvshows, movies, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|strScraper || text || XML file of scraper used for this path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash&lt;br /&gt;
|-&lt;br /&gt;
|scanRecursive || integer || Recursive scan setting&lt;br /&gt;
|-&lt;br /&gt;
|useFolderNames || bool || User folder names setting&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Custom settings used by scraper&lt;br /&gt;
|-&lt;br /&gt;
|noUpdate || bool || Exclude path from library update&lt;br /&gt;
|-&lt;br /&gt;
|exclude || bool || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|idParentPath || integer || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== rating ====&lt;br /&gt;
This table stores the ratings for TV Shows, Episodes and Movies&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|rating_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#tvshow|tv show table]], [[Databases#movie|movie table]],&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movies, TV Show, TV Episode&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || default&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || rating from scraper site&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || votes from scraper site&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== seasons ====&lt;br /&gt;
This table stores the links between tv show and seasons.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idShow|| integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|season || integer || Season number&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== sets ====&lt;br /&gt;
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|-&lt;br /&gt;
|strOverview || text || The description of the set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== settings ====&lt;br /&gt;
This table stores settings for individual files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlace || bool || Deinterlace&lt;br /&gt;
|-&lt;br /&gt;
|ViewMode|| integer || ViewMode&lt;br /&gt;
|-&lt;br /&gt;
|ZoomAmount|| float || ZoomAmount&lt;br /&gt;
|-&lt;br /&gt;
|PixelRatio|| float || PixelRatio&lt;br /&gt;
|-&lt;br /&gt;
|VerticalShift || float|| &lt;br /&gt;
|-&lt;br /&gt;
|AudioStream || integer || Selected audio stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleStream || integer || Selected subtitle stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleDelay || float || Amount of delay for subtitles&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleOn || bool || Enable subtitles&lt;br /&gt;
|-&lt;br /&gt;
|Brightness || integer || Brightness &lt;br /&gt;
|-&lt;br /&gt;
|Contrast || integer || Contrast &lt;br /&gt;
|-&lt;br /&gt;
|Gamma || integer || Gamma &lt;br /&gt;
|-&lt;br /&gt;
|VolumeAmplification || float || VolumeAmplification &lt;br /&gt;
|-&lt;br /&gt;
|AudioDelay || float || AudioDelay &lt;br /&gt;
|-&lt;br /&gt;
|OutputToAllSpeakers || bool || OutputToAllSpeakers &lt;br /&gt;
|-&lt;br /&gt;
|ResumeTime || integer || ResumeTime &lt;br /&gt;
|-&lt;br /&gt;
|Crop || bool || Crop &lt;br /&gt;
|-&lt;br /&gt;
|CropLeft || integer || CropLeft &lt;br /&gt;
|-&lt;br /&gt;
|CropRight || integer || CropRight &lt;br /&gt;
|-&lt;br /&gt;
|CropTop || integer || CropTop &lt;br /&gt;
|-&lt;br /&gt;
|CropBottom || integer || CropBottom &lt;br /&gt;
|-&lt;br /&gt;
|Sharpness || float || Sharpness&lt;br /&gt;
|-&lt;br /&gt;
|NoiseReduction || float || Noise Reduction&lt;br /&gt;
|-&lt;br /&gt;
|NonLinStretch || bool || Non Linear Stretch&lt;br /&gt;
|-&lt;br /&gt;
|PostProcess || bool || Post Processing&lt;br /&gt;
|-&lt;br /&gt;
|ScalingMethod || integer || Scaling&lt;br /&gt;
|-&lt;br /&gt;
|DeinterlaceMode || integer || Deinterlace mode&lt;br /&gt;
|-&lt;br /&gt;
|StereoMode || integer || Stereo Mode&lt;br /&gt;
|-&lt;br /&gt;
|StereoInvert || bool || Stereo Inversion&lt;br /&gt;
|-&lt;br /&gt;
|VideoStream || integer || VideoStream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== stacktimes ====&lt;br /&gt;
This table stores playing times for files (used for playing multi-file videos).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|times|| text || Times&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== streamdetails ====&lt;br /&gt;
This table contains information regarding codecs used, aspect ratios etc&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles&lt;br /&gt;
|-&lt;br /&gt;
|strVideoCodec|| text || Video codex (xvid etc)&lt;br /&gt;
|-&lt;br /&gt;
|fVideoAspect|| real || Aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
|iVideoWidth|| integer || Width of the video&lt;br /&gt;
|-&lt;br /&gt;
|iVideoHeight|| integer || Height of the video&lt;br /&gt;
|-&lt;br /&gt;
|strAudioCodec|| text || Audio codec (aac, mp3 etc)&lt;br /&gt;
|-&lt;br /&gt;
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)&lt;br /&gt;
|-&lt;br /&gt;
|strAudioLanguage|| text || Language of the audio track&lt;br /&gt;
|-&lt;br /&gt;
|strSubtitleLanguage|| text || Language of the subtitles&lt;br /&gt;
|-&lt;br /&gt;
|iVideoDuration|| integer || &lt;br /&gt;
|-&lt;br /&gt;
|strStereoMode || text || Stereo Mode&lt;br /&gt;
|-&lt;br /&gt;
|strVideoLanguage|| text || Language of the Video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio ====&lt;br /&gt;
This table stores studio information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|studio_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Studio Label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio link ====&lt;br /&gt;
This table links studios to movies, music videos and tv shows&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|studio_id || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#movie|movie table]], [[Databases#tvshow|tv show table]], [[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, TV Show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== tag ====&lt;br /&gt;
This stores tags.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|tag_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Tag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== taglinks ====&lt;br /&gt;
This table links tags to various media.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|tag_id || integer || Foreign key to [[Databases#tag|tag table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow ====&lt;br /&gt;
This table stores information about a television series. Information concerning the shows episodes is stored in [[Databases#episode|episode]]. To link a TV show to its episodes, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date tv show premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkpath ====&lt;br /&gt;
This table links a TV show to its path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== uniqueid ====&lt;br /&gt;
This table links a Movie, TV show and Episode to its the scraper site&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|-&lt;br /&gt;
|value || text || ID at scraper site&lt;br /&gt;
|-&lt;br /&gt;
|type || text || Scraper site&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writer_link ====&lt;br /&gt;
This table links writers stored in the actors table to movies and episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The View Modes Database ==&lt;br /&gt;
Kodi can track a user&#039;s View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating Kodi.&lt;br /&gt;
&lt;br /&gt;
The View Modes database is stored in userdata/Database/ViewModes.db.&lt;br /&gt;
&lt;br /&gt;
{{red|The current database in use for v17 is ViewModes6.db}}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The View Modes database uses only two tables. Most of the useful information is in [[Databases#view|view]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== view ====&lt;br /&gt;
This table stores details on the saved view mode for all known paths.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idView || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|window || integer || Window GUI ID&lt;br /&gt;
|-&lt;br /&gt;
|path || text || Path to trigger the view on&lt;br /&gt;
|-&lt;br /&gt;
|viewMode || integer || View Mode&lt;br /&gt;
|-&lt;br /&gt;
|sortMethod || integer || ID of sort method&lt;br /&gt;
|-&lt;br /&gt;
|sortOrder || integer || Sort order (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|sortAttributes || integer || &lt;br /&gt;
|-&lt;br /&gt;
|skin || text || Skin settings apply to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Version table]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=130625</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=130625"/>
		<updated>2017-09-07T14:13:14Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Reinstate table definintions for album, artist and song tables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Development]] {{l2| [[userdata folder]] }} }}&lt;br /&gt;
{{see also|Databases/Versions | nfo}}&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the Databases ==&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building SQL Queries ===&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Accessing the Databases with Kodi Python ===&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
Incorporated into the tables below are the corresponding Music File Tags read and the NFO tags exported and imported by Kodi.&lt;br /&gt;
{{see also|Import-Export_library | nfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Music Library ==&lt;br /&gt;
This database contains all information concerning music files that you&#039;ve added to the Music Library. It is used in the Music portion of Kodi. The following information is for version 32.&lt;br /&gt;
&lt;br /&gt;
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
{{red|The current v17 database is MyMusic60.db}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== albumartistview ====&lt;br /&gt;
This table combines album with each album artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || = 0 (fake role ID field)&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || = &amp;quot;AlbumArtist&amp;quot; (fake role desc field)&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order artist appears in credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== albumview ====&lt;br /&gt;
A view of the album table with some additional fields aggregated from the songs of that album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Votes (for album rating)&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer ||Average of number of times songs on album are played &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song on album&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Last date any song on album was played&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== artistview ====&lt;br /&gt;
A view of the artist table with an additional field aggregated from the songs by that artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist birthday (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band formation information&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist genres (just text, no link to genre table) &lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Date artist died (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band disbanded information&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years artist is active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs of available artist images&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URLs of available artist fanart&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song by artist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== songartistview ====&lt;br /&gt;
A view that joins song to artist and artist role.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || ID from role table&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Description of role&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID Hash&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order artist appears in song credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== songview ====&lt;br /&gt;
A view that joins song to album and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song track number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Songs release year&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of music file&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Musicbrainz track ID&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || Play count&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || Start position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || End position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; time last played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song rating&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || Song rated by user (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for song rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song description or comment&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album title&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Full path for music file&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag (song is on a compilation album)&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumArtists || text || Album artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|mood || text || Song mood&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text ||  Music file timestamp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== album ====&lt;br /&gt;
An album. This equates to what Musicbrainz call a &amp;quot;release&amp;quot; and represents the unique release (i.e. issuing) of an item on a specific date with specific release information such as the country, label, etc. Hence album title and artist do not have to be unique as long as we have the release ID (Musicbrainz album ID), Kodi can handle different versions of the same album e.g. original release and then a later remaster (both same title and artist).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table ||||&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name |||| ALBUM || &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz album ID |||| MUSICBRAINZ_ALBUMID || &amp;lt;musicBrainzAlbumID&amp;gt;&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album artist(s) description (not always a concatenation of names) |||| ALBUM ARTIST or &amp;lt;br /&amp;gt;&lt;br /&gt;
ALBUMARTISTS or &amp;lt;br /&amp;gt;&lt;br /&gt;
MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|| &amp;lt;artistdesc&amp;gt;&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table) |||| GENRE || &amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year |||| YEAR or DATE || &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [Unused] ||||&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag |||| COMPILATION || &amp;lt;compilation&amp;gt;&amp;lt;/compilation&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods ||||  || &amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles ||||  || &amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes ||||  || &amp;lt;theme&amp;gt;&amp;lt;/theme&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review ||||  || &amp;lt;review&amp;gt;&amp;lt;/review&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images ||||  || &amp;lt;thumb preview=&amp;quot;path&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label |||| LABEL || &amp;lt;label&amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot; |||| RELEASETYPE || &amp;lt;type&amp;gt;&amp;lt;/type&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating ||||  || &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/rating&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10) ||||  || &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/userrating&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || text || Date/time data scraped from online sources or NFO files ||||&lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot; ||||  || &amp;lt;releasetype&amp;gt;&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Votes (for album rating) ||||  || &amp;lt;votes&amp;gt;&amp;lt;/votes&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== album_artist ====&lt;br /&gt;
This table links artists and albums&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order of artist names for credits&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || text || Artist name (denormalised)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== album_genre ====&lt;br /&gt;
This links albums with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order of genre for concatentation &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== albuminfosong ====&lt;br /&gt;
Track listing information for the tracks on an album. This is returned when additional information for an album is scraped from online sources or NFO files. It has no relationship with the songs actually in the user&#039;s music collection, it is just details about the album.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfoSong || integer || Primary Key ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Foreign key to [[Databases#album|album table]] ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Track number |||| TRACKNUMBER || &lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
   &amp;lt;position&amp;gt;&amp;lt;/position&amp;gt;&lt;br /&gt;
 &amp;lt;/track&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Track title |||| TITLE ||&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/track&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Track duration in seconds ||||  ||&lt;br /&gt;
 &amp;lt;track&amp;gt;&lt;br /&gt;
   &amp;lt;duration&amp;gt;&amp;lt;/duration&amp;gt;&lt;br /&gt;
 &amp;lt;/track&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
The current artwork for artists and albums&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#album|album]]or [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || &amp;quot;album&amp;quot; or &amp;quot;artist&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|type || text || art type e.g. &amp;quot;thumb&amp;quot;, &amp;quot;fanart&amp;quot; etc.&lt;br /&gt;
|-&lt;br /&gt;
|url || text || URL of image (can be remote, local or music file with art embedded)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== artist ====&lt;br /&gt;
An artist is generally a musician, group of musicians, or other music professional (like a producer or engineer). E.g. Bob Dylan, Pink Floyd, London Symphony Orchestra, Andrew Collins (producer).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table ||||&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name |||| ALBUMARTISTS or ARTIST &lt;br /&gt;
(scans both)&lt;br /&gt;
|| &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID |||| MUSICBRAINZ_ARTISTID || &amp;lt;musicBrainzArtistID&amp;gt;&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist birthday (and place) ||||  || &amp;lt;born&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band formation information ||||  || &amp;lt;formed&amp;gt;&amp;lt;/formed&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist genres (just text, no link to genre table)  ||||  || &amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist moods ||||  || &amp;lt;mood&amp;gt;&amp;lt;/mood&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist styles ||||  || &amp;lt;style&amp;gt;&amp;lt;/style&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist instruments ||||  || &amp;lt;instruments&amp;gt;&amp;lt;/instruments&amp;gt;  ^^&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist biography ||||  || &amp;lt;biography&amp;gt;&amp;lt;/biography&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Date artist died (and place) ||||  || &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band disbanded information ||||  || &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years artist is active ||||  || &amp;lt;yearsactive&amp;gt;&amp;lt;/yearsactive&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs of available artist images ||||  || &amp;lt;thumb preview=&amp;quot; &amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URLs of available artist fanart ||||  || &amp;lt;fanart&amp;gt;&amp;lt;thumb preview=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/thumb&amp;gt;&amp;lt;/fanart&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || varchar(20) || Date last scraped metadata&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== content ====&lt;br /&gt;
The scraper addon and settings used for scraping additional information for specific albums or artists.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Virtual path encoding what album or artist e.g. &amp;quot;musicdb://artists/235&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strScraperPath || text || Scraper name e.g. &amp;quot;metadata.artists.universal&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || &amp;quot;artists&amp;quot; or &amp;quot;albums&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Scraper settings as XML&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== cue ====&lt;br /&gt;
Cuesheet information that has been extracted from a FLAC file. Generally Cuesheets as separate files are not handled in this way, only those embedded in FLAC files.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path(music)|music path]] of where file is located ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of FLAC file the cuesheet is embedded in |||| ||&lt;br /&gt;
|-&lt;br /&gt;
|strCuesheet || text || Cuesheet |||| CUESHEET ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== discography ====&lt;br /&gt;
The discography of an artist. This is returned when additional information for an artist is scraped from online sources or NFO files. It has no relationship with the albums actually in the user&#039;s music collection, it is just details about the artist.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]] ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || text || Album title ||||  || &lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strYear || text || Year album released ||||  ||&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
   &amp;lt;year&amp;gt;&amp;lt;/year&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== genre(music) ====&lt;br /&gt;
A music genre. This is a lookup table that enumerates the song genre values read from the genre tags embedded in music files e.g. &amp;quot;Progressive Rock&amp;quot;, &amp;quot;Baroque&amp;quot; etc. But could contain anything that has been given as a &amp;quot;genre&amp;quot;, and is not strictly limited to music genres.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key ||||  || &lt;br /&gt;
|-&lt;br /&gt;
|strGenre || varchar(256) || Genre Name |||| GENRE  || &amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; ^^&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== path(music) ====&lt;br /&gt;
The path of a folder containing music that has been scanned into the music library. This holds hash values of name, size, and timestamp for each folder and sub folder that is used to determine if the conents have changed and thererfore the music files need rescanning as part of library update.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media path ||||  || &amp;lt;path&amp;gt;&amp;lt;/path&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash value ||||  ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== role ====&lt;br /&gt;
An artist role, a way that an artist has contributed to or been involved with a song. This could be by being in the song artist credits (&amp;quot;artist&amp;quot;), as a musician (&amp;quot;Guitar&amp;quot;, &amp;quot;Orchestra&amp;quot; or &amp;quot;vocals&amp;quot; etc.), as composer, conductor, lyricist etc. or involved in some other way as music professional e.g. producer, engineer, mixer etc.  This is a lookup table that enumerates the various roles that have been read from tags embedded in music files.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || Primary Key ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Description of role ||||&lt;br /&gt;
ARTIST; ARRANGER; COMPOSER; &amp;lt;br /&amp;gt;&lt;br /&gt;
CONDUCTOR; DJMIXER; ENGINEER; &amp;lt;br /&amp;gt;&lt;br /&gt;
LYRICIST; MIXER; ORCHESTRA; &amp;lt;br /&amp;gt;&lt;br /&gt;
PERFORMER; PRODUCER; REMIXER&amp;lt;br /&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== song ====&lt;br /&gt;
A song. It is the way that the individual track(s) from a music file are held in the music library. Generally a music file contains just one song, however it may contain more and have an associated cuesheet (separately or embedded) that identifies the individual tracks. A song may be from an album (the release of several tracks as one product so includes EPs etc. ), or a single. Singles from an artist (no album title given in the embedded tags) are internally linked with a fake album in the album table.  &lt;br /&gt;
 	&lt;br /&gt;
The music library can contain songs with the same title, artist credits, track number and album as long as they come from separate music files. Unexpectedly Musicbrainz Track ID is not unique on an album, recordings are sometimes repeated e.g. &amp;quot;[silence]&amp;quot; or on a disc set. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description |||| [[Music_tagging#Data_Kodi_Scrapes|MusicFileTag]] ** || NFO (xml) Tag&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table |||| ||&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]] |||| ||&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song artist(s) description (not always a concatenation of names) |||| ARTIST || &amp;lt;artistdesc&amp;gt;&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres (denormalised concatenation of values in genre table) |||| GENRE || &amp;lt;genre&amp;gt;&amp;lt;/genre&amp;gt; ^^^^&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song title |||| TITLE || &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song track number |||| TRACKNUMBER+DISCNUMBER || &amp;lt;position&amp;gt;&amp;lt;/position&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song duration in seconds ||||  || &amp;lt;duration&amp;gt;&amp;lt;/duration&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Songs release year |||| YEAR or DATE || &lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unused] ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of music file ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Musicbrainz track ID |||| MUSICBRAINZ_TRACKID || &amp;lt;musicBrainzTrackID&amp;gt;&amp;lt;/musicBrainzTrackID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || Play count ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || Start position (in seconds) when song from cuesheet ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || End position (in seconds) when song from cuesheet ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [unused]  ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; time last played ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song rating ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || Song rated by user (out of 10) ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song description or comment |||| COMMENT ||&lt;br /&gt;
|-&lt;br /&gt;
|mood || text || Song mood |||| MOOD ||&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text ||  Music file timestamp ||||  ||&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for song rating ||||  ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|** || MusicFileTag column shows Vorbis/Flac tags. Click on column heading for other tag types&lt;br /&gt;
|-&lt;br /&gt;
|^^ || Multiple entries of the tag are allowed&lt;br /&gt;
|-&lt;br /&gt;
|^^^^ || concatenation of multiple entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== song_artist ====&lt;br /&gt;
This table links songs to artists and the roles they contributed.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|idRole || integer || Foreign key to [[Databases#role|role table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order in artist credits&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || text || Name of artist (denormalised)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== song_genre ====&lt;br /&gt;
This table links the songs with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Genre order when concatenating to single string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== version(music) ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of the music database&lt;br /&gt;
|-&lt;br /&gt;
|iCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Video Library ==&lt;br /&gt;
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of Kodi. The following information is for version 75.&lt;br /&gt;
&lt;br /&gt;
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
{{red|The current database in use for v17 is MyVideos107.db}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== episodeview ====&lt;br /&gt;
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Path to episode file&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || text ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || text ||  User Rating&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || text ||  Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Name of program&lt;br /&gt;
|-&lt;br /&gt;
|genre || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|studio || text || Studio&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || Premiered Date&lt;br /&gt;
|-&lt;br /&gt;
|mpaa || text || MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Resume Point&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Length of video&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== movieview ====&lt;br /&gt;
A view that joins movie to file and path.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Image URL&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text ||  Movie Set&lt;br /&gt;
|-&lt;br /&gt;
|strSetOverview || text ||  Movie Set plot&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Resume Point&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Length of video&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideoview ====&lt;br /&gt;
A view that joins musicvideo to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || Premier of Music Video&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowview ====&lt;br /&gt;
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|-&lt;br /&gt;
|duration || integer || Total duration&lt;br /&gt;
|-&lt;br /&gt;
|idParentPath || integer ||&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow counts ====&lt;br /&gt;
This table stores the TV Show watched count, total seasons, last played and date added data&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date Added&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The information in the Video Library is organized into the following tables. Several large tables (such as [[Databases#episode|episode]], [[Databases#movie|movie]], [[Databases#settings|settings]], and [[Databases#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.&lt;br /&gt;
&lt;br /&gt;
==== actor ====&lt;br /&gt;
This table stores actor, artist, director, and writer information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Name of the actor, artist, director, or writer&lt;br /&gt;
|-&lt;br /&gt;
|art_urls|| text || Image URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actor_link ====&lt;br /&gt;
This table links actors to Movies, TV Shows, Episodes, Music Videos and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#tvshow|tv show table]], [[Databases#movie|movie table]],[[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, TV Show, Episode, Music Video&lt;br /&gt;
|-&lt;br /&gt;
|role || text || Role the actor played&lt;br /&gt;
|-&lt;br /&gt;
|cast_order || integer || Order actors will be displayed&lt;br /&gt;
|}==== art ====&lt;br /&gt;
This table stores URLs for video art metadata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || The id of the media this piece of art is for&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor&lt;br /&gt;
|-&lt;br /&gt;
|type || text || The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart&lt;br /&gt;
|-&lt;br /&gt;
|url || text || Image URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== bookmark ====&lt;br /&gt;
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idBookmark || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|timeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || integer || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|thumbNailImage || text || Thumbnail for bookmark&lt;br /&gt;
|-&lt;br /&gt;
|player || text || Player used to store bookmark&lt;br /&gt;
|-&lt;br /&gt;
|playerState || text || Player&#039;s internal state in XML&lt;br /&gt;
|-&lt;br /&gt;
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country ====&lt;br /&gt;
This table lists countries.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|country_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Country Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country link ====&lt;br /&gt;
This table links countries to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|country_id || integer || Foreign key to [[Databases#country|country table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer ||Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || integer || Movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== director_link ====&lt;br /&gt;
This table links directors to Movies, TV show episodes and Music Videos&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#movie|movie table]],[[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, Episode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== episode ====&lt;br /&gt;
This table stores television episode information. Information concerning the series is stored in [[Databases#tvshow|tvshow]]. To link an episode to its parent series, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Path to episode file&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || text ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || text ||  User Rating&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || text ||  Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
==== files ====&lt;br /&gt;
This table stores filenames and links the path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre ====&lt;br /&gt;
This table stores genre information. For convenience the contents are duplicated in [[Databases#movie|movie]] and [[Databases#tvshow|tvshow]], so a join isn&#039;t necessary.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|genre_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Genre label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre_link ====&lt;br /&gt;
This table links genres to movies. (The contents are also stored in movies.c14, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|genre_id || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#movie|movie table]], [[Databases#tvshow|tv show table]], [[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, TV Show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movie ====&lt;br /&gt;
This table stores movie information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Image URL&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movielinktvshow ====&lt;br /&gt;
This table links movies to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideo ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path ====&lt;br /&gt;
This table stores path information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || Type of content (tvshows, movies, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|strScraper || text || XML file of scraper used for this path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash&lt;br /&gt;
|-&lt;br /&gt;
|scanRecursive || integer || Recursive scan setting&lt;br /&gt;
|-&lt;br /&gt;
|useFolderNames || bool || User folder names setting&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Custom settings used by scraper&lt;br /&gt;
|-&lt;br /&gt;
|noUpdate || bool || Exclude path from library update&lt;br /&gt;
|-&lt;br /&gt;
|exclude || bool || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|idParentPath || integer || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== rating ====&lt;br /&gt;
This table stores the ratings for TV Shows, Episodes and Movies&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|rating_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#tvshow|tv show table]], [[Databases#movie|movie table]],&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movies, TV Show, TV Episode&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || default&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || rating from scraper site&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || votes from scraper site&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== seasons ====&lt;br /&gt;
This table stores the links between tv show and seasons.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idShow|| integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|season || integer || Season number&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== sets ====&lt;br /&gt;
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|-&lt;br /&gt;
|strOverview || text || The description of the set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== settings ====&lt;br /&gt;
This table stores settings for individual files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlace || bool || Deinterlace&lt;br /&gt;
|-&lt;br /&gt;
|ViewMode|| integer || ViewMode&lt;br /&gt;
|-&lt;br /&gt;
|ZoomAmount|| float || ZoomAmount&lt;br /&gt;
|-&lt;br /&gt;
|PixelRatio|| float || PixelRatio&lt;br /&gt;
|-&lt;br /&gt;
|VerticalShift || float|| &lt;br /&gt;
|-&lt;br /&gt;
|AudioStream || integer || Selected audio stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleStream || integer || Selected subtitle stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleDelay || float || Amount of delay for subtitles&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleOn || bool || Enable subtitles&lt;br /&gt;
|-&lt;br /&gt;
|Brightness || integer || Brightness &lt;br /&gt;
|-&lt;br /&gt;
|Contrast || integer || Contrast &lt;br /&gt;
|-&lt;br /&gt;
|Gamma || integer || Gamma &lt;br /&gt;
|-&lt;br /&gt;
|VolumeAmplification || float || VolumeAmplification &lt;br /&gt;
|-&lt;br /&gt;
|AudioDelay || float || AudioDelay &lt;br /&gt;
|-&lt;br /&gt;
|OutputToAllSpeakers || bool || OutputToAllSpeakers &lt;br /&gt;
|-&lt;br /&gt;
|ResumeTime || integer || ResumeTime &lt;br /&gt;
|-&lt;br /&gt;
|Crop || bool || Crop &lt;br /&gt;
|-&lt;br /&gt;
|CropLeft || integer || CropLeft &lt;br /&gt;
|-&lt;br /&gt;
|CropRight || integer || CropRight &lt;br /&gt;
|-&lt;br /&gt;
|CropTop || integer || CropTop &lt;br /&gt;
|-&lt;br /&gt;
|CropBottom || integer || CropBottom &lt;br /&gt;
|-&lt;br /&gt;
|Sharpness || float || Sharpness&lt;br /&gt;
|-&lt;br /&gt;
|NoiseReduction || float || Noise Reduction&lt;br /&gt;
|-&lt;br /&gt;
|NonLinStretch || bool || Non Linear Stretch&lt;br /&gt;
|-&lt;br /&gt;
|PostProcess || bool || Post Processing&lt;br /&gt;
|-&lt;br /&gt;
|ScalingMethod || integer || Scaling&lt;br /&gt;
|-&lt;br /&gt;
|DeinterlaceMode || integer || Deinterlace mode&lt;br /&gt;
|-&lt;br /&gt;
|StereoMode || integer || Stereo Mode&lt;br /&gt;
|-&lt;br /&gt;
|StereoInvert || bool || Stereo Inversion&lt;br /&gt;
|-&lt;br /&gt;
|VideoStream || integer || VideoStream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== stacktimes ====&lt;br /&gt;
This table stores playing times for files (used for playing multi-file videos).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|times|| text || Times&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== streamdetails ====&lt;br /&gt;
This table contains information regarding codecs used, aspect ratios etc&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles&lt;br /&gt;
|-&lt;br /&gt;
|strVideoCodec|| text || Video codex (xvid etc)&lt;br /&gt;
|-&lt;br /&gt;
|fVideoAspect|| real || Aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
|iVideoWidth|| integer || Width of the video&lt;br /&gt;
|-&lt;br /&gt;
|iVideoHeight|| integer || Height of the video&lt;br /&gt;
|-&lt;br /&gt;
|strAudioCodec|| text || Audio codec (aac, mp3 etc)&lt;br /&gt;
|-&lt;br /&gt;
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)&lt;br /&gt;
|-&lt;br /&gt;
|strAudioLanguage|| text || Language of the audio track&lt;br /&gt;
|-&lt;br /&gt;
|strSubtitleLanguage|| text || Language of the subtitles&lt;br /&gt;
|-&lt;br /&gt;
|iVideoDuration|| integer || &lt;br /&gt;
|-&lt;br /&gt;
|strStereoMode || text || Stereo Mode&lt;br /&gt;
|-&lt;br /&gt;
|strVideoLanguage|| text || Language of the Video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio ====&lt;br /&gt;
This table stores studio information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|studio_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Studio Label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio link ====&lt;br /&gt;
This table links studios to movies, music videos and tv shows&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|studio_id || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#movie|movie table]], [[Databases#tvshow|tv show table]], [[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, TV Show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== tag ====&lt;br /&gt;
This stores tags.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|tag_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Tag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== taglinks ====&lt;br /&gt;
This table links tags to various media.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|tag_id || integer || Foreign key to [[Databases#tag|tag table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow ====&lt;br /&gt;
This table stores information about a television series. Information concerning the shows episodes is stored in [[Databases#episode|episode]]. To link a TV show to its episodes, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date tv show premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkpath ====&lt;br /&gt;
This table links a TV show to its path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== uniqueid ====&lt;br /&gt;
This table links a Movie, TV show and Episode to its the scraper site&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|-&lt;br /&gt;
|value || text || ID at scraper site&lt;br /&gt;
|-&lt;br /&gt;
|type || text || Scraper site&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writer_link ====&lt;br /&gt;
This table links writers stored in the actors table to movies and episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The View Modes Database ==&lt;br /&gt;
Kodi can track a user&#039;s View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating Kodi.&lt;br /&gt;
&lt;br /&gt;
The View Modes database is stored in userdata/Database/ViewModes.db.&lt;br /&gt;
&lt;br /&gt;
{{red|The current database in use for v17 is ViewModes6.db}}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The View Modes database uses only two tables. Most of the useful information is in [[Databases#view|view]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== view ====&lt;br /&gt;
This table stores details on the saved view mode for all known paths.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idView || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|window || integer || Window GUI ID&lt;br /&gt;
|-&lt;br /&gt;
|path || text || Path to trigger the view on&lt;br /&gt;
|-&lt;br /&gt;
|viewMode || integer || View Mode&lt;br /&gt;
|-&lt;br /&gt;
|sortMethod || integer || ID of sort method&lt;br /&gt;
|-&lt;br /&gt;
|sortOrder || integer || Sort order (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|sortAttributes || integer || &lt;br /&gt;
|-&lt;br /&gt;
|skin || text || Skin settings apply to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Version table]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Karellen/scratchpad01&amp;diff=130570</id>
		<title>User:Karellen/scratchpad01</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Karellen/scratchpad01&amp;diff=130570"/>
		<updated>2017-08-31T14:54:31Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Music Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Video library]] {{l2|[[Music library]]}}|[[Video management|Management]] &amp;lt;br /&amp;gt;&amp;amp;nbsp; }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;NFO files can be used to provide metadata to the library for video and a music files. They are helpful if the metadata fetched from a web site does not match the video or music you have, or if data for that particular file does not exist, such as for home movies. It can also be used to control the search behaviour of scrapers.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What is nfo =&lt;br /&gt;
&#039;&#039;&#039;nfo&#039;&#039;&#039; is a contraction of Info or Information. It is a Filename Extension - &#039;&#039;mymovie.nfo&#039;&#039; and the contents of the file are written in [http://en.wikipedia.org/wiki/XML XML]. The file itself does nothing except hold information. It is basically a text document with special tags inserted around the information. These tags are recognised by Kodi which enables data importing. &lt;br /&gt;
&lt;br /&gt;
Kodi uses nfo files as one way of importing metadata into the library. It may also be used as a method of exporting the library for various reasons, including backup.  &#039;&#039;&#039;&#039;&#039;See: [[Import-Export_library | Import &amp;amp; Export]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
One of the most considered features of Kodi is the way media is displayed. Gone are the days when choosing a movie to watch or album to listen to involved scrolling through lines of text. Kodi uses [[Artwork]], and Extended Information to display your media. This information includes Actors, Directors, Plots, Taglines, Ratings, Run Times  and more. All this data, known as metadata, is stored in the Kodi Library. The Library is a [http://www.sqlite.org/ SQLite database].&lt;br /&gt;
&lt;br /&gt;
There are two primary methods to load metadata into your library:&lt;br /&gt;
#Use the online scraper &lt;br /&gt;
#Create a nfo file, from which Kodi is able to import the metadata&lt;br /&gt;
&lt;br /&gt;
For information on how to use the online scraper within Kodi:&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Adding_music_to_the_library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Adding_video_sources]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Set_content_and_scan]]&#039;&#039;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The remainder of this wiki topic will provide the required information to create and use nfo files.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Types of nfo =&lt;br /&gt;
Kodi can use the nfo file in one of two ways depending on the contents of the nfo file. This page primarily deals with the Metadata nfo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Metadata nfo ==&lt;br /&gt;
This is the most common use of the nfo file. The Metadata nfo contains the metadata for the movie/tv show/music video/album/artist within the file. Kodi will read this file and scrape its contents into the library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parsing nfo ==&lt;br /&gt;
A Parsing nfo does not contain any metadata that Kodi can use to scrape into the library. Instead it contains the URL to the movie/tv show/album/artist that you want scraped.&lt;br /&gt;
As an example, searching for &#039;&#039;The Mummy&#039;&#039; on [https://www.themoviedb.org/ TMDB] returns 65 titles. If you are attempting to add one of the more obscure versions to your library, chances are that Kodi will scrape the incorrect title, and trying to navigate to the 65th entry will be problematic. The parsing nfo offers an easy solution to this problem.&lt;br /&gt;
To create and use the parsing nfo, follow these steps:&lt;br /&gt;
#Locate the title at the appropriate scraper site&lt;br /&gt;
#Ensure you have named your files/folder the same as shown on the scraper site and in accordance with the [[Naming_video_files|Kodi naming conventions]]&lt;br /&gt;
#Open a text editor. &lt;br /&gt;
#Copy the entire address of the movie at the scraper site from the address bar and paste it into the text editor. No surrounding tags are required. &#039;&#039;see example after step 6&#039;&#039;&lt;br /&gt;
#Save the file in accordance with the naming convention in section 4 below. &#039;&#039;&#039;Ensure the extension is *.nfo and not *.nfo.txt or *.nfo.doc&#039;&#039;&#039;&lt;br /&gt;
#Run an Update Library. Kodi will parse the URL and locate the title and scrape the correct metadata.&lt;br /&gt;
 https://www.themoviedb.org/movie/15849-the-mummy&#039;&#039; &lt;br /&gt;
&amp;lt;!--- http://kodi.wiki/view/Scraper#.3CCustomFunction.3E ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating nfo =&lt;br /&gt;
The following are the three methods that may be used to create nfo files for Kodi. The simplest method is using a Media Manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Managers ==&lt;br /&gt;
This is, by far, the simplest method for creating nfo files for your media. The Media Manager can create nfo files in one of three ways:&lt;br /&gt;
#Scraping- This is the same process as performed by the Kodi scraper. The Media Manager will fetch metadata from the online scraper site and will create the nfo file, unlike Kodi that imports the metadata directly into the library database.&lt;br /&gt;
#Manual- The Media Manager offers a simple interface that allows you to manually type in the data. This method does not require you to have knowledge of XML tags&lt;br /&gt;
#Combination- A combination of both methods can be used. If you are not satisfied with the scraped metadata, then simply modify it.&lt;br /&gt;
&lt;br /&gt;
Once the program has been setup and pointed at your media, very little input is required by the user. Select a movie, tv show, album or artist and select scrape. Depending upon your settings, the media manager will scrape the media and create the nfo which is placed in the correct location with the media file. It can also download all artwork for the media.&lt;br /&gt;
There are a few media managers available. The following managers can be found in the Kodi forum:&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=259449  Ember Media Managers]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=142723  Tiny Media Manager aka TMM]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=129134  Media Companion 3]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=136333  MediaElch]&lt;br /&gt;
&lt;br /&gt;
Further information, screenshots and guides are available at the websites of the Media Managers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kodi Created nfo ==&lt;br /&gt;
This option requires that your library has already been scraped with metadata. Using the built in import/export function of Kodi, you can export the library metadata into individual nfo files  which are correctly created and saved. This is useful if you have an existing library and would like to backup the library or to import the library into another Kodi installation.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Import-Export_library | Import &amp;amp; Export]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Creation ==&lt;br /&gt;
The more difficult of the three methods. It requires basic knowledge of XML Tags. They can be created using a simple text editor such as Notepad in Windows, or the equivelant in other operating systems. There are dedicated code editors that can also be used. They will not provide the required Kodi tags, but they will avoid glitches when saving the nfo file, which is commonly experienced with text editors.&lt;br /&gt;
Two common code editors that can be used:&lt;br /&gt;
*[https://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
*[https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
&lt;br /&gt;
Requirements of the nfo file are as follows:&lt;br /&gt;
#Each Tag must have an opening tag and a closing tag. eg &#039;&#039;&amp;lt;title&amp;gt;my movie title&amp;lt;/title&amp;gt;&#039;&#039;.  &#039;&#039;&#039;&#039;&#039;&amp;lt;title&amp;gt;&#039;&#039;&#039;&#039;&#039; = opening tag, &#039;&#039;&#039;&#039;&#039;my movie title&#039;&#039;&#039;&#039;&#039; = metadata, &#039;&#039;&#039;&#039;&#039;&amp;lt;/title&amp;gt;&#039;&#039;&#039;&#039;&#039; = closing tag&lt;br /&gt;
#The file must be in Unicode Transformation Format-8 (UTF-8). The file must be saved in this format. The first line of the file must contain the following &#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&#039;&#039;&lt;br /&gt;
#The second line may contain a note detailing the creation time and date. It may also include the name of the media manager, if one was used to create it. This is optional. &#039;&#039;&amp;lt;!-- created on 2017-08-10 15:09:33 - by MediaManager --&amp;gt;&#039;&#039;&lt;br /&gt;
#The next line sets the nfo category - &amp;lt;movie&amp;gt;, &amp;lt;tvshow&amp;gt;, &amp;lt;episodedetails&amp;gt;, &amp;lt;artist&amp;gt;, &amp;lt;album&amp;gt; or &amp;lt;musicvideo&amp;gt;&lt;br /&gt;
#Between the opening and closing category tags are the tags for the media metadata.&lt;br /&gt;
#Available tags are listed in Section 8&lt;br /&gt;
&lt;br /&gt;
Once created, the file is saved with the nfo extension and placed in the folder as directed in Section 4.&lt;br /&gt;
&lt;br /&gt;
See example nfo files in Section 7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Placement =&lt;br /&gt;
Correct placement of the nfo file is essential. Failing to save the file in the correct location, as detailed below, will force Kodi to scrape the information from online sources or, if you have &#039;&#039;Local Info Only&#039;&#039; set as your scraper, then no entry will be made into the library.&lt;br /&gt;
&lt;br /&gt;
The order of importing metadata is as follows:&lt;br /&gt;
#nfo file. If no nfo file exists then&lt;br /&gt;
#online scraper sites&lt;br /&gt;
&lt;br /&gt;
When Kodi locates the nfo file it will load the *.nfo file and attempt to either,&lt;br /&gt;
#If the nfo file contains XML data (tags), Kodi will import the meta-data directly into the library from the .nfo file or&lt;br /&gt;
#Will parse the nfo file for a direct URL to the scraper info page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movies ==&lt;br /&gt;
Movies require one nfo file as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Movie *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved movies as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |BluRay Structure:&lt;br /&gt;
| width=300px |index.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\BDMV\index.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |DVD Structure:&lt;br /&gt;
| width=300px |VIDEO_TS.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\VIDEO_TS\VIDEO_TS.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Single movie in directory:&lt;br /&gt;
| width=300px |&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All movies in single directory:&lt;br /&gt;
| width=300px |&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TV Shows ==&lt;br /&gt;
TV Shows require the following nfo files&lt;br /&gt;
#One nfo file for the TV Show. See the first table below&lt;br /&gt;
#One nfo file for &#039;&#039;&#039;each&#039;&#039;&#039; Episode. See the second table below&lt;br /&gt;
For one TV Show with 10 episodes, you will require 11 nfo files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your TV Show *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved TV Show as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All formats&lt;br /&gt;
| width=300px |tvshow.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\tvshow.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5f5a1, #a1f5e4}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your TV Episode *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Episodes as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |BluRay Structure:&lt;br /&gt;
| width=300px |index.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\iZombie S01E01\BDMV\index.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |DVD Structure:&lt;br /&gt;
| width=300px |VIDEO_TS.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\iZombie S01E01\VIDEO_TS\VIDEO_TS.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Single Episode file in directory:&lt;br /&gt;
| width=300px |&amp;lt;EpisodeFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\iZombie S01E01\&amp;lt;EpisodeFileName&amp;gt;.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All episodes in TV Show directory:&lt;br /&gt;
| width=300px |&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\&amp;lt;EpisodeFileName&amp;gt;.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
Music will fetch additional album and album artist information from nfo files.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album&#039;&#039;&#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there. See the first table below.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album artist&#039;&#039;&#039; information each artist needs a separate artist.nfo file located in what Kodi determines as the unique common folder for that artist. Kodi does not fetch additional artist data for artists that only feature on songs, either on compilation albums or as guest artists on songs in albums by others, and you do not have any albums by them in your collection.&lt;br /&gt;
&lt;br /&gt;
{{note|There are weaknesses in the way that Kodi determines the location of the artist folder. It looks for the folder that is common to all the songs with that album artist, the name of that folder is irrelevent. If you have multiple albums by an artist all under an artist folder then this works perfectly. &lt;br /&gt;
However the algorithm does not work for collaboration albums, those that have more than one album artist e.g. &amp;quot;Riding with the King&amp;quot; by Eric Clapton and BB King, or classical music with composer, orchestra and conductor given as the album artist. Also if you have not kept all songs by an artist under a unique folder, then the artist directory will probably be mis-identified. The result is that Kodi can find the wrong artist.NFO file, and give the artist some other artist&#039;s information, or fail to fine the artist.nfo you created}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Artist *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Artist as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |artist.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\artist.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5f5a1, #a1f5e4}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Album *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Album as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |album.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\Crystal Visions\album.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Videos ==&lt;br /&gt;
Music Videos require one nfo for &#039;&#039;&#039;each&#039;&#039;&#039; music video in the folder. These nfo files need to be named exactly as the Music Video file is named, but with the nfo extension.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Videos *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Music Videos as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All formats&lt;br /&gt;
| width=300px |&amp;lt;MusicVideoFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyMusicVideos\&amp;lt;MusicVideoFileName&amp;gt;.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scraping nfo files =&lt;br /&gt;
There is no special procedure to scrape nfo files. Performing the usual Library Update will scrape the nfo files into the library. Be aware that nfo files are not easily interchangeable between Movies, TV Shows, Artists and Albums. Although they all share common tags, each also has its own specific tags that won&#039;t be recognised in other parts of the library. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After the NFO files are scanned into the library, the NFO file is no longer used and only serves as a backup. If you make changes to the NFO file you will need to &#039;&#039;&#039;[[refresh]]&#039;&#039;&#039; that library entry for the changes to be loaded into Kodi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kodi also contains a Local-NFO-only mode for when you add videos to the library, but this mode is only required if you want to prevent online-lookups for videos that lack NFO files. See &#039;&#039;&#039;[[Set content and scan#Local NFO only options]]&#039;&#039;&#039; for more information on this Local-NFO-only mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Advancedsettings.xml =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sample nfo Files =&lt;br /&gt;
Provided below are sample nfo files to assist with the manual creation process&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movie nfo ==&lt;br /&gt;
Sample Movie nfo file&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Movie nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;!-- created on 2017-08-10 15:09:33 - tinyMediaManager 2.9.3.1 --&amp;gt;&lt;br /&gt;
 &amp;lt;movie&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Ghost in the Shell&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;originaltitle&amp;gt;Ghost in the Shell&amp;lt;/originaltitle&amp;gt;&lt;br /&gt;
    &amp;lt;sorttitle&amp;gt;&amp;lt;/sorttitle&amp;gt;&lt;br /&gt;
    &amp;lt;rating&amp;gt;5.9&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2017&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;top250&amp;gt;&amp;lt;/top250&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;1936&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;outline&amp;gt;In the near future, Major is the first of her kind: a human saved from a terrible crash, then cyber-enhanced to be a perfect soldier devoted to stopping the world&#039;s most dangerous criminals.&amp;lt;/outline&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;In the near future, Major is the first of her kind: a human saved from a terrible crash, then cyber-enhanced to be a perfect soldier devoted to stopping the world&#039;s most dangerous criminals.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;tagline&amp;gt;There&#039;s nothing sadder than a puppet without a ghost.&amp;lt;/tagline&amp;gt;&lt;br /&gt;
    &amp;lt;runtime&amp;gt;107&amp;lt;/runtime&amp;gt;&lt;br /&gt;
    &amp;lt;thumb&amp;gt;https://assets.fanart.tv/fanart/movies/315837/movieposter/ghost-in-the-shell-5951b7c0843b0.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;http://image.tmdb.org/t/p/original/dXJh6bXF3WI1gpNuM3tNbnIiW2z.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;AU:M&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;certification&amp;gt;AU:M&amp;lt;/certification&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;tt1219827&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;ids&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
            &amp;lt;key&amp;gt;tmdb&amp;lt;/key&amp;gt;&lt;br /&gt;
            &amp;lt;value xsi:type=&amp;quot;xs:int&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;315837&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
            &amp;lt;key&amp;gt;imdb&amp;lt;/key&amp;gt;&lt;br /&gt;
            &amp;lt;value xsi:type=&amp;quot;xs:string&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;tt1219827&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
    &amp;lt;/ids&amp;gt;&lt;br /&gt;
    &amp;lt;tmdbId&amp;gt;315837&amp;lt;/tmdbId&amp;gt;&lt;br /&gt;
    &amp;lt;country&amp;gt;Australia, New Zealand, United States, United Kingdom, India, China, Canada, Japan, Hong Kong&amp;lt;/country&amp;gt;&lt;br /&gt;
    &amp;lt;premiered&amp;gt;2017-03-29&amp;lt;/premiered&amp;gt;&lt;br /&gt;
    &amp;lt;fileinfo&amp;gt;&lt;br /&gt;
        &amp;lt;streamdetails&amp;gt;&lt;br /&gt;
            &amp;lt;video&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;h264&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;aspect&amp;gt;1.78&amp;lt;/aspect&amp;gt;&lt;br /&gt;
                &amp;lt;width&amp;gt;1920&amp;lt;/width&amp;gt;&lt;br /&gt;
                &amp;lt;height&amp;gt;1080&amp;lt;/height&amp;gt;&lt;br /&gt;
                &amp;lt;durationinseconds&amp;gt;6417&amp;lt;/durationinseconds&amp;gt;&lt;br /&gt;
            &amp;lt;/video&amp;gt;&lt;br /&gt;
            &amp;lt;audio&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;TrueHD  AC3&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
                &amp;lt;channels&amp;gt;8&amp;lt;/channels&amp;gt;&lt;br /&gt;
            &amp;lt;/audio&amp;gt;&lt;br /&gt;
            &amp;lt;subtitle&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
            &amp;lt;/subtitle&amp;gt;&lt;br /&gt;
            &amp;lt;subtitle&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
            &amp;lt;/subtitle&amp;gt;&lt;br /&gt;
        &amp;lt;/streamdetails&amp;gt;&lt;br /&gt;
    &amp;lt;/fileinfo&amp;gt;&lt;br /&gt;
    &amp;lt;watched&amp;gt;false&amp;lt;/watched&amp;gt;&lt;br /&gt;
    &amp;lt;playcount&amp;gt;0&amp;lt;/playcount&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Action&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Crime&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Drama&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Mystery&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Science Fiction&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Thriller&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Paramount Pictures&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;DreamWorks SKG&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Shanghai Film Group&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Reliance Entertainment&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Arad Productions&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Grosvenor Park Productions&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Steven Paul Production&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Huahua Media&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Seaside Entertainment&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Amblin Partners&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Weying Galaxy Entertainment&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Ehren Kruger&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Jamie Moss&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Masamune Shirow&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;William Wheeler&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;director&amp;gt;Rupert Sanders&amp;lt;/director&amp;gt;&lt;br /&gt;
    &amp;lt;tag&amp;gt;BluRay&amp;lt;/tag&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Scarlett Johansson&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Major Motoko Kusanagi&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/8EueDe6rPF0jQU4LSpsH2Rmrqac.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Pilou Asb├ªk&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Batou&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/wcQRF5ZOBY8NX7xrjXE2pOBmwyZ.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Takeshi Kitano&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Daisuke Aramaki&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/xkXZ7HC8uyhu5MtNnbdP8mhdiFN.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Juliette Binoche&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Ou├⌐let&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/rkW6eE75Tt1i3J1s2fsIDZBW0kd.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Michael Pitt&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Hideo Kuze&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/fWR4Z1xk1ZMUMMnMeRADVh1s3DW.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Chin Han&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Togusa&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/xvMCVDvrQ2WlAB2LmkG6HAzlYag.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Lasarus Ratuere&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ishikawa&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/tATw6bSySFmqunfBXmyy0ppbsXi.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Yutaka Izumihara&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Saito&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/rGPYp0jWNplBEv1vWDbmpysaGte.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tawanda Manyimo&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Borma&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/vUpTeHW9Yokx2R2sipMZdiTfiIk.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Rila Fukushima&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Red Robed Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/AsxUTMScQetJ1Iommki98w3rHPH.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Michael Wincott&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Osmund&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/pvKUzexxZT4sRTT1BczzrwX8ghz.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Anamaria Marinca&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Dahlin&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/ajLN2RMuYHgTEFAzs8x8vZH0Rlu.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Daniel Henshall&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Skinny Man&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/4LYeThK5O9EUy1OllvdsD5bTRbb.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kaori Momoi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Hairi&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/aHPQaKWk1foxvieDZubUJE8olaO.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Peter Ferdinando&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Cutter&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/eSxMkW04VuOkQqxG2HIPw0FMJKe.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Christopher Obi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ambassador Kiyoshi&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/9mkVa3qKba8S7UcyzUYZPkeRG37.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Danusia Samal&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ladriya&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/8FqUG5hRe9MskGzXzx8ktS7b20y.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mana Hira Davis&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Bearded Man&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/fBDzK8Vd7XBx97nsH9sXXGf4nMD.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Adwoa Aboah&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Lia&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/jD8FV3TcLNJe64udKygGLnHkP6K.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kai Fung Rieck&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Diamond Face&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/mqS7nagL7Dp1QK1152eyfT1RjOI.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Andrew Stehlin&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;No Pupils&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/kcDr96zRyuM3IiR5RWPV14D5dMK.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Matthias Luafutu&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Thick Built Yakuza&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/65KBlRWu561lTVPHlhgHskprLOh.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;John Luafutu&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Barkeep&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/ryhkaAVyAxAfCUj6P12EkYO8Rk4.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kaori Yamamoto&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Motoko&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/iJFsfqfmUy14kU2VNrxE3JGVBAY.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Pete Teo&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Tony&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/7bJutZz5qd2rYBHHC2gyMQWNQbu.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tanya Drewery&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/7Q4eMvFKcmYSUfLSlNMHtlSkoKh.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jacqueline Lee Geurts&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/9YcJF1avZliG3Mu01mUQxuiUuu4.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Hannah Tasker-Poland&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/fpXCLG1HbNlPl6nEDnqQTvohMEm.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Emma Coppersmith&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/aAHgg8eO7kaHw0Mmn1jatBxmRYv.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Shinji Ikefuji&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Kinsana&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/6m1scLGa91uDDYBftdEcEOuXrAm.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Xavier Horan&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Section Six Soldier&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/yNdHNB90SXulSRLqbYeZ5JXppqO.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Allan Henry&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Section Six Soldier&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/ma3ZFzGiF4ANlEym3ACFOG0n7qV.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Joseph Naufahu&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Police Commander Johns&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/9N4UmM1runLmdhzIhZ5Xfk4Qo21.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Makoto Murata&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Yakuza Gunman&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/f32b7dh8dg5s5LWXyiSYZacDQAG.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Avi Arad&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/kIG4HF5LSywU0ZdDheDaEsxxohu.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Leslee Feldman&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mitsuhisa Ishikawa&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Steven Paul&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jeffrey Silver&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Lucy Bevan&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mark Sourian&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Michael Costigan&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mark Sussman&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;ADR Voice Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Ari Arad&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Miranda Rivers&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Maguy R. Cohen&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Patty Majorczak-Connolly&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;ADR Voice Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;C├⌐cile Bouquet&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Researcher&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tetsuya Fujimura&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Nanw Rowlands&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting Associate&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;languages&amp;gt;Japanese, English&amp;lt;/languages&amp;gt;&lt;br /&gt;
 &amp;lt;/movie&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TV Show nfo ==&lt;br /&gt;
Sample TV Show nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| TV Show nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;!-- created on 2017-08-03 15:20:37 - tinyMediaManager 2.9.3.1 --&amp;gt;&lt;br /&gt;
 &amp;lt;tvshow&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;iZombie&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;sorttitle&amp;gt;&amp;lt;/sorttitle&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2015&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;rating&amp;gt;8.3&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;66&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;When over-achieving medical resident Liv Moore attends a party that turns into a zombie feeding frenzy, she ends up joining the ranks of the living dead.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;E&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;episodeguide&amp;gt;&lt;br /&gt;
        &amp;lt;url cache=&amp;quot;281470.xml&amp;quot;&amp;gt;http://www.thetvdb.com/api/1D62F2F90030C444/series/281470/all/en.xml&amp;lt;/url&amp;gt;&lt;br /&gt;
    &amp;lt;/episodeguide&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;281470&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;imdbid&amp;gt;tt3501584&amp;lt;/imdbid&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Action&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Comedy&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Crime&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Drama&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Horror&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;premiered&amp;gt;2015-03-17&amp;lt;/premiered&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;Continuing&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;The CW&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Rose McIver&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Olivia &amp;quot;Liv&amp;quot; Moore&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/346010.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Rahul Kohli&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Ravi Chakrabarti&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/346008.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Robert Buckley&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Major Lilywhite&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/329726.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Aly Michalka&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Peyton Charles&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437907.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Malcolm Goodwin&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Clive Babineaux&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/346009.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;David Anders&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Blaine&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/329728.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tongayi Chirisa&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Justin Bell&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437906.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Andrea Savage&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Vivian Stoll&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437905.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jason Dohring&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Chase Graves&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437903.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Nick Purcha&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Evan Moore&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436318.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Leanne Lapp&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Rita/Gilda&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436317.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Greg Finley&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Drake Holloway&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436315.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jessica Harmon&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dale Bozzio&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436314.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Bryce Hodgson&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Don Everhart&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/430151.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Bradley James&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Lowell Tracey&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/417361.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
 &amp;lt;/tvshow&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TV Show Episode nfo ==&lt;br /&gt;
Sample TV Episode nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| TV Episode nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;episodedetails&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Bone Orchard&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;showtitle&amp;gt;American Gods&amp;lt;/showtitle&amp;gt;&lt;br /&gt;
    &amp;lt;ratings&amp;gt;&lt;br /&gt;
        &amp;lt;rating name=&amp;quot;default&amp;quot; max=&amp;quot;10&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;value&amp;gt;7.400000&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;votes&amp;gt;14&amp;lt;/votes&amp;gt;&lt;br /&gt;
        &amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;/ratings&amp;gt;&lt;br /&gt;
    &amp;lt;userrating&amp;gt;0&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;top250&amp;gt;0&amp;lt;/top250&amp;gt;&lt;br /&gt;
    &amp;lt;season&amp;gt;1&amp;lt;/season&amp;gt;&lt;br /&gt;
    &amp;lt;episode&amp;gt;1&amp;lt;/episode&amp;gt;&lt;br /&gt;
    &amp;lt;displayseason&amp;gt;-1&amp;lt;/displayseason&amp;gt;&lt;br /&gt;
    &amp;lt;displayepisode&amp;gt;-1&amp;lt;/displayepisode&amp;gt;&lt;br /&gt;
    &amp;lt;outline&amp;gt;&amp;lt;/outline&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;When Shadow Moon is released from prison early after the death of his wife, he meets Mr. Wednesday and is recruited as his bodyguard. Shadow discovers that this may be more than he bargained for.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;tagline&amp;gt;&amp;lt;/tagline&amp;gt;&lt;br /&gt;
    &amp;lt;runtime&amp;gt;62&amp;lt;/runtime&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;E&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;playcount&amp;gt;1&amp;lt;/playcount&amp;gt;&lt;br /&gt;
    &amp;lt;lastplayed&amp;gt;2017-07-26&amp;lt;/lastplayed&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;5088686&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;uniqueid type=&amp;quot;unknown&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;5088686&amp;lt;/uniqueid&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Action&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Adventure&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Fantasy&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Mystery&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Bryan Fuller&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Michael Green&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;director&amp;gt;David Slade&amp;lt;/director&amp;gt;&lt;br /&gt;
    &amp;lt;premiered&amp;gt;2017-04-30&amp;lt;/premiered&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2017&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;aired&amp;gt;2017-04-30&amp;lt;/aired&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Starz!&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;trailer&amp;gt;&amp;lt;/trailer&amp;gt;&lt;br /&gt;
    &amp;lt;fileinfo&amp;gt;&lt;br /&gt;
        &amp;lt;streamdetails&amp;gt;&lt;br /&gt;
            &amp;lt;video&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;h264&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;aspect&amp;gt;1.777778&amp;lt;/aspect&amp;gt;&lt;br /&gt;
                &amp;lt;width&amp;gt;1920&amp;lt;/width&amp;gt;&lt;br /&gt;
                &amp;lt;height&amp;gt;1080&amp;lt;/height&amp;gt;&lt;br /&gt;
                &amp;lt;durationinseconds&amp;gt;3763&amp;lt;/durationinseconds&amp;gt;&lt;br /&gt;
                &amp;lt;stereomode&amp;gt;&amp;lt;/stereomode&amp;gt;&lt;br /&gt;
            &amp;lt;/video&amp;gt;&lt;br /&gt;
            &amp;lt;audio&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;dtshd_ma&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
                &amp;lt;channels&amp;gt;6&amp;lt;/channels&amp;gt;&lt;br /&gt;
            &amp;lt;/audio&amp;gt;&lt;br /&gt;
            &amp;lt;subtitle&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
            &amp;lt;/subtitle&amp;gt;&lt;br /&gt;
        &amp;lt;/streamdetails&amp;gt;&lt;br /&gt;
    &amp;lt;/fileinfo&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Ian McShane&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Wednesday&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418593.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Ricky Whittle&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Shadow  Moon&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;1&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418586.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Emily Browning&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Laura Moon&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;2&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418119.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Pablo Schreiber&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Mad Sweeney&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;3&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418590.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Yetide Badaki&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Bilquis&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;4&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418588.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Bruce Langley&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Technical Boy&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;5&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418587.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Orlando Jones&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Nancy&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;6&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418591.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Chris Obi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Jacquel&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;7&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/429117.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Demore Barnes&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ibis&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;8&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/429116.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Omid Abtahi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Salim&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;9&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/428857.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Cloris Leachman&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Zorya Vechernyaya&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;10&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/421778.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Gillian Anderson&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Media&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;11&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/421117.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Crispin Glover&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;World&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;12&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418592.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Peter Stormare&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Czernobog&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;13&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418589.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kristin Chenoweth&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Easter&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;14&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418124.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;resume&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;0.000000&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;total&amp;gt;0.000000&amp;lt;/total&amp;gt;&lt;br /&gt;
    &amp;lt;/resume&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;2017-07-19 17:50:00&amp;lt;/dateadded&amp;gt;&lt;br /&gt;
 &amp;lt;/episodedetails&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Artist nfo ==&lt;br /&gt;
Sample Music Artist nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Artist nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Fleetwood Mac&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzArtistID&amp;gt;bd13909f-1c29-4c27-a874-d4aaf27c5b1a&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Rock&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Rock/Pop&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Relaxed&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;yearsactive&amp;gt;1960s - 2010s&amp;lt;/yearsactive&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;formed&amp;gt;London, England (1967)&amp;lt;/formed&amp;gt;&lt;br /&gt;
    &amp;lt;biography&amp;gt;Fleetwood Mac are a British-American rock band formed in 1967 in London. The only original member present in the band is its eponymous drummer, Mick Fleetwood.&amp;lt;/biography&amp;gt;&lt;br /&gt;
    &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
    &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-53a0df3715867.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-53a0df3715867.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;E:\Music- Test\Fleetwood Mac\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a08371db4e2.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a08371db4e2.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a083a3607ed.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a083a3607ed.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-51c68f91253a9.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-51c68f91253a9.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-518f8f0a5a483.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-518f8f0a5a483.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Future Games&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1971&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Live in London 1968&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1989&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Bare Trees&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1972&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tusk&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1979&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;In Concert 1982&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2010&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rumours&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1977&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Say You Will&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2003&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Kiln House&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1970&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tango in the Night&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1975&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Penguin&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mirage&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1982&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mystery to Me&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Peter GreenΓÇÖs Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1968&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Album nfo ==&lt;br /&gt;
Sample Music Album nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Album nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Annie Lennox Collection&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzAlbumID&amp;gt;957cda28-5e1e-4507-9de7-1d5049415cea&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
    &amp;lt;artistdesc&amp;gt;Annie Lennox&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Pop&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;TalbumFstrstyles&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;TalbumFstrmoods&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;TalbumFstrthemes&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;compilation&amp;gt;false&amp;lt;/compilation&amp;gt;&lt;br /&gt;
    &amp;lt;review&amp;gt;TalbumFstrReview&amp;lt;/review&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;album/compilation&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;releasedate&amp;gt;&amp;lt;/releasedate&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;RCA/19 Recordings&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/the-annie-lennox-collection-50b9f63c63338.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/the-annie-lennox-collection-50b9f63c63338.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;E:\Music Test Test\Annie Lennox\The Annie Lennox Collection\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;0.000000&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;5&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;1500&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2003&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Annie Lennox&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;3e30aebd-0557-4cfd-8fb9-3945afa5d72b&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Video nfo ==&lt;br /&gt;
Sample Music Video nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Video nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;musicvideo&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Dancing Queen&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;userrating&amp;gt;0&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;top250&amp;gt;0&amp;lt;/top250&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;-1&amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;Arrival&amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;outline&amp;gt;&amp;lt;/outline&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;&amp;quot;Dancing Queen&amp;quot; is a Europop song by the Swedish group ABBA, and the lead single from their fourth studio album, Arrival.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;tagline&amp;gt;&amp;lt;/tagline&amp;gt;&lt;br /&gt;
    &amp;lt;runtime&amp;gt;0&amp;lt;/runtime&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/arrival-4ee244732bbde.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/arrival-4ee244732bbde.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;playcount&amp;gt;0&amp;lt;/playcount&amp;gt;&lt;br /&gt;
    &amp;lt;lastplayed&amp;gt;&amp;lt;/lastplayed&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Pop&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;1976&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;aired&amp;gt;&amp;lt;/aired&amp;gt;&lt;br /&gt;
    &amp;lt;trailer&amp;gt;&amp;lt;/trailer&amp;gt;&lt;br /&gt;
    &amp;lt;artist&amp;gt;ABBA&amp;lt;/artist&amp;gt;&lt;br /&gt;
    &amp;lt;resume&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;0.000000&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;total&amp;gt;0.000000&amp;lt;/total&amp;gt;&lt;br /&gt;
    &amp;lt;/resume&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;2017-06-15 14:18:10&amp;lt;/dateadded&amp;gt;&lt;br /&gt;
 &amp;lt;/musicvideo&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Tags =&lt;br /&gt;
A list of all available tags that Kodi recognises follows in this section. As mentioned previously, there are many common tags, but there are also specific tags for each part of the library. Ensure you use the correct tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movie Tags ==&lt;br /&gt;
&lt;br /&gt;
== TV Show Tags ==&lt;br /&gt;
&lt;br /&gt;
== TV Show Episode Tags ==&lt;br /&gt;
&lt;br /&gt;
== Music Tags ==&lt;br /&gt;
&amp;lt;!--- http://kodi.wiki/view/Music_tagging#Tags_Kodi_reads ---&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#fffddd, #dddfff}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;@Karellen&#039;&#039;&#039; is there any way we can avoid calling the NFO stuff &amp;quot;music tags&amp;quot;? Xml metadata perhaps, or xml tags. The essential &amp;quot;music tags&amp;quot; for the library, the tags Kodi uses etc. are those &#039;&#039;embedded&#039;&#039; in the music files themselves using various formats. Users need to be clear that &amp;quot;tagging music&amp;quot; does not mean making NFO files.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#ffdddd, #ddddff}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;@DaveBlake- This is what I am trying to achieve- show all database fields and the Source of the Data (scraper, file tags etc) and nfo tags. &lt;br /&gt;
&lt;br /&gt;
At first I expected that all nfo tags would have a corresponding database field. I did not expect that some tags would have no database field. So not sure how to show that scenario in these tables yet. Any suggestions? Do you know how many there are?&lt;br /&gt;
&lt;br /&gt;
I would like to keep the Music File Tag column, but that is inaccurate as it is only showing the Vorbis tags, and there are four other tagging styles that will need to be included which makes the table too complicated looking. I created the second table (exactly the same) except without the music file tag column. I will refer to the MusicFile Tags via a link. Your thoughts?&lt;br /&gt;
&lt;br /&gt;
The tables will not be on this page. I will modify the Database Table wiki page, and simply place a link to it in this page.&lt;br /&gt;
&lt;br /&gt;
More questions...&lt;br /&gt;
&lt;br /&gt;
#How do you know when there is a hierarchy with tags and what will be the best way to document that? eg. You have...&lt;br /&gt;
 &amp;lt;genre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
and then...&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
     &amp;lt;title&amp;gt;Blah&amp;lt;/title&amp;gt;&lt;br /&gt;
     &amp;lt;year&amp;gt;2017&amp;lt;/year&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Some tags have qualifiers. How do I know when a qualifier can be used...&lt;br /&gt;
 &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;7&amp;lt;/userrating&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Some tags come from Music Files, some Tags come from online Scrapers. Makes sense when first building your library. But when you export your library, some of the Music File Tags are entered into the nfo file. Now we have the same Tag information in the music file and in the nfo. When rebuilding your library, which takes precedence? Does nfo files override the music tags?&lt;br /&gt;
&lt;br /&gt;
Do you have any other suggestions on how to document this?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#fffddd, #fddfff}}&amp;quot;&amp;gt;&lt;br /&gt;
The NFO data should all go to/come from somewhere in the db, just not always a single db field. The source of data field content can be diverse, scanning is not just about reading data but processing it too. Also some fields are initially set from tags and then can be overwritten by nfo data, there is a merge process involved in scraping.&lt;br /&gt;
&lt;br /&gt;
List what is in NFO and I will tell you where it comes from in db, &#039;&#039;if&#039;&#039; it is written back on scraping (some stuff is exported to NFO just for reference), and if it overwrites the tag data or is sole source of that data.&lt;br /&gt;
&lt;br /&gt;
You note I keep using the word &amp;quot;tags&amp;quot; and I mean those embedded in music files.&lt;br /&gt;
&lt;br /&gt;
Having a tag name in the table is useful. I tend to use the Vorbis (FLAC) tag names for tags because they are nice and descriptive (except RELEASETYPE which is confusing). Kodi could have its own names for these tags I guess, but may as well use Vorbis. The tag table gives the tag names in other formats no need to duplicate that here. &lt;br /&gt;
&lt;br /&gt;
My solution use vorbis name against DB field, comment somewhere that is what has been done and general link to the table elsewhere that lists the tags in the various formats.&lt;br /&gt;
&lt;br /&gt;
Ah Ok, not for NFO page but for DB page. Fine. &lt;br /&gt;
&lt;br /&gt;
XML tag hierarchy: use examples. So make sure that the example album.nfo on the NFO page has multiple genres, album artists, styles etc., examples of every multiple.&lt;br /&gt;
&lt;br /&gt;
In music the only xml tags with a qualitfiers is rating and user rating, they give the max score that the given rating value is out of. This is quite important as we switched from out of 5 to out of 10 as default for rating and caused  lots of user anguish.&lt;br /&gt;
&lt;br /&gt;
There is also this http://kodi.wiki/view/Music_tagging#Data_Kodi_Scrapes&lt;br /&gt;
&lt;br /&gt;
Because my xml sucks I&#039;m finding this method of communication frustrating. So if I have left question unanswered, can we do it on Slack?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#fffddd, #fddfff}}&amp;quot;&amp;gt;&lt;br /&gt;
Comment on table layout:&lt;br /&gt;
I find having the related tags useful, Vorbis name fine, so go with table version 1. &lt;br /&gt;
&lt;br /&gt;
Source of data - well if there is a related tag (or tags) then that is always the initial source of that field, and if there is a related xml tag that is where that value is exported and might be imported/scraped from.&lt;br /&gt;
Rather than a &amp;quot;source of data&amp;quot; column I would have a &amp;quot;Import/overwrite&amp;quot; column: overwrites where having &amp;quot;Prefer online information&amp;quot; setting enabled causes the scraped NFO values to replace that from tags (if it has one. Import says NFO (or scraper) can provide. The rest if there is an NFO tag then that value is for human ref and not scraped/imported into db from NFO.&lt;br /&gt;
&lt;br /&gt;
Genres, Year, Compilation and Label may have been derrived from tag data and these will take prescidence. These values can be overwritten by the scraped values if &amp;quot;Prefer Online Information&amp;quot; setting is enabled.&lt;br /&gt;
&lt;br /&gt;
Then I have tried to edit table, but I hate editing wiki tables!!!!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Database Field || Data Type || Description |||| Import/Overwrite || NFO Tag || Music File Tag&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Primary Key |||| &lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album title |||| Overwrite|| &amp;lt;title&amp;gt; || ALBUM&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID (release ID)  |||| || &amp;lt;musicBrainzAlbumID&amp;gt; || MUSICBRAINZ_ALBUMID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || album artist(s) description (not always a concatenation of names) |||| || &amp;lt;artistdesc&amp;gt; || Derived from ALBUMARTIST, ALBUMARTISTS  &lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table) |||| Overwrite|| &amp;lt;genre&amp;gt; ^^ || GENRE &lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year |||| Overwrite || &amp;lt;year&amp;gt; || YEAR &lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [Unused] |||| DB Internal&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag |||| Overwrite || &amp;lt;compilation&amp;gt; ||COMPILATION&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods |||| Import || &amp;lt;mood&amp;gt; ^^ || &lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles |||| Import || &amp;lt;style&amp;gt; ^^ ||&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes |||| Import || &amp;lt;theme&amp;gt; ^^ ||&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review |||| Import || &amp;lt;review&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images ||Import||  ||&amp;lt;thumb&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label |||| Overwrite || &amp;lt;label&amp;gt; || LABEL&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot; |||| Overwrite || &amp;lt;type&amp;gt; || RELEASETYPE &lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating |||| Import || &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10) |||| Import || &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || text || Date/time data scraped from online sources or NFO files |||| &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;  || &amp;lt;releasetype&amp;gt; || &lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating) |||| Import || &amp;lt;votes&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
^^ Multiple entries allowed&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To view a list of Music File Tags read by Kodi, &#039;&#039;See : [http://kodi.wiki/view/Music_tagging#Tags_Kodi_reads Tags Kodi Reads]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Database Field || Data Type || Description |||| Source of Data || NFO Tag&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Primary Key |||| DB Internal&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album title |||| Music File Tag || &amp;lt;title&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID (release ID)  |||| Music File Tag || &amp;lt;musicBrainzAlbumID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || album artist(s) description (not always a concatenation of names) |||| Music File Tag || &amp;lt;artistdesc&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table) |||| Music File Tag || &amp;lt;genre&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year |||| Music File Tag || &amp;lt;year&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [Unused] |||| DB Internal&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag |||| Scraper || &amp;lt;compilation&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods |||| Scraper || &amp;lt;mood&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles |||| Scraper || &amp;lt;style&amp;gt; ^^&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes |||| Scraper || &amp;lt;theme&amp;gt; ^^ &lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review |||| Scraper || &amp;lt;review&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images |||| Scraper ^^^ ||&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label |||| Music File Tag || &amp;lt;label&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot; |||| Music File Tag || &amp;lt;type&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating |||| Scraper || &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10) |||| User || &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || text || Date/time data scraped from online sources or NFO files |||| DB Internal&lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot; |||| Music File Tag || XXXX BUT Shouldn&#039;t??&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating) |||| Scraper || &amp;lt;votes&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
^^ Multiple entries allowed&amp;lt;br /&amp;gt;&lt;br /&gt;
^^^ Scraped online, but there is no NFO entry&lt;br /&gt;
&lt;br /&gt;
== Music Video Tags ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad01&amp;diff=130558</id>
		<title>User talk:Karellen/scratchpad01</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad01&amp;diff=130558"/>
		<updated>2017-08-30T12:28:55Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Created page with &amp;quot;4.3 Music Previously said &amp;quot;For additional &amp;#039;&amp;#039;&amp;#039;album&amp;#039;&amp;#039;&amp;#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there&amp;quot;  What gave...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;4.3 Music&lt;br /&gt;
Previously said &amp;quot;For additional &#039;&#039;&#039;album&#039;&#039;&#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there&amp;quot;&lt;br /&gt;
&lt;br /&gt;
What gave you that idea??&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Karellen/scratchpad01&amp;diff=130557</id>
		<title>User:Karellen/scratchpad01</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Karellen/scratchpad01&amp;diff=130557"/>
		<updated>2017-08-30T12:27:32Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Music */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Video library]] {{l2|[[Music library]]}}|[[Video management|Management]] &amp;lt;br /&amp;gt;&amp;amp;nbsp; }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;NFO files can be used to provide metadata to the library for video and a music files. They are helpful if the metadata fetched from a web site does not match the video or music you have, or if data for that particular file does not exist, such as for home movies. It can also be used to control the search behaviour of scrapers.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What is nfo =&lt;br /&gt;
&#039;&#039;&#039;nfo&#039;&#039;&#039; is a contraction of Info or Information. It is a Filename Extension - &#039;&#039;mymovie.nfo&#039;&#039; and the contents of the file are written in [http://en.wikipedia.org/wiki/XML XML]. The file itself does nothing except hold information. It is basically a text document with special tags inserted around the information. These tags are recognised by Kodi which enables data importing. &lt;br /&gt;
&lt;br /&gt;
Kodi uses nfo files as one way of importing metadata into the library. It may also be used as a method of exporting the library for various reasons, including backup.  &#039;&#039;&#039;&#039;&#039;See: [[Import-Export_library | Import &amp;amp; Export]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
One of the most considered features of Kodi is the way media is displayed. Gone are the days when choosing a movie to watch or album to listen to involved scrolling through lines of text. Kodi uses [[Artwork]], and Extended Information to display your media. This information includes Actors, Directors, Plots, Taglines, Ratings, Run Times  and more. All this data, known as metadata, is stored in the Kodi Library. The Library is a [http://www.sqlite.org/ SQLite database].&lt;br /&gt;
&lt;br /&gt;
There are two primary methods to load metadata into your library:&lt;br /&gt;
#Use the online scraper &lt;br /&gt;
#Create a nfo file, from which Kodi is able to import the metadata&lt;br /&gt;
&lt;br /&gt;
For information on how to use the online scraper within Kodi:&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Adding_music_to_the_library]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Adding_video_sources]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Set_content_and_scan]]&#039;&#039;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The remainder of this wiki topic will provide the required information to create and use nfo files.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Types of nfo =&lt;br /&gt;
Kodi can use the nfo file in one of two ways depending on the contents of the nfo file. This page primarily deals with the Metadata nfo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Metadata nfo ==&lt;br /&gt;
This is the most common use of the nfo file. The Metadata nfo contains the metadata for the movie/tv show/album/artist within the file. Kodi will read this file and scrape its contents into the library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parsing nfo ==&lt;br /&gt;
A Parsing nfo does not contain any metadata that Kodi can use to scrape into the library. Instead it contains the URL to the movie/tv show/album/artist that you want scraped.&lt;br /&gt;
As an example, searching for &#039;&#039;The Mummy&#039;&#039; on [[https://www.themoviedb.org/ |TMDB]] returns 65 titles. If you are attempting to add one of the more obscure versions to your library, chances are that Kodi will scrape the incorrect title, and trying to navigate to the 65th entry will be problematic. The parsing nfo offers an easy solution to this problem.&lt;br /&gt;
To create and use the parsing nfo, follow these steps:&lt;br /&gt;
#Locate the title at the appropriate scraper site&lt;br /&gt;
#Ensure you have named your files/folder the same as shown on the scraper site and in accordance with the [Naming_video_files | Kodi naming conventions]&lt;br /&gt;
#Open a text editor and copy the entire address from the address bar into the text editor. No surrounding tags are required. &#039;&#039;see example after step 5&#039;&#039;&lt;br /&gt;
#Save the file in accordance with the naming convention in section 4 below. &#039;&#039;&#039;Ensure the extension is *.nfo and not *.nfo.txt or *.nfo.doc&#039;&#039;&#039;&lt;br /&gt;
#Run an Update Library. Kodi will parse the URL and locate the title and scrape the correct metadata.&lt;br /&gt;
 https://www.themoviedb.org/movie/15849-the-mummy&#039;&#039; &lt;br /&gt;
&amp;lt;!--- http://kodi.wiki/view/Scraper#.3CCustomFunction.3E ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating nfo =&lt;br /&gt;
The following are the three methods that may be used to create nfo files for Kodi. The simplest method is using a Media Manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Media Managers ==&lt;br /&gt;
This is, by far, the simplest method for creating nfo files for your media. The Media Manager can create nfo files in one of three ways:&lt;br /&gt;
#Scraping- This is the same process as performed by the Kodi scraper. The Media Manager will fetch metadata from the online scraper site and will create the nfo file, unlike Kodi that imports the metadata directly into the library database.&lt;br /&gt;
#Manual- The Media Manager offers a simple interface that allows you to manually type in the data. This method does not require you to have knowledge of XML tags&lt;br /&gt;
#Combination- A combination of both methods can be used. If you are not satisfied with the scraped metadata, then simply modify it.&lt;br /&gt;
&lt;br /&gt;
Once the program has been setup and pointed at your media, very little input is required by the user. Select a movie, tv show, album or artist and select scrape. Depending upon your settings, the media manager will scrape the media and create the nfo which is placed in the correct location with the media file. It can also download all artwork for the media.&lt;br /&gt;
There are a few media managers available. The following managers can be found in the Kodi forum:&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=259449 | Ember Media Managers]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=142723 | Tiny Media Manager aka TMM]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=129134 | Media Companion 3]&lt;br /&gt;
*[https://forum.kodi.tv/showthread.php?tid=136333 | MediaElch]&lt;br /&gt;
&lt;br /&gt;
Further information, screenshots and guides are available at the websites of the Media Managers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kodi Created nfo ==&lt;br /&gt;
This option requires that your library has already been scraped with metadata. Using the built in export function of Kodi, you can export the library metadata into individual nfo files correctly created and saved. This is useful if you have an existing library and would like to backup the library or to import the library into another Kodi installation.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See: [[Import-Export_library | Import &amp;amp; Export]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manual Creation ==&lt;br /&gt;
The more difficult of the three methods. It requires basic knowledge of XML Tags. They can be created using a simple text editor such as Notepad in Windows, or the equivelant in other operating systems. There are dedicated code editors that can also be used. They will not provide the required Kodi tags, but they will avoid glitches when saving the nfo file, which is commonly experienced with text editors.&lt;br /&gt;
Two common code editors that can be used:&lt;br /&gt;
*[https://notepad-plus-plus.org/ | Notepad++]&lt;br /&gt;
*[https://code.visualstudio.com/ | Visual Studio Code]&lt;br /&gt;
&lt;br /&gt;
Requirements of the nfo file are as follows:&lt;br /&gt;
#Each Tag must have an opening tag and a closing tag. eg &#039;&#039;&amp;lt;title&amp;gt;my movie title&amp;lt;/title&amp;gt;&#039;&#039;.  &#039;&#039;&#039;&#039;&#039;&amp;lt;title&amp;gt;&#039;&#039;&#039;&#039;&#039; = opening tag, &#039;&#039;&#039;&#039;&#039;my movie title&#039;&#039;&#039;&#039;&#039; = metadata, &#039;&#039;&#039;&#039;&#039;&amp;lt;/title&amp;gt;&#039;&#039;&#039;&#039;&#039; = closing tag&lt;br /&gt;
#The file must be in Unicode Transformation Format-8 (UTF-8). The file must be saved in this format. The first line of the file must contain the following &#039;&#039;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&#039;&#039;&lt;br /&gt;
#The second line may contain a note detailing the creation time and date. It may also include the name of the media manager, if one was used to create it. This is optional. &#039;&#039;&amp;lt;!-- created on 2017-08-10 15:09:33 - by MediaManager --&amp;gt;&#039;&#039;&lt;br /&gt;
#The next line sets the nfo category - &amp;lt;movie&amp;gt;, &amp;lt;tvshow&amp;gt;, &amp;lt;episodedetails&amp;gt;, &amp;lt;artist&amp;gt;, &amp;lt;album&amp;gt; or &amp;lt;musicvideo&amp;gt;&lt;br /&gt;
#Between the opening and closing category tags are the tags for the media metadata.&lt;br /&gt;
#Available tags are listed in Section 6&lt;br /&gt;
&lt;br /&gt;
Once created, the file is saved with the nfo extension and placed in the folder as directed in Section 4.&lt;br /&gt;
&lt;br /&gt;
See example nfo files in Section 6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Placement =&lt;br /&gt;
Correct placement of the nfo file is essential. Failing to save the file in the correct location, as detailed below, will force Kodi to scrape the information from online sources or, if you have &#039;&#039;Local Info Only&#039;&#039; set as your scraper, then no entry will be made into the library.&lt;br /&gt;
&lt;br /&gt;
The order of importing metadata is as follows:&lt;br /&gt;
#nfo file. If no nfo file exists then&lt;br /&gt;
#online scraper sites&lt;br /&gt;
&lt;br /&gt;
When Kodi locates the nfo file it will load the *.nfo file and attempt to either,&lt;br /&gt;
#If the nfo file contains XML data (tags), Kodi will import the meta-data directly into the library from the .nfo file or&lt;br /&gt;
#Will parse the nfo file for a direct URL to the scraper info page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movies ==&lt;br /&gt;
Movies require one nfo file as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Movie *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved movies as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |BluRay Structure:&lt;br /&gt;
| width=300px |index.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\BDMV\index.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |DVD Structure:&lt;br /&gt;
| width=300px |VIDEO_TS.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\VIDEO_TS\VIDEO_TS.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Single movie in directory:&lt;br /&gt;
| width=300px |&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All movies in single directory:&lt;br /&gt;
| width=300px |&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyMovies\Big Buck Bunny (2008)\&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TV Shows ==&lt;br /&gt;
TV Shows require the following nfo files&lt;br /&gt;
#One nfo file for the TV Show. See the first table below&lt;br /&gt;
#One nfo file for &#039;&#039;&#039;each&#039;&#039;&#039; Episode. See the second table below&lt;br /&gt;
For one TV Show with 10 episodes, you will require 11 nfo files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your TV Show *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved TV Show as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All formats&lt;br /&gt;
| width=300px |tvshow.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\tvshow.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5f5a1, #a1f5e4}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your TV Episode *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Episodes as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |BluRay Structure:&lt;br /&gt;
| width=300px |index.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\iZombie S01E01\BDMV\index.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |DVD Structure:&lt;br /&gt;
| width=300px |VIDEO_TS.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\iZombie S01E01\VIDEO_TS\VIDEO_TS.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Single Episode file in directory:&lt;br /&gt;
| width=300px |&amp;lt;EpisodeFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\iZombie S01E01\&amp;lt;EpisodeFileName&amp;gt;.nfo&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All episodes in TV Show directory:&lt;br /&gt;
| width=300px |&amp;lt;MovieFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyTVShows\iZombie\&amp;lt;EpisodeFileName&amp;gt;.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music ==&lt;br /&gt;
Music will fetch additional album and album artist information from nfo files.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album&#039;&#039;&#039; information each album needs to be in its own unique folder, and have a separate album.nfo file located there. See the first table below.&lt;br /&gt;
&lt;br /&gt;
For additional &#039;&#039;&#039;album artist&#039;&#039;&#039; information each artist needs a separate artist.nfo file located in what Kodi determines as the unique common folder for that artist. Kodi does not fetch additional artist data for artists that only feature on songs, either on compilation albums or as guest artists on songs in albums by others, and you do not have any albums by them in your collection.&lt;br /&gt;
&lt;br /&gt;
{{note|There are weaknesses in the way that Kodi determines the location of the artist folder. It looks for the folder that is common to all the songs with that album artist, the name of that folder is irrelevent. If you have multiple albums by an artist all under an artist folder then this works perfectly. &lt;br /&gt;
However the algorithm does not work for collaboration albums, those that have more than one album artist e.g. &amp;quot;Riding with the King&amp;quot; by Eric Clapton and BB King, or classical music with composer, orchestra and conductor given as the album artist. Also if you have not kept all songs by an artist under a unique folder, then the artist directory will probably be mis-identified. The result is that Kodi can find the wrong artist.NFO file, and give the artist some other artist&#039;s information, or fail to fine the artist.nfo you created}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Artist *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Artist as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |artist.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\artist.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5f5a1, #a1f5e4}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Album *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Album as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Artist\Album\Songs&lt;br /&gt;
| width=300px |album.nfo&lt;br /&gt;
| width=600px |f:\MyMusic\Stevie Nicks\Crystal Visions\album.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Music Videos ==&lt;br /&gt;
Music Videos require one nfo for &#039;&#039;&#039;each&#039;&#039;&#039; music video in the folder. These nfo files need to be named exactly as the Music Video file is named, but with the nfo extension.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#a1f5e4, #f5f5a1}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming &amp;amp; Saving conventions for your Music Videos *.nfo files:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Saved Music Videos as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save Location&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |All formats&lt;br /&gt;
| width=300px |&amp;lt;MusicVideoFileName&amp;gt;.nfo&lt;br /&gt;
| width=600px |f:\MyMusicVideos\&amp;lt;MusicVideoFileName&amp;gt;.nfo&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Scraping nfo files =&lt;br /&gt;
There is no special procedure to scrape nfo files. Performing the usual Library Update will scrape the nfo files into the library. Be aware that nfo files are not easily interchangeable between Movies, TV Shows, Artists and Albums. Although they all share common tags, each also has its own specific tags that won&#039;t be recognised in other parts of the library. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After the NFO files are scanned into the library, the NFO file is no longer used and only serves as a backup. If you make changes to the NFO file you will need to &#039;&#039;&#039;[[refresh]]&#039;&#039;&#039; that library entry for the changes to be loaded into Kodi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kodi also contains a Local-NFO-only mode for when you add videos to the library, but this mode is only required if you want to prevent online-lookups for videos that lack NFO files. See &#039;&#039;&#039;[[Set content and scan#Local NFO only options]]&#039;&#039;&#039; for more information on this Local-NFO-only mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sample nfo Files =&lt;br /&gt;
Provided below are sample nfo files to assist with the manual creation process&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movie nfo ==&lt;br /&gt;
Sample Movie nfo file&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Movie nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;!-- created on 2017-08-10 15:09:33 - tinyMediaManager 2.9.3.1 --&amp;gt;&lt;br /&gt;
 &amp;lt;movie&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Ghost in the Shell&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;originaltitle&amp;gt;Ghost in the Shell&amp;lt;/originaltitle&amp;gt;&lt;br /&gt;
    &amp;lt;sorttitle&amp;gt;&amp;lt;/sorttitle&amp;gt;&lt;br /&gt;
    &amp;lt;rating&amp;gt;5.9&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2017&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;top250&amp;gt;&amp;lt;/top250&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;1936&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;outline&amp;gt;In the near future, Major is the first of her kind: a human saved from a terrible crash, then cyber-enhanced to be a perfect soldier devoted to stopping the world&#039;s most dangerous criminals.&amp;lt;/outline&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;In the near future, Major is the first of her kind: a human saved from a terrible crash, then cyber-enhanced to be a perfect soldier devoted to stopping the world&#039;s most dangerous criminals.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;tagline&amp;gt;There&#039;s nothing sadder than a puppet without a ghost.&amp;lt;/tagline&amp;gt;&lt;br /&gt;
    &amp;lt;runtime&amp;gt;107&amp;lt;/runtime&amp;gt;&lt;br /&gt;
    &amp;lt;thumb&amp;gt;https://assets.fanart.tv/fanart/movies/315837/movieposter/ghost-in-the-shell-5951b7c0843b0.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;http://image.tmdb.org/t/p/original/dXJh6bXF3WI1gpNuM3tNbnIiW2z.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;AU:M&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;certification&amp;gt;AU:M&amp;lt;/certification&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;tt1219827&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;ids&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
            &amp;lt;key&amp;gt;tmdb&amp;lt;/key&amp;gt;&lt;br /&gt;
            &amp;lt;value xsi:type=&amp;quot;xs:int&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;315837&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
            &amp;lt;key&amp;gt;imdb&amp;lt;/key&amp;gt;&lt;br /&gt;
            &amp;lt;value xsi:type=&amp;quot;xs:string&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;tt1219827&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
    &amp;lt;/ids&amp;gt;&lt;br /&gt;
    &amp;lt;tmdbId&amp;gt;315837&amp;lt;/tmdbId&amp;gt;&lt;br /&gt;
    &amp;lt;country&amp;gt;Australia, New Zealand, United States, United Kingdom, India, China, Canada, Japan, Hong Kong&amp;lt;/country&amp;gt;&lt;br /&gt;
    &amp;lt;premiered&amp;gt;2017-03-29&amp;lt;/premiered&amp;gt;&lt;br /&gt;
    &amp;lt;fileinfo&amp;gt;&lt;br /&gt;
        &amp;lt;streamdetails&amp;gt;&lt;br /&gt;
            &amp;lt;video&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;h264&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;aspect&amp;gt;1.78&amp;lt;/aspect&amp;gt;&lt;br /&gt;
                &amp;lt;width&amp;gt;1920&amp;lt;/width&amp;gt;&lt;br /&gt;
                &amp;lt;height&amp;gt;1080&amp;lt;/height&amp;gt;&lt;br /&gt;
                &amp;lt;durationinseconds&amp;gt;6417&amp;lt;/durationinseconds&amp;gt;&lt;br /&gt;
            &amp;lt;/video&amp;gt;&lt;br /&gt;
            &amp;lt;audio&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;TrueHD  AC3&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
                &amp;lt;channels&amp;gt;8&amp;lt;/channels&amp;gt;&lt;br /&gt;
            &amp;lt;/audio&amp;gt;&lt;br /&gt;
            &amp;lt;subtitle&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
            &amp;lt;/subtitle&amp;gt;&lt;br /&gt;
            &amp;lt;subtitle&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
            &amp;lt;/subtitle&amp;gt;&lt;br /&gt;
        &amp;lt;/streamdetails&amp;gt;&lt;br /&gt;
    &amp;lt;/fileinfo&amp;gt;&lt;br /&gt;
    &amp;lt;watched&amp;gt;false&amp;lt;/watched&amp;gt;&lt;br /&gt;
    &amp;lt;playcount&amp;gt;0&amp;lt;/playcount&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Action&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Crime&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Drama&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Mystery&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Science Fiction&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Thriller&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Paramount Pictures&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;DreamWorks SKG&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Shanghai Film Group&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Reliance Entertainment&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Arad Productions&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Grosvenor Park Productions&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Steven Paul Production&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Huahua Media&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Seaside Entertainment&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Amblin Partners&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Weying Galaxy Entertainment&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Ehren Kruger&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Jamie Moss&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Masamune Shirow&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;William Wheeler&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;director&amp;gt;Rupert Sanders&amp;lt;/director&amp;gt;&lt;br /&gt;
    &amp;lt;tag&amp;gt;BluRay&amp;lt;/tag&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Scarlett Johansson&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Major Motoko Kusanagi&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/8EueDe6rPF0jQU4LSpsH2Rmrqac.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Pilou Asb├ªk&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Batou&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/wcQRF5ZOBY8NX7xrjXE2pOBmwyZ.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Takeshi Kitano&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Daisuke Aramaki&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/xkXZ7HC8uyhu5MtNnbdP8mhdiFN.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Juliette Binoche&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Ou├⌐let&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/rkW6eE75Tt1i3J1s2fsIDZBW0kd.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Michael Pitt&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Hideo Kuze&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/fWR4Z1xk1ZMUMMnMeRADVh1s3DW.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Chin Han&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Togusa&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/xvMCVDvrQ2WlAB2LmkG6HAzlYag.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Lasarus Ratuere&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ishikawa&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/tATw6bSySFmqunfBXmyy0ppbsXi.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Yutaka Izumihara&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Saito&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/rGPYp0jWNplBEv1vWDbmpysaGte.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tawanda Manyimo&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Borma&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/vUpTeHW9Yokx2R2sipMZdiTfiIk.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Rila Fukushima&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Red Robed Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/AsxUTMScQetJ1Iommki98w3rHPH.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Michael Wincott&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Osmund&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/pvKUzexxZT4sRTT1BczzrwX8ghz.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Anamaria Marinca&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Dahlin&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/ajLN2RMuYHgTEFAzs8x8vZH0Rlu.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Daniel Henshall&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Skinny Man&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/4LYeThK5O9EUy1OllvdsD5bTRbb.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kaori Momoi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Hairi&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/aHPQaKWk1foxvieDZubUJE8olaO.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Peter Ferdinando&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Cutter&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/eSxMkW04VuOkQqxG2HIPw0FMJKe.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Christopher Obi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ambassador Kiyoshi&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/9mkVa3qKba8S7UcyzUYZPkeRG37.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Danusia Samal&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ladriya&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/8FqUG5hRe9MskGzXzx8ktS7b20y.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mana Hira Davis&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Bearded Man&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/fBDzK8Vd7XBx97nsH9sXXGf4nMD.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Adwoa Aboah&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Lia&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/jD8FV3TcLNJe64udKygGLnHkP6K.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kai Fung Rieck&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Diamond Face&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/mqS7nagL7Dp1QK1152eyfT1RjOI.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Andrew Stehlin&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;No Pupils&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/kcDr96zRyuM3IiR5RWPV14D5dMK.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Matthias Luafutu&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Thick Built Yakuza&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/65KBlRWu561lTVPHlhgHskprLOh.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;John Luafutu&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Barkeep&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/ryhkaAVyAxAfCUj6P12EkYO8Rk4.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kaori Yamamoto&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Motoko&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/iJFsfqfmUy14kU2VNrxE3JGVBAY.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Pete Teo&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Tony&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/7bJutZz5qd2rYBHHC2gyMQWNQbu.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tanya Drewery&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/7Q4eMvFKcmYSUfLSlNMHtlSkoKh.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jacqueline Lee Geurts&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/9YcJF1avZliG3Mu01mUQxuiUuu4.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Hannah Tasker-Poland&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/fpXCLG1HbNlPl6nEDnqQTvohMEm.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Emma Coppersmith&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Geisha&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/aAHgg8eO7kaHw0Mmn1jatBxmRYv.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Shinji Ikefuji&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Kinsana&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/6m1scLGa91uDDYBftdEcEOuXrAm.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Xavier Horan&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Section Six Soldier&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/yNdHNB90SXulSRLqbYeZ5JXppqO.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Allan Henry&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Section Six Soldier&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/ma3ZFzGiF4ANlEym3ACFOG0n7qV.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Joseph Naufahu&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Police Commander Johns&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/9N4UmM1runLmdhzIhZ5Xfk4Qo21.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Makoto Murata&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Yakuza Gunman&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/f32b7dh8dg5s5LWXyiSYZacDQAG.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Avi Arad&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://image.tmdb.org/t/p/w185/kIG4HF5LSywU0ZdDheDaEsxxohu.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Leslee Feldman&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mitsuhisa Ishikawa&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Steven Paul&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jeffrey Silver&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Lucy Bevan&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mark Sourian&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Michael Costigan&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Mark Sussman&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;ADR Voice Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Ari Arad&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Miranda Rivers&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Maguy R. Cohen&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Patty Majorczak-Connolly&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;ADR Voice Casting&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;C├⌐cile Bouquet&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Researcher&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tetsuya Fujimura&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Executive Producer&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;producer&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Nanw Rowlands&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Casting Associate&amp;lt;/role&amp;gt;&lt;br /&gt;
    &amp;lt;/producer&amp;gt;&lt;br /&gt;
    &amp;lt;languages&amp;gt;Japanese, English&amp;lt;/languages&amp;gt;&lt;br /&gt;
 &amp;lt;/movie&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TV Show nfo ==&lt;br /&gt;
Sample TV Show nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| TV Show nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;!-- created on 2017-08-03 15:20:37 - tinyMediaManager 2.9.3.1 --&amp;gt;&lt;br /&gt;
 &amp;lt;tvshow&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;iZombie&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;sorttitle&amp;gt;&amp;lt;/sorttitle&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2015&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;rating&amp;gt;8.3&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;66&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;When over-achieving medical resident Liv Moore attends a party that turns into a zombie feeding frenzy, she ends up joining the ranks of the living dead.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;E&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;episodeguide&amp;gt;&lt;br /&gt;
        &amp;lt;url cache=&amp;quot;281470.xml&amp;quot;&amp;gt;http://www.thetvdb.com/api/1D62F2F90030C444/series/281470/all/en.xml&amp;lt;/url&amp;gt;&lt;br /&gt;
    &amp;lt;/episodeguide&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;281470&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;imdbid&amp;gt;tt3501584&amp;lt;/imdbid&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Action&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Comedy&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Crime&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Drama&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Horror&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;premiered&amp;gt;2015-03-17&amp;lt;/premiered&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;Continuing&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;The CW&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Rose McIver&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Olivia &amp;quot;Liv&amp;quot; Moore&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/346010.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Rahul Kohli&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dr. Ravi Chakrabarti&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/346008.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Robert Buckley&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Major Lilywhite&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/329726.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Aly Michalka&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Peyton Charles&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437907.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Malcolm Goodwin&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Clive Babineaux&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/346009.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;David Anders&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Blaine&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/329728.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Tongayi Chirisa&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Justin Bell&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437906.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Andrea Savage&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Vivian Stoll&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437905.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jason Dohring&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Chase Graves&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/437903.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Nick Purcha&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Evan Moore&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436318.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Leanne Lapp&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Rita/Gilda&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436317.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Greg Finley&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Drake Holloway&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436315.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Jessica Harmon&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Dale Bozzio&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/436314.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Bryce Hodgson&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Don Everhart&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/430151.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Bradley James&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Lowell Tracey&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/417361.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
 &amp;lt;/tvshow&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TV Show Episode nfo ==&lt;br /&gt;
Sample TV Episode nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| TV Episode nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;episodedetails&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Bone Orchard&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;showtitle&amp;gt;American Gods&amp;lt;/showtitle&amp;gt;&lt;br /&gt;
    &amp;lt;ratings&amp;gt;&lt;br /&gt;
        &amp;lt;rating name=&amp;quot;default&amp;quot; max=&amp;quot;10&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;value&amp;gt;7.400000&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;votes&amp;gt;14&amp;lt;/votes&amp;gt;&lt;br /&gt;
        &amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;/ratings&amp;gt;&lt;br /&gt;
    &amp;lt;userrating&amp;gt;0&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;top250&amp;gt;0&amp;lt;/top250&amp;gt;&lt;br /&gt;
    &amp;lt;season&amp;gt;1&amp;lt;/season&amp;gt;&lt;br /&gt;
    &amp;lt;episode&amp;gt;1&amp;lt;/episode&amp;gt;&lt;br /&gt;
    &amp;lt;displayseason&amp;gt;-1&amp;lt;/displayseason&amp;gt;&lt;br /&gt;
    &amp;lt;displayepisode&amp;gt;-1&amp;lt;/displayepisode&amp;gt;&lt;br /&gt;
    &amp;lt;outline&amp;gt;&amp;lt;/outline&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;When Shadow Moon is released from prison early after the death of his wife, he meets Mr. Wednesday and is recruited as his bodyguard. Shadow discovers that this may be more than he bargained for.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;tagline&amp;gt;&amp;lt;/tagline&amp;gt;&lt;br /&gt;
    &amp;lt;runtime&amp;gt;62&amp;lt;/runtime&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;E&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;playcount&amp;gt;1&amp;lt;/playcount&amp;gt;&lt;br /&gt;
    &amp;lt;lastplayed&amp;gt;2017-07-26&amp;lt;/lastplayed&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;5088686&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;uniqueid type=&amp;quot;unknown&amp;quot; default=&amp;quot;true&amp;quot;&amp;gt;5088686&amp;lt;/uniqueid&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Action&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Adventure&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Fantasy&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Mystery&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Bryan Fuller&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;credits&amp;gt;Michael Green&amp;lt;/credits&amp;gt;&lt;br /&gt;
    &amp;lt;director&amp;gt;David Slade&amp;lt;/director&amp;gt;&lt;br /&gt;
    &amp;lt;premiered&amp;gt;2017-04-30&amp;lt;/premiered&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2017&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;aired&amp;gt;2017-04-30&amp;lt;/aired&amp;gt;&lt;br /&gt;
    &amp;lt;studio&amp;gt;Starz!&amp;lt;/studio&amp;gt;&lt;br /&gt;
    &amp;lt;trailer&amp;gt;&amp;lt;/trailer&amp;gt;&lt;br /&gt;
    &amp;lt;fileinfo&amp;gt;&lt;br /&gt;
        &amp;lt;streamdetails&amp;gt;&lt;br /&gt;
            &amp;lt;video&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;h264&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;aspect&amp;gt;1.777778&amp;lt;/aspect&amp;gt;&lt;br /&gt;
                &amp;lt;width&amp;gt;1920&amp;lt;/width&amp;gt;&lt;br /&gt;
                &amp;lt;height&amp;gt;1080&amp;lt;/height&amp;gt;&lt;br /&gt;
                &amp;lt;durationinseconds&amp;gt;3763&amp;lt;/durationinseconds&amp;gt;&lt;br /&gt;
                &amp;lt;stereomode&amp;gt;&amp;lt;/stereomode&amp;gt;&lt;br /&gt;
            &amp;lt;/video&amp;gt;&lt;br /&gt;
            &amp;lt;audio&amp;gt;&lt;br /&gt;
                &amp;lt;codec&amp;gt;dtshd_ma&amp;lt;/codec&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
                &amp;lt;channels&amp;gt;6&amp;lt;/channels&amp;gt;&lt;br /&gt;
            &amp;lt;/audio&amp;gt;&lt;br /&gt;
            &amp;lt;subtitle&amp;gt;&lt;br /&gt;
                &amp;lt;language&amp;gt;eng&amp;lt;/language&amp;gt;&lt;br /&gt;
            &amp;lt;/subtitle&amp;gt;&lt;br /&gt;
        &amp;lt;/streamdetails&amp;gt;&lt;br /&gt;
    &amp;lt;/fileinfo&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Ian McShane&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Wednesday&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;0&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418593.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Ricky Whittle&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Shadow  Moon&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;1&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418586.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Emily Browning&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Laura Moon&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;2&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418119.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Pablo Schreiber&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Mad Sweeney&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;3&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418590.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Yetide Badaki&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Bilquis&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;4&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418588.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Bruce Langley&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Technical Boy&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;5&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418587.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Orlando Jones&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Nancy&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;6&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418591.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Chris Obi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Jacquel&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;7&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/429117.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Demore Barnes&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Ibis&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;8&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/429116.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Omid Abtahi&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Salim&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;9&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/428857.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Cloris Leachman&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Zorya Vechernyaya&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;10&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/421778.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Gillian Anderson&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Media&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;11&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/421117.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Crispin Glover&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;World&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;12&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418592.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Peter Stormare&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Czernobog&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;13&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418589.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;Kristin Chenoweth&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;role&amp;gt;Easter&amp;lt;/role&amp;gt;&lt;br /&gt;
        &amp;lt;order&amp;gt;14&amp;lt;/order&amp;gt;&lt;br /&gt;
        &amp;lt;thumb&amp;gt;http://thetvdb.com/banners/actors/418124.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/actor&amp;gt;&lt;br /&gt;
    &amp;lt;resume&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;0.000000&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;total&amp;gt;0.000000&amp;lt;/total&amp;gt;&lt;br /&gt;
    &amp;lt;/resume&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;2017-07-19 17:50:00&amp;lt;/dateadded&amp;gt;&lt;br /&gt;
 &amp;lt;/episodedetails&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Artist nfo ==&lt;br /&gt;
Sample Music Artist nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Artist nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Fleetwood Mac&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzArtistID&amp;gt;bd13909f-1c29-4c27-a874-d4aaf27c5b1a&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Rock&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;Rock/Pop&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;Relaxed&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;yearsactive&amp;gt;1960s - 2010s&amp;lt;/yearsactive&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;formed&amp;gt;London, England (1967)&amp;lt;/formed&amp;gt;&lt;br /&gt;
    &amp;lt;biography&amp;gt;Fleetwood Mac are a British-American rock band formed in 1967 in London. The only original member present in the band is its eponymous drummer, Mick Fleetwood.&amp;lt;/biography&amp;gt;&lt;br /&gt;
    &amp;lt;died&amp;gt;&amp;lt;/died&amp;gt;&lt;br /&gt;
    &amp;lt;disbanded&amp;gt;&amp;lt;/disbanded&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-56146ecf89860.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-53a0df3715867.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-53a0df3715867.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistthumb/fleetwood-mac-4fd37e9a22e1f.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/artist/thumb/svtsux1447415485.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;E:\Music- Test\Fleetwood Mac\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a08371db4e2.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a08371db4e2.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a083a3607ed.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-54a083a3607ed.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-4e7ec8bebeba1.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-51c68f91253a9.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-51c68f91253a9.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
        &amp;lt;thumb preview=&amp;quot;http://assets.fanart.tv/preview/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-518f8f0a5a483.jpg&amp;quot;&amp;gt;http://assets.fanart.tv/fanart/music/bd13909f-1c29-4c27-a874-d4aaf27c5b1a/artistbackground/fleetwood-mac-518f8f0a5a483.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Future Games&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1971&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Live in London 1968&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1989&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Bare Trees&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1972&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tusk&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1979&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;In Concert 1982&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2010&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rumours&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1977&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Say You Will&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;2003&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Kiln House&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1970&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Tango in the Night&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1987&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1975&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Penguin&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mirage&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1982&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Mystery to Me&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1973&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Peter GreenΓÇÖs Fleetwood Mac&amp;lt;/title&amp;gt;&lt;br /&gt;
        &amp;lt;year&amp;gt;1968&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Album nfo ==&lt;br /&gt;
Sample Music Album nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Album nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;album&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Annie Lennox Collection&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;musicBrainzAlbumID&amp;gt;957cda28-5e1e-4507-9de7-1d5049415cea&amp;lt;/musicBrainzAlbumID&amp;gt;&lt;br /&gt;
    &amp;lt;artistdesc&amp;gt;Annie Lennox&amp;lt;/artistdesc&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Pop&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;style&amp;gt;TalbumFstrstyles&amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;mood&amp;gt;TalbumFstrmoods&amp;lt;/mood&amp;gt;&lt;br /&gt;
    &amp;lt;theme&amp;gt;TalbumFstrthemes&amp;lt;/theme&amp;gt;&lt;br /&gt;
    &amp;lt;compilation&amp;gt;false&amp;lt;/compilation&amp;gt;&lt;br /&gt;
    &amp;lt;review&amp;gt;TalbumFstrReview&amp;lt;/review&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;album/compilation&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;releasedate&amp;gt;&amp;lt;/releasedate&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;RCA/19 Recordings&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/the-annie-lennox-collection-50b9f63c63338.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/the-annie-lennox-collection-50b9f63c63338.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;E:\Music Test Test\Annie Lennox\The Annie Lennox Collection\&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;rating max=&amp;quot;10&amp;quot;&amp;gt;0.000000&amp;lt;/rating&amp;gt;&lt;br /&gt;
    &amp;lt;userrating max=&amp;quot;10&amp;quot;&amp;gt;5&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;votes&amp;gt;1500&amp;lt;/votes&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;2003&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;albumArtistCredits&amp;gt;&lt;br /&gt;
        &amp;lt;artist&amp;gt;Annie Lennox&amp;lt;/artist&amp;gt;&lt;br /&gt;
        &amp;lt;musicBrainzArtistID&amp;gt;3e30aebd-0557-4cfd-8fb9-3945afa5d72b&amp;lt;/musicBrainzArtistID&amp;gt;&lt;br /&gt;
    &amp;lt;/albumArtistCredits&amp;gt;&lt;br /&gt;
    &amp;lt;releasetype&amp;gt;album&amp;lt;/releasetype&amp;gt;&lt;br /&gt;
 &amp;lt;/album&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Video nfo ==&lt;br /&gt;
Sample Music Video nfo&lt;br /&gt;
&lt;br /&gt;
{{collapse top| Music Video nfo file  (click &#039;expand&#039; to view)}}&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;musicvideo&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Dancing Queen&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;userrating&amp;gt;0&amp;lt;/userrating&amp;gt;&lt;br /&gt;
    &amp;lt;top250&amp;gt;0&amp;lt;/top250&amp;gt;&lt;br /&gt;
    &amp;lt;track&amp;gt;-1&amp;lt;/track&amp;gt;&lt;br /&gt;
    &amp;lt;album&amp;gt;Arrival&amp;lt;/album&amp;gt;&lt;br /&gt;
    &amp;lt;outline&amp;gt;&amp;lt;/outline&amp;gt;&lt;br /&gt;
    &amp;lt;plot&amp;gt;&amp;quot;Dancing Queen&amp;quot; is a Europop song by the Swedish group ABBA, and the lead single from their fourth studio album, Arrival.&amp;lt;/plot&amp;gt;&lt;br /&gt;
    &amp;lt;tagline&amp;gt;&amp;lt;/tagline&amp;gt;&lt;br /&gt;
    &amp;lt;runtime&amp;gt;0&amp;lt;/runtime&amp;gt;&lt;br /&gt;
    &amp;lt;thumb preview=&amp;quot;http://www.theaudiodb.com/images/media/album/thumb/arrival-4ee244732bbde.jpg/preview&amp;quot;&amp;gt;http://www.theaudiodb.com/images/media/album/thumb/arrival-4ee244732bbde.jpg&amp;lt;/thumb&amp;gt;&lt;br /&gt;
    &amp;lt;mpaa&amp;gt;&amp;lt;/mpaa&amp;gt;&lt;br /&gt;
    &amp;lt;playcount&amp;gt;0&amp;lt;/playcount&amp;gt;&lt;br /&gt;
    &amp;lt;lastplayed&amp;gt;&amp;lt;/lastplayed&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;genre&amp;gt;Pop&amp;lt;/genre&amp;gt;&lt;br /&gt;
    &amp;lt;year&amp;gt;1976&amp;lt;/year&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;aired&amp;gt;&amp;lt;/aired&amp;gt;&lt;br /&gt;
    &amp;lt;trailer&amp;gt;&amp;lt;/trailer&amp;gt;&lt;br /&gt;
    &amp;lt;artist&amp;gt;ABBA&amp;lt;/artist&amp;gt;&lt;br /&gt;
    &amp;lt;resume&amp;gt;&lt;br /&gt;
        &amp;lt;position&amp;gt;0.000000&amp;lt;/position&amp;gt;&lt;br /&gt;
        &amp;lt;total&amp;gt;0.000000&amp;lt;/total&amp;gt;&lt;br /&gt;
    &amp;lt;/resume&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;2017-06-15 14:18:10&amp;lt;/dateadded&amp;gt;&lt;br /&gt;
 &amp;lt;/musicvideo&amp;gt;&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= nfo Tags =&lt;br /&gt;
A list of all available tags that Kodi recognises follows in this section. As mentioned previously, there are many common tags, but there are also specific tags for each part of the library. Ensure you use the correct tags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Movie Tags ==&lt;br /&gt;
&lt;br /&gt;
== TV Show Tags ==&lt;br /&gt;
&lt;br /&gt;
== TV Show Episode Tags ==&lt;br /&gt;
&lt;br /&gt;
== Music Tags ==&lt;br /&gt;
&lt;br /&gt;
== Music Video Tags ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{top}}&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=130420</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=130420"/>
		<updated>2017-08-07T08:50:02Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Music database: improve some of the table and field descritions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Development]] {{l2| [[userdata folder]] }} }}&lt;br /&gt;
{{see also|Databases/Versions}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the Databases ==&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
=== Building SQL Queries ===&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the Databases with Kodi Python ===&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
== The Music Library ==&lt;br /&gt;
This database contains all information concerning music files that you&#039;ve added to the Music Library. It is used in the Music portion of Kodi. The following information is for version 32.&lt;br /&gt;
&lt;br /&gt;
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
{{red|The current v17 database is MyMusic60.db}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== albumartistview ====&lt;br /&gt;
This table combines album with each album artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || = 0 (fake role ID field)&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || = &amp;quot;AlbumArtist&amp;quot; (fake role desc field)&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order artist appears in credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albumview ====&lt;br /&gt;
A view of the album table with some additional fields aggregated from the songs of that album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Votes (for album rating)&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer ||Average of number of times songs on album are played &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song on album&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Last date any song on album was played&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistview ====&lt;br /&gt;
A view of the artist table with an additional field aggregated from the songs by that artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist birthday (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band formation information&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist genres (just text, no link to genre table) &lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Date artist died (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band disbanded information&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years artist is active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs of available artist images&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URLs of available artist fanart&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song by artist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== songartistview ====&lt;br /&gt;
A view that joins song to artist and artist role.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from artist table&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || ID from role table&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Description of role&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID Hash&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order artist appears in song credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== songview ====&lt;br /&gt;
A view that joins song to album and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from song table&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song track number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Songs release year&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of music file&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Musicbrainz track ID&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || Play count&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || Start position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || End position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; time last played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song rating&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || Song rated by user (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for song rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song description or comment&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from album table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album title&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Full path for music file&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag (song is on a compilation album)&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumArtists || text || Album artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|mood || text || Song mood&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text ||  Music file timestamp&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== album ====&lt;br /&gt;
An album. This equates to what Musicbrainz call a &amp;quot;release&amp;quot; and represents the unique release (i.e. issuing) of an item on a specific date with specific release information such as the country, label, etc. Hence album title and artist do not have to be unique as long as we have the release ID (Musicbrainz album ID), Kodi can handle different versions of the same album e.g. original release and then a later remaster (both same title and artist).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album title&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID (release ID)&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || album artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album release year&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [Unused]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album review&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs for available remote album images&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album recording label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iUserrating || integer || Album user rating (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || text || Date/time data scraped from online sources or NFO files&lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_artist ====&lt;br /&gt;
This table links artists and albums&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order of artist names for credits&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || text || Artist name (denormalised)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_genre ====&lt;br /&gt;
This links albums with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order of genre for concatentation &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfosong ====&lt;br /&gt;
Track listing information for the tracks on an album. This is returned when additional information for an album is scraped from online sources or NFO files. It has no relationship with the songs actually in the user&#039;s music collection, it is just details about the album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfoSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Track number&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Track title&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Track duration in seconds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
The current artwork for artists and albums&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#album|album]]or [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || &amp;quot;album&amp;quot; or &amp;quot;artist&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|type || text || art type e.g. &amp;quot;thumb&amp;quot;, &amp;quot;fanart&amp;quot; etc.&lt;br /&gt;
|-&lt;br /&gt;
|url || text || URL of image (can be remote, local or music file with art embedded)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artist ====&lt;br /&gt;
An artist is generally a musician, group of musicians, or other music professional (like a producer or engineer). E.g. Bob Dylan, Pink Floyd, London Symphony Orchestra, Andrew Collins (producer).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Musicbrainz artist ID&lt;br /&gt;
|-&lt;br /&gt;
|-|strBorn || text || Artist birthday (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band formation information&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist genres (just text, no link to genre table) &lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Date artist died (and place)&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band disbanded information&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years artist is active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URLs of available artist images&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URLs of available artist fanart&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || varchar(20) || Date last scraped metadata&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== content ====&lt;br /&gt;
The scraper addon and settings used for scraping additional information for specific albums or artists.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Virtual path encoding what album or artist e.g. &amp;quot;musicdb://artists/235&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strScraperPath || text || Scraper name e.g. &amp;quot;metadata.artists.universal&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || &amp;quot;artists&amp;quot; or &amp;quot;albums&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Scraper settings as XML&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== cue ====&lt;br /&gt;
Cuesheet information that has been extracted from a FLAC file. Generally Cuesheets as separate files are not handled in this way, only those embedded in FLAC files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path(music)|music path]] of where file is located&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of FLAC file the cuesheet is embedded in&lt;br /&gt;
|-&lt;br /&gt;
|strCuesheet || text || Cuesheet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== discography ====&lt;br /&gt;
The discography of an artist. This is returned when additional information for an artist is scraped from online sources or NFO files. It has no relationship with the albums actually in the user&#039;s music collection, it is just details about the artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || text || Album title&lt;br /&gt;
|-&lt;br /&gt;
|strYear || text || Year album released&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre(music) ====&lt;br /&gt;
A music genre. This is a lookup table that enumerates the song genre values read from the genre tags embedded in music files e.g. &amp;quot;Progressive Rock&amp;quot;, &amp;quot;Baroque&amp;quot; etc. But could contain anything that has been given as a &amp;quot;genre&amp;quot;, and is not strictly limited to music genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || varchar(256) || Genre Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path(music) ====&lt;br /&gt;
The path of a folder containing music that has been scanned into the music library. This holds hash values of name, size, and timestamp for each folder and sub folder that is used to determine if the conents have changed and thererfore the music files need rescanning as part of library update.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== role ====&lt;br /&gt;
An artist role, a way that an artist has contributed to or been involved with a song. This could be by being in the song artist credits (&amp;quot;artist&amp;quot;), as a musician (&amp;quot;Guitar&amp;quot;, &amp;quot;Orchestra&amp;quot; or &amp;quot;vocals&amp;quot; etc.), as composer, conductor, lyricist etc. or involved in some other way as music professional e.g. producer, engineer, mixer etc.  This is a lookup table that enumerates the various roles that have been read from tags embedded in music files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idrole || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Description of role&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song ====&lt;br /&gt;
A song. It is the way that the individual track(s) from a music file are held in the music library. Generally a music file contains just one song, however it may contain more and have an associated cuesheet (separately or embedded) that identifies the individual tracks. A song may be from an album (the release of several tracks as one product so includes EPs etc. ), or a single. Singles from an artist (no album title given in the embedded tags) are internally linked with a fake album in the album table. &lt;br /&gt;
&lt;br /&gt;
The music library can contain songs with the same title, artist credits, track number and album as long as they come from separate music files. Unexpectedly Musicbrainz Track ID is not unique on an album, recordings are sometimes repeated e.g. &amp;quot;[silence]&amp;quot; or on a disc set. &lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song artist(s) description (not always a concatenation of names)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres (denormalised concatenation of values in genre table)&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song track number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s release year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unused]&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Name of music file&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Musicbrainz track ID&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || Play count&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || Start position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || End position (in seconds) when song from cuesheet&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [unused]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; time last played&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Song rating&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || Song rated by user (out of 10)&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song comment&lt;br /&gt;
|-&lt;br /&gt;
|mood || text || Song mood&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text ||  Music file timestamp&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Popularity votes for song rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_artist ====&lt;br /&gt;
This table links songs to artists and the roles they contributed.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|idRole || integer || Foreign key to [[Databases#role|role table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order in artist credits&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || text || Name of artist (denormalised)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_genre ====&lt;br /&gt;
This table links the songs with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Genre order when concatenating to single string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version(music) ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of the music database&lt;br /&gt;
|-&lt;br /&gt;
|iCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Video Library ==&lt;br /&gt;
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of Kodi. The following information is for version 75.&lt;br /&gt;
&lt;br /&gt;
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
{{red|The current database in use for v17 is MyVideos107.db}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== episodeview ====&lt;br /&gt;
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Path to episode file&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || text ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || text ||  User Rating&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || text ||  Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Name of program&lt;br /&gt;
|-&lt;br /&gt;
|genre || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|studio || text || Studio&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || Premiered Date&lt;br /&gt;
|-&lt;br /&gt;
|mpaa || text || MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Resume Point&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Length of video&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== movieview ====&lt;br /&gt;
A view that joins movie to file and path.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Image URL&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text ||  Movie Set&lt;br /&gt;
|-&lt;br /&gt;
|strSetOverview || text ||  Movie Set plot&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Resume Point&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Length of video&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideoview ====&lt;br /&gt;
A view that joins musicvideo to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || Premier of Music Video&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowview ====&lt;br /&gt;
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|-&lt;br /&gt;
|duration || integer || Total duration&lt;br /&gt;
|-&lt;br /&gt;
|idParentPath || integer ||&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || Rating&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || Votes for rating&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || Type of rating&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_value || text || &lt;br /&gt;
|-&lt;br /&gt;
|uniqueid_type || text || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow counts ====&lt;br /&gt;
This table stores the TV Show watched count, total seasons, last played and date added data&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date Added&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The information in the Video Library is organized into the following tables. Several large tables (such as [[Databases#episode|episode]], [[Databases#movie|movie]], [[Databases#settings|settings]], and [[Databases#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.&lt;br /&gt;
&lt;br /&gt;
==== actor ====&lt;br /&gt;
This table stores actor, artist, director, and writer information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Name of the actor, artist, director, or writer&lt;br /&gt;
|-&lt;br /&gt;
|art_urls|| text || Image URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actor_link ====&lt;br /&gt;
This table links actors to Movies, TV Shows, Episodes, Music Videos and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#tvshow|tv show table]], [[Databases#movie|movie table]],[[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, TV Show, Episode, Music Video&lt;br /&gt;
|-&lt;br /&gt;
|role || text || Role the actor played&lt;br /&gt;
|-&lt;br /&gt;
|cast_order || integer || Order actors will be displayed&lt;br /&gt;
|}==== art ====&lt;br /&gt;
This table stores URLs for video art metadata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || The id of the media this piece of art is for&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor&lt;br /&gt;
|-&lt;br /&gt;
|type || text || The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart&lt;br /&gt;
|-&lt;br /&gt;
|url || text || Image URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== bookmark ====&lt;br /&gt;
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idBookmark || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|timeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || integer || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|thumbNailImage || text || Thumbnail for bookmark&lt;br /&gt;
|-&lt;br /&gt;
|player || text || Player used to store bookmark&lt;br /&gt;
|-&lt;br /&gt;
|playerState || text || Player&#039;s internal state in XML&lt;br /&gt;
|-&lt;br /&gt;
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country ====&lt;br /&gt;
This table lists countries.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|country_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Country Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country link ====&lt;br /&gt;
This table links countries to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|country_id || integer || Foreign key to [[Databases#country|country table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer ||Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || integer || Movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== director_link ====&lt;br /&gt;
This table links directors to Movies, TV show episodes and Music Videos&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#movie|movie table]],[[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, Episode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== episode ====&lt;br /&gt;
This table stores television episode information. Information concerning the series is stored in [[Databases#tvshow|tvshow]]. To link an episode to its parent series, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Path to episode file&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Used- unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || text ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || text ||  User Rating&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || text ||  Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
==== files ====&lt;br /&gt;
This table stores filenames and links the path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre ====&lt;br /&gt;
This table stores genre information. For convenience the contents are duplicated in [[Databases#movie|movie]] and [[Databases#tvshow|tvshow]], so a join isn&#039;t necessary.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|genre_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Genre label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre_link ====&lt;br /&gt;
This table links genres to movies. (The contents are also stored in movies.c14, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|genre_id || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#movie|movie table]], [[Databases#tvshow|tv show table]], [[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, TV Show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movie ====&lt;br /&gt;
This table stores movie information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Image URL&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||  Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movielinktvshow ====&lt;br /&gt;
This table links movies to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideo ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text || Path to playable file&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date movie premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path ====&lt;br /&gt;
This table stores path information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || Type of content (tvshows, movies, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|strScraper || text || XML file of scraper used for this path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash&lt;br /&gt;
|-&lt;br /&gt;
|scanRecursive || integer || Recursive scan setting&lt;br /&gt;
|-&lt;br /&gt;
|useFolderNames || bool || User folder names setting&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Custom settings used by scraper&lt;br /&gt;
|-&lt;br /&gt;
|noUpdate || bool || Exclude path from library update&lt;br /&gt;
|-&lt;br /&gt;
|exclude || bool || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|idParentPath || integer || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== rating ====&lt;br /&gt;
This table stores the ratings for TV Shows, Episodes and Movies&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|rating_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#episode|episode table]], [[Databases#tvshow|tv show table]], [[Databases#movie|movie table]],&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movies, TV Show, TV Episode&lt;br /&gt;
|-&lt;br /&gt;
|rating_type || text || default&lt;br /&gt;
|-&lt;br /&gt;
|rating || float || rating from scraper site&lt;br /&gt;
|-&lt;br /&gt;
|votes || integer || votes from scraper site&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== seasons ====&lt;br /&gt;
This table stores the links between tv show and seasons.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idShow|| integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|season || integer || Season number&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Unknown&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer || User Rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== sets ====&lt;br /&gt;
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|-&lt;br /&gt;
|strOverview || text || The description of the set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== settings ====&lt;br /&gt;
This table stores settings for individual files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlace || bool || Deinterlace&lt;br /&gt;
|-&lt;br /&gt;
|ViewMode|| integer || ViewMode&lt;br /&gt;
|-&lt;br /&gt;
|ZoomAmount|| float || ZoomAmount&lt;br /&gt;
|-&lt;br /&gt;
|PixelRatio|| float || PixelRatio&lt;br /&gt;
|-&lt;br /&gt;
|VerticalShift || float|| &lt;br /&gt;
|-&lt;br /&gt;
|AudioStream || integer || Selected audio stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleStream || integer || Selected subtitle stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleDelay || float || Amount of delay for subtitles&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleOn || bool || Enable subtitles&lt;br /&gt;
|-&lt;br /&gt;
|Brightness || integer || Brightness &lt;br /&gt;
|-&lt;br /&gt;
|Contrast || integer || Contrast &lt;br /&gt;
|-&lt;br /&gt;
|Gamma || integer || Gamma &lt;br /&gt;
|-&lt;br /&gt;
|VolumeAmplification || float || VolumeAmplification &lt;br /&gt;
|-&lt;br /&gt;
|AudioDelay || float || AudioDelay &lt;br /&gt;
|-&lt;br /&gt;
|OutputToAllSpeakers || bool || OutputToAllSpeakers &lt;br /&gt;
|-&lt;br /&gt;
|ResumeTime || integer || ResumeTime &lt;br /&gt;
|-&lt;br /&gt;
|Crop || bool || Crop &lt;br /&gt;
|-&lt;br /&gt;
|CropLeft || integer || CropLeft &lt;br /&gt;
|-&lt;br /&gt;
|CropRight || integer || CropRight &lt;br /&gt;
|-&lt;br /&gt;
|CropTop || integer || CropTop &lt;br /&gt;
|-&lt;br /&gt;
|CropBottom || integer || CropBottom &lt;br /&gt;
|-&lt;br /&gt;
|Sharpness || float || Sharpness&lt;br /&gt;
|-&lt;br /&gt;
|NoiseReduction || float || Noise Reduction&lt;br /&gt;
|-&lt;br /&gt;
|NonLinStretch || bool || Non Linear Stretch&lt;br /&gt;
|-&lt;br /&gt;
|PostProcess || bool || Post Processing&lt;br /&gt;
|-&lt;br /&gt;
|ScalingMethod || integer || Scaling&lt;br /&gt;
|-&lt;br /&gt;
|DeinterlaceMode || integer || Deinterlace mode&lt;br /&gt;
|-&lt;br /&gt;
|StereoMode || integer || Stereo Mode&lt;br /&gt;
|-&lt;br /&gt;
|StereoInvert || bool || Stereo Inversion&lt;br /&gt;
|-&lt;br /&gt;
|VideoStream || integer || VideoStream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== stacktimes ====&lt;br /&gt;
This table stores playing times for files (used for playing multi-file videos).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|times|| text || Times&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== streamdetails ====&lt;br /&gt;
This table contains information regarding codecs used, aspect ratios etc&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles&lt;br /&gt;
|-&lt;br /&gt;
|strVideoCodec|| text || Video codex (xvid etc)&lt;br /&gt;
|-&lt;br /&gt;
|fVideoAspect|| real || Aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
|iVideoWidth|| integer || Width of the video&lt;br /&gt;
|-&lt;br /&gt;
|iVideoHeight|| integer || Height of the video&lt;br /&gt;
|-&lt;br /&gt;
|strAudioCodec|| text || Audio codec (aac, mp3 etc)&lt;br /&gt;
|-&lt;br /&gt;
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)&lt;br /&gt;
|-&lt;br /&gt;
|strAudioLanguage|| text || Language of the audio track&lt;br /&gt;
|-&lt;br /&gt;
|strSubtitleLanguage|| text || Language of the subtitles&lt;br /&gt;
|-&lt;br /&gt;
|iVideoDuration|| integer || &lt;br /&gt;
|-&lt;br /&gt;
|strStereoMode || text || Stereo Mode&lt;br /&gt;
|-&lt;br /&gt;
|strVideoLanguage|| text || Language of the Video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio ====&lt;br /&gt;
This table stores studio information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|studio_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || text || Studio Label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio link ====&lt;br /&gt;
This table links studios to movies, music videos and tv shows&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|studio_id || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to [[Databases#movie|movie table]], [[Databases#tvshow|tv show table]], [[Databases#musicvideo|music video table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Movie, Music Video, TV Show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== tag ====&lt;br /&gt;
This stores tags.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|tag_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|name || integer || Tag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== taglinks ====&lt;br /&gt;
This table links tags to various media.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|tag_id || integer || Foreign key to [[Databases#tag|tag table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow ====&lt;br /&gt;
This table stores information about a television series. Information concerning the shows episodes is stored in [[Databases#episode|episode]]. To link a TV show to its episodes, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|userrating || integer ||  Rating applied by user&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text ||  Date tv show premiered&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkpath ====&lt;br /&gt;
This table links a TV show to its path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== uniqueid ====&lt;br /&gt;
This table links a Movie, TV show and Episode to its the scraper site&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|uniqueid || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|-&lt;br /&gt;
|value || text || ID at scraper site&lt;br /&gt;
|-&lt;br /&gt;
|type || text || Scraper site&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writer_link ====&lt;br /&gt;
This table links writers stored in the actors table to movies and episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|actor_id || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The View Modes Database ==&lt;br /&gt;
Kodi can track a user&#039;s View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating Kodi.&lt;br /&gt;
&lt;br /&gt;
The View Modes database is stored in userdata/Database/ViewModes.db.&lt;br /&gt;
&lt;br /&gt;
{{red|The current database in use for v17 is ViewModes6.db}}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The View Modes database uses only two tables. Most of the useful information is in [[Databases#view|view]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== view ====&lt;br /&gt;
This table stores details on the saved view mode for all known paths.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idView || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|window || integer || Window GUI ID&lt;br /&gt;
|-&lt;br /&gt;
|path || text || Path to trigger the view on&lt;br /&gt;
|-&lt;br /&gt;
|viewMode || integer || View Mode&lt;br /&gt;
|-&lt;br /&gt;
|sortMethod || integer || ID of sort method&lt;br /&gt;
|-&lt;br /&gt;
|sortOrder || integer || Sort order (ascending or descending)&lt;br /&gt;
|-&lt;br /&gt;
|sortAttributes || integer || &lt;br /&gt;
|-&lt;br /&gt;
|skin || text || Skin settings apply to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Version table]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=130371</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=130371"/>
		<updated>2017-07-27T07:11:30Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Explanation of Music importing options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music Library Scanning Options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Media &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
and look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Show song and album updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(This option was previously called &#039;Include Artists who appear only on compilation albums&#039;)&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
The music library is created by scanning metadata that is embedded in the music files, not by looking at the file names or the folders they are located in. Kodi reads the following tags. The Kodi version shows that the tag was added from that version onwards, and the actual ag name is given in the various tag formats supported. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Version&lt;br /&gt;
! Vorbis (.Flac)&lt;br /&gt;
! ID3v2 (.mp3)&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;TagTable&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
Having created the music library entries, Kodi can then scrape additional artist and album data from either online sources or from local NFO files. This can be automated as part of update library by enabling &amp;quot;Fetch additional information on update&amp;quot; setting. However, it can be best to scan music files and check the resulting library first, before scraping additional information.&lt;br /&gt;
&lt;br /&gt;
The Universal Album Scraper and The Universal Artist Scraper settings allow the user to choose which online sources are used for different pices of information.&lt;br /&gt;
&lt;br /&gt;
TADB - The Audio Database&lt;br /&gt;
AM - Allmusic&lt;br /&gt;
MB - Musicbrainz&lt;br /&gt;
&lt;br /&gt;
The additional information scraped is:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - TADB/AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
* Votes&lt;br /&gt;
&lt;br /&gt;
Notice that Genres, Year, Compilation and Label may have been derrived from tag data and these will take prescidence. These values can be overwritten by the scarped values if &amp;quot;Prefer Online Information&amp;quot; setting is enabled. But note that if an album is mis-idenitified by the scraper then with &amp;quot;Prefer Online Information&amp;quot; the album artists will also be replaced with those the scraper found.&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
{{updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_artwork&amp;diff=130154</id>
		<title>Music artwork</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_artwork&amp;diff=130154"/>
		<updated>2017-07-09T16:08:56Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Explaing embedded tags and the problems with compilations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Artwork_Contents}}&lt;br /&gt;
{{mininav|[[Artwork]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Music artwork are images directly related to an Artist or an Album, that are either scraped into the Music library from extenal sources or, in the case of Album art, scanned from the appropriate tags embedded in the music files. The images are, preferably, of high quality, that are displayed when viewing the Album or Artist entry in the library. They may also be used as visualisations while playing music. The Music section in Kodi is able to display up to six types of artwork. This page will describe the different types of artwork available in the Music category of Kodi.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;It is important to note the following:&#039;&#039;&#039;}}&lt;br /&gt;
*Artwork is skin dependent. This means that some skins display a small number of artwork types, while other skins will display most of the available artwork types.&lt;br /&gt;
*In previous versions of Kodi and in older wiki pages, the term Thumbnails was used to describe Artwork. Kodi has now moved away from referring to thumbnails due to the amount of confusion and concern it caused users.&lt;br /&gt;
*The base line for all artwork is the default skin Estuary. By default, Estuary displays the Basic artwork. Estuary can display the Extended artwork via additional add-ons.&lt;br /&gt;
*While high resolution images do look impressive on HDTV&#039;s it is important to be aware that the increased artwork size can negatively affect low powered hardware.&lt;br /&gt;
; {{see also|Music_library}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
{{Red|&#039;&#039;&#039;As the Music section of Kodi has many differences to the Video section of Kodi, please read the following to ensure your music and artwork are correctly scraped and displayed.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
It is important to understand the fundamental difference between video library operation and the music library operation: &lt;br /&gt;
*The video library is based on using the filenames to get online data. If the video files are incorrectly named, then there are no scraper results, thus no library entry.&lt;br /&gt;
*The music library is based on scanning tags embedded in the music files, not the filenames. Basic tagging is essential, the artists and albums in the library are derrived from these tags.&lt;br /&gt;
*Although you may have your music saved in an Artist\Album\Song folder hierarchy, Kodi does not use this structure to create albums or artists. &lt;br /&gt;
*&#039;&#039;&#039;Populating the music library is a two step process.&#039;&#039;&#039;&lt;br /&gt;
**The first step reads the tags embedded in the music files, is refered to as scanning. If there is any embedded artwork, this will also be read and cached.&lt;br /&gt;
**The second optional step fetches additional artist and album information and artwork, refered to as scraping.  This information and artwork can be downloaded from online sources or fetched from local files.&lt;br /&gt;
*&#039;&#039;&#039;Scraping of additional artist and album information does not happen on library update (including when first adding a source) unless &amp;quot;Fetch additional info on update&amp;quot; is enabled.&#039;&#039;&#039; Currently this defaults to &#039;&#039;&#039;disabled&#039;&#039;&#039;, for several reasons:&lt;br /&gt;
**It allows you to perform the initial tag scan quickly. In v17 and below, when &#039;&#039;Fetch additional info on update&#039;&#039; is &#039;&#039;enabled&#039;&#039;, the two steps happen immediately each album and artist is added. This slows down populating the library. It is a background task, but still gives the impression that it is taking a considerable time to populate the library. In reality it is slowed down by the online scraping, and not the local tag scanning. This will be changed in v18 where Kodi will perform the initial tag scan then, once complete, will commence the online scrape.&lt;br /&gt;
**The strategy of immediately scraping each album and artist as it is added can also have unwanted consequences. A common example involves compilation albums. Say for example you have both &#039;&#039;Fetch additional info on update&#039;&#039; and &#039;&#039;Show song and album artists&#039;&#039; is &#039;&#039;enabled&#039;&#039;, and a folder called &amp;quot;Compilations&amp;quot; containing all your Various Artist compliation albums. As the processing takes place in alphabetical order, this folder gets processed &#039;&#039;before&#039;&#039; the albums of artists in folders beginning with a letter later in the alphabet. The additional information for the song artists from these compilation albums gets added to the library and scraped before the other albums by that artist had been scanned, and so any artist.nfo file is never found and applied.&lt;br /&gt;
**Bad tagging makes a messy library and then the online scrape compounds errors and makes the library difficult to unscramble. It is far better for the user to perform the initial scan, find and fix the bad tags, then perform the on-line scrape knowing there will be no further errors.&lt;br /&gt;
**Scraping online also often leaves many gaps on first pass, then the user has to manually &#039;&#039;query for all&#039;&#039; anyway, often several times, to fill these gaps. This was because lack of correct throttling, and general server overload has meant that online scraping often failed (seen in the log as &#039;&#039;503 server errors&#039;&#039;).  This is expected to be fixed for v17.4 if released or v18.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#lst:Adding_music_to_the_library|intro}} {{see also|Adding_music_to_the_library}}&lt;br /&gt;
&lt;br /&gt;
{{#lst:Music_tagging|intro}}{{see also|Music_tagging}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Caching ==&lt;br /&gt;
All music artwork is cached. If artwork is scraped from local files, once it is cached, Kodi will not access the local files again.&lt;br /&gt;
&lt;br /&gt;
Also be aware of image adjustments made by Kodi during the caching process. See [[Artwork#Cache|Cache]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#ffaba5, #ffaba5 50%, #ffaba5}}&amp;quot;&amp;gt;&lt;br /&gt;
Music artwork is cached as part of a multi-tier process. The code which assigns images to files runs and assigns images in the following order:&lt;br /&gt;
#Cached Album image&lt;br /&gt;
#*This is all the embedded album art read by the tag reader and cached using the album name and album artist.&lt;br /&gt;
#Cached filename.jpg&lt;br /&gt;
#*This includes an embedded image cached with the fully qualified name.&lt;br /&gt;
#Remote filename.jpg&lt;br /&gt;
#*This is a filename.jpg on a remote share/folder which is then cached.&lt;br /&gt;
#Cached folder.jpg &lt;br /&gt;
#*This is a folder.jpg which is cached based off the folder path.&lt;br /&gt;
#Remote folder.jpg&lt;br /&gt;
#*This is a folder.jpg on a remote share/folder which is then cached.&lt;br /&gt;
#Remote foldername.jpg &lt;br /&gt;
#*This is a foldername.jpg on a remote share/folder which is then cached.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Basic Music Artwork =&lt;br /&gt;
The artwork in the Basic section is the minimum artwork displayed by the default skin Estuary with a standard install.&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;Note the following:&#039;&#039;&#039;}}&lt;br /&gt;
*The following naming schemes apply &#039;&#039;&#039;only&#039;&#039;&#039; to the artwork you have manually sourced and saved. It does not apply to artwork downloaded by the Kodi scraper or any add-on processes.&lt;br /&gt;
*To ensure auto-scraping of &#039;&#039;&#039;local&#039;&#039;&#039; artwork, the music files must be arranged in a certain folder heirarchy. There must be a unique Artist folder which then contains Album folders for &#039;&#039;&#039;all&#039;&#039;&#039; albums by that artist. These album folders contain the individual songs for that album.&lt;br /&gt;
*This folder structure is only important if you want to use local artwork or NFO files for providing additional data, it does not contribute to the basic library contents. The library is populated with Artists and Albums by reading tags embedded in the music files, &#039;&#039;&#039;not&#039;&#039;&#039; the folder names or hierarchy.&lt;br /&gt;
*Kodi does not use folder names to identify artists or albums, so you can name them however you like. It determines the location of the artist and album folders by analysing the file location of songs, and the artist and album of the song from music tags.&lt;br /&gt;
*The algorthim used to determine the location of the artist and album folders has weaknesses. It can not handle collaborations (albums by more than one album artist e.g. orchestra and conductor), non-unique artist names, disc sets or singles. If local art is not being found then often it is because of the location of some of the song files connected to that artist or album.&lt;br /&gt;
*It is useful to have separate/multiple music sources that separates standard artists and albums, that can easily be organised in a artist\album\song folder heirarchy, from those such as classical music, soundtracks, and compilations which can not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fanart- Artist ==&lt;br /&gt;
[[File:Artwork-MusicFanart01.jpg|400px|right]]&lt;br /&gt;
Fanart, also known as Wallpapers, Backdrops or Backgrounds, are images that have, in most cases, been created by fans.&lt;br /&gt;
;{{see also|wikipedia:Fanart|l1=Fanart on Wikipedia}}&lt;br /&gt;
&lt;br /&gt;
For Kodi, it means digital images, of high quality, that are used as full screen displays to enhance the user experience. The fanart displays the artist or band. &lt;br /&gt;
;{{see also|FanArt}} &lt;br /&gt;
&lt;br /&gt;
The image to the right is a typical example of music fanart. It is specifically designed to match the 16:9 ratio of current generation televisions and monitors. This allows the screen to be completely filled by the image. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|16:9}}&lt;br /&gt;
| width=200px | {{nowrap|1920x1080}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |fanart.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\fanart.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Artist Image ==&lt;br /&gt;
[[File:Artwork-MusicArtist01.jpg|400px|right]]&lt;br /&gt;
The Artist Image is also known as Artist Thumb or just Thumb within Kodi, and is saved as &#039;&#039;folder.jpg&#039;&#039; within the artist folder. They are high quality images of the artist or band members. The image to the right is displaying the Artist Image using the Infowall view in Estuary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|1000x1000}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |folder.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\folder.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manually Adding Artist Artwork ==&lt;br /&gt;
From within Kodi, you have the ability to manually change the artwork at any time.&lt;br /&gt;
&lt;br /&gt;
Select the Artist whose artwork you would like to add or change. Call up the Artist Information page. As seen in the images below, there are two options titled &#039;&#039;Get Thumb&#039;&#039; and &#039;&#039;Get Fanart&#039;&#039;. Selecting either of these will present you the options as seen in the second and third images.  Once selected, you will then be provided with a list of available artworks at the scraper site, or you can navigate to a local or network location as shown in the following images.&lt;br /&gt;
&amp;lt;gallery widths=450px heights=250px&amp;gt;&lt;br /&gt;
File:Artwork-MusicAdd01.jpg|Choose either Get thumb or Get fanart on the Artist Information Page&lt;br /&gt;
File:Artwork-MusicAdd02.jpg|The browse screen for Get Thumb (Artist Image). Select from Current, Local or Remote (online) sources&lt;br /&gt;
File:Artwork-MusicAdd03.jpg|The browse screen for Get Fanart. Select from Current, Local or Remote (online) sources&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Album Image ==&lt;br /&gt;
[[File:Artwork-MusicAlbum01.jpg|400px|right]]&lt;br /&gt;
The album image is also known as the Album Thumb, Album Cover or as Thumb within Kodi. They are high quality images of the Album cover and each album folder would have its own album Folder image. They are saved as &#039;&#039;folder.jpg&#039;&#039; inside the album folder. The image to the right is displaying the album images using the Infowall view in Estuary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|1000x1000}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |folder.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\folder.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manually Adding Album Artwork ==&lt;br /&gt;
From within Kodi, you have the ability to manually change the artwork at any time.&lt;br /&gt;
&lt;br /&gt;
Select the Album whose artwork you would like to add or change. Call up the Album Information page. As seen in the images below, select &#039;&#039;Get Thumb&#039;&#039; which will present you the options as seen in the second image. You will then be provided with a list of available artworks at the scraper site, or you can navigate to a local or network location as shown in the following images.&lt;br /&gt;
&amp;lt;gallery widths=450px heights=250px&amp;gt;&lt;br /&gt;
File:Artwork-MusicAdd04.jpg|Choose Get thumb on the Album Information Page&lt;br /&gt;
File:Artwork-MusicAdd05.jpg|The browse screen for Get Thumb (Album Image). Select from Current, Local or Remote (online) sources&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Source Folder Artwork ==&lt;br /&gt;
[[File:Artwork-VideoFolder01.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The Folder Artwork, also known as Source Folder thumb,  can be landscape, portrait or square images that are used to replace the standard folder icons when browsing your music sources in the files section. You will not see this artwork in the Music menu. This image file is saved directly within the Source directory.&lt;br /&gt;
&lt;br /&gt;
To enable the image, navigate to Music&amp;gt;Files in the menu system. Highlight a source and call up the Context Menu. Select Choose Thumbnail. If you have saved the image in the correct location, it will be available to select immediately. If not, you will need to navigate to locate and select it. The image must remain in its original location once selected as it will not be cached. Deleting the image will remove it from view in the folder icon.&lt;br /&gt;
&lt;br /&gt;
You are able to also apply the folder thumb by modifying the &#039;&#039;&#039;\userdata\sources.xml&#039;&#039;&#039; as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
   &amp;lt;name&amp;gt;music&amp;lt;/name&amp;gt;&lt;br /&gt;
   &amp;lt;path&amp;gt;xbms://192.168.1.100:1400/Music/&amp;lt;/path&amp;gt;&lt;br /&gt;
   &amp;lt;thumbnail&amp;gt;F:\Apps\XBMC\thumbs\shares\thumb.png&amp;lt;/thumbnail&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg}} &lt;br /&gt;
| width=200px | {{nowrap|16:9}}&lt;br /&gt;
| width=200px | {{nowrap|640x360}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg}} &lt;br /&gt;
| width=200px | {{nowrap|1:1.5}}&lt;br /&gt;
| width=200px | {{nowrap|400x600}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|500x500}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Source&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Folder Artwork:&lt;br /&gt;
| width=250px |folder.jpg&lt;br /&gt;
| width=600px |f:\Music\folder.jpg&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Alternative name:&lt;br /&gt;
| width=250px |&amp;lt;foldername&amp;gt;.jpg&lt;br /&gt;
| width=600px |f:\Musc\Music.jpg&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Extended Music Artwork =&lt;br /&gt;
To display the Extended Music Artwork, an add-on will need to be installed to extend the image handling capabilities of Kodi and the skins. Once this is installed, it will insert extra artwork fields which become available to use in the Skins. &lt;br /&gt;
One example is the cdART Manager add-on which can be installed from the official Kodi repository. &lt;br /&gt;
; {{see also|Add-on:CdART_Manager}}&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;Note the following:&#039;&#039;&#039;}}&lt;br /&gt;
*The following naming schemes apply &#039;&#039;&#039;only&#039;&#039;&#039; to the artwork you have manually sourced and saved. It does not apply to artwork downloaded by the Kodi scraper or any add-on processes.&lt;br /&gt;
*To ensure auto-scraping of local artwork, there must be an Artist directory which then contains the Album directories. These album directories contain the individual songs for that album.&lt;br /&gt;
*Compilation Albums are problematic for local artwork and metadata. See chapter 5 below for further information.&lt;br /&gt;
*All Extended Artwork, except Extra Fanart, is cached by Kodi. Once cached the local original files will no longer be accessed.&lt;br /&gt;
*If using the cdART Manager add-on, it is important to note the following&lt;br /&gt;
**The add-on has the option to use local artwork (if correctly named and saved) or online artwork. When viewing the Album and Artist information page for the first time, the cdART Manager will automatically scrape local artwork. If no local artwork is available, it will scrape online sources.&lt;br /&gt;
**Using the Kodi scraper will not download extended artwork. The cdART Manager add-on is required to be run after the Kodi scrape process. i.e. you are performing two or three scrapes depending upon settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Banner ==&lt;br /&gt;
[[File:Artwork-MusicBanner01.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Also known as Wide Banner Icons and Artist Banner. The image to the right shows the Banner view at the top right position. They are images that contain the artist or band. The banner image normally displays the artist or band logo which is of a size that is clearly legible. The view is from the Aeon MQ7- Krypton Mod skin&lt;br /&gt;
; {{see also|Wide_banner_icons}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|1:0.185}}&lt;br /&gt;
| width=200px | {{nowrap|1000x185}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |banner.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\banner.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logo ==&lt;br /&gt;
[[File:Artwork-MusicBanner01.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Also known as Clear Logo. This is the logo or name of the artist or band on a transparent background. The logo uses the distinctive font associated with the musicians and is uncluttered by other images. The transparent background allows it to be overlayed on other images or video with minimal impact. The image to the right shows the logo at the far right of the image, roughly in the centre and looks like a signature. The view is from the Aeon MQ7- Krypton Mod skin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.png}} &lt;br /&gt;
| width=200px | {{nowrap|1:0.388}}&lt;br /&gt;
| width=200px | {{nowrap|800x310}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |logo.png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\logo.png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CD Art ==&lt;br /&gt;
[[File:Artwork-MusicBanner01.jpg|400px|right]]&lt;br /&gt;
CD Art, also known as Disc Art, is the image that is visible on the physical CD. It uses a transparent background.&lt;br /&gt;
&lt;br /&gt;
The image to the right displays the CD Art in two locations- bottom left and bottom right corners of the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.png}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|1000x1000}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |cdart.png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\cdart.png&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |or&lt;br /&gt;
| width=250px |disc.png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\disc.png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extra fanart ==&lt;br /&gt;
Extra fanart is reliant on a supporting skin and have exactly the same properties as the standard Fanart.&lt;br /&gt;
&lt;br /&gt;
It is possible to download and save additional high quality Fanart which the skin can display, usually in a slideshow.&lt;br /&gt;
; {{see also|Extra_Fanart}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Embedded Artwork =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;EmbeddedArtwork&amp;quot; /&amp;gt;As of v17, Kodi supports embedded album art in mp3 files with ID3v2 tags, WMA/WMV files with ASF tags, FLAC files with Vorbis comments/Xiph tags, and mp4 files with itunes tags. It does not currently support embedded album art in APEv2 tags or Ogg files.&amp;lt;section end=&amp;quot;EmbeddedArtwork&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#ffaba5, #ffaba5 50%, #ffaba5}}&amp;quot;&amp;gt;&lt;br /&gt;
Maybe give the actual tag names in a table?&amp;lt;br/&amp;gt;&lt;br /&gt;
Perhaps explain the priority of embedded artwork over/under external local art files &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Best Practice for Local Artwork =&lt;br /&gt;
How to organise your music to work around the current limitations Kodi has in identifying where local art (and NFO files) may be located, and what can go wrong.&lt;br /&gt;
&lt;br /&gt;
For a great deal of music, where albums have one album artist, using a unique artist\album\song folder hierarchy is the obvious way to organise your music, and Kodi will have no problems finding correctly named image files located in that structure. It can often happen without an user intervention too, as much tagging software such as Musicbrainz Picard will create a local album art files as part of the tagging process.&lt;br /&gt;
&lt;br /&gt;
==No Suitable Artist Folder==&lt;br /&gt;
However it is not always possible to create a unique artist folder, with &#039;&#039;all&#039;&#039; the albums by that artist, and only that artist, in folders beneath it. &lt;br /&gt;
&lt;br /&gt;
*Collaborations&lt;br /&gt;
&lt;br /&gt;
The obvious example is when an album has more than one album artist, this is very common with Classical music where the composer, orchestra and conductor are tagged as album artists, but also happens in popular music e.g. &amp;quot;Riding With The King&amp;quot; is a collaboration between BB King and Eric clapton, or &amp;quot;The Juliet Letters&amp;quot; by Elvis Costello and The Brodsky Quartet.  There is no work around for providing local art for artists invloved in collaborations like this. However the artist scraper will still be able to fetch online artwork for these artists. &lt;br /&gt;
&lt;br /&gt;
*Song Artists without Albums&lt;br /&gt;
&lt;br /&gt;
Some artists may appear only on songs from Various Artists compilation albums, or as featured artist on songs on an album by another artist, but do not have any albums in your collection. These artists also do not have a unique folder containing all the songs they perform on, and so again there is no place to store local art.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The cdART Manager addon&#039;&#039;&#039; does support a way to provide local art for song artists that do not have albums of their own. It involves creating empty (no music files) Artist folders for those artists, and is sensive to the folder name matching the artist name exactly. However, cdART Manager will create such an empty folder for every song artist in your collection, that can be a lot of folders!&lt;br /&gt;
&lt;br /&gt;
*Other Artists: Composers, Producers, Mixers, Musicians etc.&lt;br /&gt;
&lt;br /&gt;
From v17 Kodi processes the tags that descibe the other people involved and musicians etc. in a song. These may be artists with songs and albums in their own right, but often will include people that are do not appear in your music collection in any other role. Again no unique folder containing all the songs they perform on, and no place to store local art.&lt;br /&gt;
&lt;br /&gt;
==Compilations==&lt;br /&gt;
Compliation albums also have a reputation for causing difficulties with scraping local artist art. This is mostly because of the unwanted consequences of immediately scraping each album and artist as each is added. (This is solved in v18).&lt;br /&gt;
&lt;br /&gt;
One way to minimise this problem is to leave &#039;&#039;Fetch additional info on update&#039;&#039; &#039;&#039;disabled&#039;&#039;, and initiate scraping of album and artist information and artwork using &amp;quot;Query Information for All&amp;quot; from the context menu &#039;&#039;after&#039;&#039; scanning a new source has completed. &lt;br /&gt;
&lt;br /&gt;
Another is to group all compilation albums under a separate folder, named so that, alphabetically, it is the last folder in the list to be processed. So for example if your normal album artists have folders Musicpath\artistname\ then use Musicpath\zzzCompilations\&lt;br /&gt;
&lt;br /&gt;
It can also be useful to put the compliations folder on a completely separate path to where the normal album artist folders are located, and add it as a separate music source. So for example if your normal album artists have folders&lt;br /&gt;
Musicpath1\artistname\ then use Musicpath2\zzzCompilations\&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:First Time User]]&lt;br /&gt;
[[Category:Music library|*]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_artwork&amp;diff=130147</id>
		<title>Music artwork</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_artwork&amp;diff=130147"/>
		<updated>2017-07-09T07:02:57Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Some scanning/scraping amendments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Artwork_Contents}}&lt;br /&gt;
{{mininav|[[Artwork]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Music artwork are images directly related to an Artist or an Album, that are either scraped into the Music library from extenal sources or, in the case of Album art, scanned from the appropriate tags embedded in the music files. The images are, preferably, of high quality, that are displayed when viewing the Album or Artist entry in the library. They may also be used as visualisations while playing music. The Music section in Kodi is able to display up to six types of artwork. This page will describe the different types of artwork available in the Music category of Kodi.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;It is important to note the following:&#039;&#039;&#039;}}&lt;br /&gt;
*Artwork is skin dependent. This means that some skins display a small number of artwork types, while other skins will display most of the available artwork types.&lt;br /&gt;
*In previous versions of Kodi and in older wiki pages, the term Thumbnails was used to describe Artwork. Kodi has now moved away from referring to thumbnails due to the amount of confusion and concern it caused users.&lt;br /&gt;
*The base line for all artwork is the default skin Estuary. By default, Estuary displays the Basic artwork. Estuary can display the Extended artwork via additional add-ons.&lt;br /&gt;
*While high resolution images do look impressive on HDTV&#039;s it is important to be aware that the increased artwork size can negatively affect low powered hardware.&lt;br /&gt;
; {{see also|Music_library}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
{{Red|&#039;&#039;&#039;As the Music section of Kodi has many differences to the Video section of Kodi, please read the following to ensure your music and artwork are correctly scraped and displayed.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
It is important to understand the fundamental difference between video library operation and the music library operation: &lt;br /&gt;
*The video library is based on using the filenames to get online data. If the video files are incorrectly named, then there are no scraper results, thus no library entry.&lt;br /&gt;
*The music library is based on scanning tags embedded in the music files, not the filenames. Basic tagging is essential, the artists and albums in the library are derrived from these tags.&lt;br /&gt;
*Although you may have your music saved in an Artist\Album\Song folder hierarchy, Kodi does not use this structure to create albums or artists. &lt;br /&gt;
*&#039;&#039;&#039;Populating the music library is a two step process.&#039;&#039;&#039;&lt;br /&gt;
**The first step reads the tags embedded in the music files, is refered to as scanning. If there is any embedded artwork, this will also be read and cached.&lt;br /&gt;
**The second optional step fetches additional artist and album information and artwork, refered to as scraping.  This information and artwork can be downloaded from online sources or fetched from local files.&lt;br /&gt;
*&#039;&#039;&#039;Scraping of additional artist and album information does not happen on library update (including when first adding a source) unless &amp;quot;Fetch additional info on update&amp;quot; is enabled.&#039;&#039;&#039; Currently this defaults to &#039;&#039;&#039;disabled&#039;&#039;&#039;, for several reasons:&lt;br /&gt;
**It allows you to perform the initial tag scan quickly. In v17 and below, when &#039;&#039;Fetch additional info on update&#039;&#039; is &#039;&#039;enabled&#039;&#039;, the two steps happen immediately each album and artist is added. This slows down populating the library. It is a background task, but still gives the impression that it is taking a considerable time to populate the library. This may cause users to believe that Kodi has stopped working and leads to many users stopping the scrape prematurely which causes further problems with library corruption. In reality it is slowed down by the online scraping, and not the local tag scanning. This will be changed in v18 where Kodi will perform the initial tag scan then, once complete, will commence the online scrape.&lt;br /&gt;
**Bad tagging makes a messy library and then the online scrape compounds errors and makes the library difficult to unscramble. It is far better for the user to perform the initial scan, find and fix the bad tags, then perform the on-line scrape knowing there will be no further errors.&lt;br /&gt;
**Scraping online also often leaves many gaps on first pass, then the user has to manually &#039;&#039;query for all&#039;&#039; anyway, often several times, to fill these gaps. This was because lack of correct throttling, and general server overload has meant that online scraping often failed (seen in the log as &#039;&#039;503 server errors&#039;&#039;).  This is expected to be fixed for v17.4 if released or v18.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#lst:Adding_music_to_the_library|intro}} {{see also|Adding_music_to_the_library}}&lt;br /&gt;
&lt;br /&gt;
{{#lst:Music_tagging|intro}}{{see also|Music_tagging}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Caching ==&lt;br /&gt;
All music artwork is cached. If artwork is scraped from local files, once it is cached, Kodi will not access the local files again.&lt;br /&gt;
&lt;br /&gt;
Also be aware of image adjustments made by Kodi during the caching process. See [[Artwork#Cache|Cache]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#ffaba5, #ffaba5 50%, #ffaba5}}&amp;quot;&amp;gt;&lt;br /&gt;
Music artwork is cached as part of a multi-tier process. The code which assigns images to files runs and assigns images in the following order:&lt;br /&gt;
#Cached Album image&lt;br /&gt;
#*This is all the embedded album art read by the tag reader and cached using the album name and album artist.&lt;br /&gt;
#Cached filename.jpg&lt;br /&gt;
#*This includes an embedded image cached with the fully qualified name.&lt;br /&gt;
#Remote filename.jpg&lt;br /&gt;
#*This is a filename.jpg on a remote share/folder which is then cached.&lt;br /&gt;
#Cached folder.jpg &lt;br /&gt;
#*This is a folder.jpg which is cached based off the folder path.&lt;br /&gt;
#Remote folder.jpg&lt;br /&gt;
#*This is a folder.jpg on a remote share/folder which is then cached.&lt;br /&gt;
#Remote foldername.jpg &lt;br /&gt;
#*This is a foldername.jpg on a remote share/folder which is then cached.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Basic Music Artwork =&lt;br /&gt;
The artwork in the Basic section is the minimum artwork displayed by the default skin Estuary with a standard install.&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;Note the following:&#039;&#039;&#039;}}&lt;br /&gt;
*The following naming schemes apply &#039;&#039;&#039;only&#039;&#039;&#039; to the artwork you have manually sourced and saved. It does not apply to artwork downloaded by the Kodi scraper or any add-on processes.&lt;br /&gt;
*To ensure auto-scraping of &#039;&#039;&#039;local&#039;&#039;&#039; artwork, the music files must be arranged in a certain folder heirarchy. There must be a unique Artist folder which then contains Album folders for &#039;&#039;&#039;all&#039;&#039;&#039; albums by that artist. These album folders contain the individual songs for that album.&lt;br /&gt;
*This folder structure is only important if you want to use local artwork or NFO files for providing additional data, it does not contribute to the basic library contents. The library is populated with Artists and Albums by reading tags embedded in the music files, &#039;&#039;&#039;not&#039;&#039;&#039; the folder names or hierarchy.&lt;br /&gt;
*Kodi does not use folder names to identify artists or albums, so you can name them however you like. It determines the location of the artist and album folders by analysing the file location of songs, and the artist and album of the song from music tags.&lt;br /&gt;
*The algorthim used to determine the location of the artist and album folders has weaknesses. It can not handle collaborations (albums by more than one album artist e.g. orchestra and conductor), non-unique artist names, disc sets or singles. If local art is not being found then often it is because of the location of some of the song files connected to that artist or album.&lt;br /&gt;
*It is useful to have separate/multiple music sources that separates standard artists and albums, that can easily be organised in a artist\album\song folder heirarchy, from those such as classical music, soundtracks, and compilations which can not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fanart- Artist ==&lt;br /&gt;
[[File:Artwork-MusicFanart01.jpg|400px|right]]&lt;br /&gt;
Fanart, also known as Wallpapers, Backdrops or Backgrounds, are images that have, in most cases, been created by fans.&lt;br /&gt;
;{{see also|wikipedia:Fanart|l1=Fanart on Wikipedia}}&lt;br /&gt;
&lt;br /&gt;
For Kodi, it means digital images, of high quality, that are used as full screen displays to enhance the user experience. The fanart displays the artist or band. &lt;br /&gt;
;{{see also|FanArt}} &lt;br /&gt;
&lt;br /&gt;
The image to the right is a typical example of music fanart. It is specifically designed to match the 16:9 ratio of current generation televisions and monitors. This allows the screen to be completely filled by the image. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|16:9}}&lt;br /&gt;
| width=200px | {{nowrap|1920x1080}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |fanart.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\fanart.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Artist Image ==&lt;br /&gt;
[[File:Artwork-MusicArtist01.jpg|400px|right]]&lt;br /&gt;
The Artist Image is also known as Artist Thumb or just Thumb within Kodi, and is saved as &#039;&#039;folder.jpg&#039;&#039; within the artist folder. They are high quality images of the artist or band members. The image to the right is displaying the Artist Image using the Infowall view in Estuary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|1000x1000}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |folder.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\folder.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manually Adding Artist Artwork ==&lt;br /&gt;
From within Kodi, you have the ability to manually change the artwork at any time.&lt;br /&gt;
&lt;br /&gt;
Select the Artist whose artwork you would like to add or change. Call up the Artist Information page. As seen in the images below, there are two options titled &#039;&#039;Get Thumb&#039;&#039; and &#039;&#039;Get Fanart&#039;&#039;. Selecting either of these will present you the options as seen in the second and third images.  Once selected, you will then be provided with a list of available artworks at the scraper site, or you can navigate to a local or network location as shown in the following images.&lt;br /&gt;
&amp;lt;gallery widths=450px heights=250px&amp;gt;&lt;br /&gt;
File:Artwork-MusicAdd01.jpg|Choose either Get thumb or Get fanart on the Artist Information Page&lt;br /&gt;
File:Artwork-MusicAdd02.jpg|The browse screen for Get Thumb (Artist Image). Select from Current, Local or Remote (online) sources&lt;br /&gt;
File:Artwork-MusicAdd03.jpg|The browse screen for Get Fanart. Select from Current, Local or Remote (online) sources&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Album Image ==&lt;br /&gt;
[[File:Artwork-MusicAlbum01.jpg|400px|right]]&lt;br /&gt;
The album image is also known as the Album Thumb, Album Cover or as Thumb within Kodi. They are high quality images of the Album cover and each album folder would have its own album Folder image. They are saved as &#039;&#039;folder.jpg&#039;&#039; inside the album folder. The image to the right is displaying the album images using the Infowall view in Estuary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|1000x1000}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |folder.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\folder.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manually Adding Album Artwork ==&lt;br /&gt;
From within Kodi, you have the ability to manually change the artwork at any time.&lt;br /&gt;
&lt;br /&gt;
Select the Album whose artwork you would like to add or change. Call up the Album Information page. As seen in the images below, select &#039;&#039;Get Thumb&#039;&#039; which will present you the options as seen in the second image. You will then be provided with a list of available artworks at the scraper site, or you can navigate to a local or network location as shown in the following images.&lt;br /&gt;
&amp;lt;gallery widths=450px heights=250px&amp;gt;&lt;br /&gt;
File:Artwork-MusicAdd04.jpg|Choose Get thumb on the Album Information Page&lt;br /&gt;
File:Artwork-MusicAdd05.jpg|The browse screen for Get Thumb (Album Image). Select from Current, Local or Remote (online) sources&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Source Folder Artwork ==&lt;br /&gt;
[[File:Artwork-VideoFolder01.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The Folder Artwork, also known as Source Folder thumb,  can be landscape, portrait or square images that are used to replace the standard folder icons when browsing your music sources in the files section. You will not see this artwork in the Music menu. This image file is saved directly within the Source directory.&lt;br /&gt;
&lt;br /&gt;
To enable the image, navigate to Music&amp;gt;Files in the menu system. Highlight a source and call up the Context Menu. Select Choose Thumbnail. If you have saved the image in the correct location, it will be available to select immediately. If not, you will need to navigate to locate and select it. The image must remain in its original location once selected as it will not be cached. Deleting the image will remove it from view in the folder icon.&lt;br /&gt;
&lt;br /&gt;
You are able to also apply the folder thumb by modifying the &#039;&#039;&#039;\userdata\sources.xml&#039;&#039;&#039; as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
   &amp;lt;name&amp;gt;music&amp;lt;/name&amp;gt;&lt;br /&gt;
   &amp;lt;path&amp;gt;xbms://192.168.1.100:1400/Music/&amp;lt;/path&amp;gt;&lt;br /&gt;
   &amp;lt;thumbnail&amp;gt;F:\Apps\XBMC\thumbs\shares\thumb.png&amp;lt;/thumbnail&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg}} &lt;br /&gt;
| width=200px | {{nowrap|16:9}}&lt;br /&gt;
| width=200px | {{nowrap|640x360}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg}} &lt;br /&gt;
| width=200px | {{nowrap|1:1.5}}&lt;br /&gt;
| width=200px | {{nowrap|400x600}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|500x500}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |&#039;&#039;&#039;&#039;&#039;Source&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Folder Artwork:&lt;br /&gt;
| width=250px |folder.jpg&lt;br /&gt;
| width=600px |f:\Music\folder.jpg&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=200px |Alternative name:&lt;br /&gt;
| width=250px |&amp;lt;foldername&amp;gt;.jpg&lt;br /&gt;
| width=600px |f:\Musc\Music.jpg&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Extended Music Artwork =&lt;br /&gt;
To display the Extended Music Artwork, an add-on will need to be installed to extend the image handling capabilities of Kodi and the skins. Once this is installed, it will insert extra artwork fields which become available to use in the Skins. &lt;br /&gt;
One example is the cdART Manager add-on which can be installed from the official Kodi repository. &lt;br /&gt;
; {{see also|Add-on:CdART_Manager}}&lt;br /&gt;
&lt;br /&gt;
{{red|&#039;&#039;&#039;Note the following:&#039;&#039;&#039;}}&lt;br /&gt;
*The following naming schemes apply &#039;&#039;&#039;only&#039;&#039;&#039; to the artwork you have manually sourced and saved. It does not apply to artwork downloaded by the Kodi scraper or any add-on processes.&lt;br /&gt;
*To ensure auto-scraping of local artwork, there must be an Artist directory which then contains the Album directories. These album directories contain the individual songs for that album.&lt;br /&gt;
*Compilation Albums are problematic for local artwork and metadata. See chapter 5 below for further information.&lt;br /&gt;
*All Extended Artwork, except Extra Fanart, is cached by Kodi. Once cached the local original files will no longer be accessed.&lt;br /&gt;
*If using the cdART Manager add-on, it is important to note the following&lt;br /&gt;
**The add-on has the option to use local artwork (if correctly named and saved) or online artwork. When viewing the Album and Artist information page for the first time, the cdART Manager will automatically scrape local artwork. If no local artwork is available, it will scrape online sources.&lt;br /&gt;
**Using the Kodi scraper will not download extended artwork. The cdART Manager add-on is required to be run after the Kodi scrape process. i.e. you are performing two or three scrapes depending upon settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Banner ==&lt;br /&gt;
[[File:Artwork-MusicBanner01.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Also known as Wide Banner Icons and Artist Banner. The image to the right shows the Banner view at the top right position. They are images that contain the artist or band. The banner image normally displays the artist or band logo which is of a size that is clearly legible. The view is from the Aeon MQ7- Krypton Mod skin&lt;br /&gt;
; {{see also|Wide_banner_icons}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.jpg or png}} &lt;br /&gt;
| width=200px | {{nowrap|1:0.185}}&lt;br /&gt;
| width=200px | {{nowrap|1000x185}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |banner.jpg/png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\banner.jpg/png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logo ==&lt;br /&gt;
[[File:Artwork-MusicBanner01.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Also known as Clear Logo. This is the logo or name of the artist or band on a transparent background. The logo uses the distinctive font associated with the musicians and is uncluttered by other images. The transparent background allows it to be overlayed on other images or video with minimal impact. The image to the right shows the logo at the far right of the image, roughly in the centre and looks like a signature. The view is from the Aeon MQ7- Krypton Mod skin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.png}} &lt;br /&gt;
| width=200px | {{nowrap|1:0.388}}&lt;br /&gt;
| width=200px | {{nowrap|800x310}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |logo.png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\logo.png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CD Art ==&lt;br /&gt;
[[File:Artwork-MusicBanner01.jpg|400px|right]]&lt;br /&gt;
CD Art, also known as Disc Art, is the image that is visible on the physical CD. It uses a transparent background.&lt;br /&gt;
&lt;br /&gt;
The image to the right displays the CD Art in two locations- bottom left and bottom right corners of the image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|bottom|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required file properties:&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;Note: The resolution may be increased but ensure the aspect ratio is maintained&amp;lt;/small&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;File Type&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Aspect Ratio&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;&#039;&#039;Resolution- &amp;lt;small&amp;gt;recommended&amp;lt;/small&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=150px | {{nowrap|*.png}} &lt;br /&gt;
| width=200px | {{nowrap|1:1}}&lt;br /&gt;
| width=200px | {{nowrap|1000x1000}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|top|#f5d3ff, #12b2e7}}&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Naming and Saving conventions for your own manually sourced artwork:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |&#039;&#039;&#039;&#039;&#039;Music saved as&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=250px |&#039;&#039;&#039;&#039;&#039;File Name&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| width=600px |&#039;&#039;&#039;&#039;&#039;Save name &amp;amp; location example&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |Artist\Album\Songs&lt;br /&gt;
| width=250px |cdart.png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\cdart.png&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=300px |or&lt;br /&gt;
| width=250px |disc.png&lt;br /&gt;
| width=600px |f:\Music\Madonna\Like A Prayer\disc.png&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extra fanart ==&lt;br /&gt;
Extra fanart is reliant on a supporting skin and have exactly the same properties as the standard Fanart.&lt;br /&gt;
&lt;br /&gt;
It is possible to download and save additional high quality Fanart which the skin can display, usually in a slideshow.&lt;br /&gt;
; {{see also|Extra_Fanart}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Embedded Artwork =&lt;br /&gt;
&amp;lt;div style=&amp;quot;{{linear-gradient|left|#ffaba5, #ffaba5 50%, #ffaba5}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;section begin=&amp;quot;EmbeddedArtwork&amp;quot; /&amp;gt;As of v17, Kodi supports embedded album art in files with ID3 tags, WMA tags, FLAC and MP4 tags only. It does not support embedded album art in APE or Ogg tags currently.&amp;lt;section end=&amp;quot;EmbeddedArtwork&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compilation Albums =&lt;br /&gt;
Compilation albums, various artists, classical music and other collaborative type albums are problematic for Kodi in the following cases:&lt;br /&gt;
#When using local artwork and nfo files&lt;br /&gt;
#When using the Import/Export function &#039;&#039;See [[Import-Export_library]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you are &#039;&#039;&#039;not&#039;&#039;&#039; using either one of those functions, then Kodi has no problem scraping online metadata and artwork of correctly named and tagged music files.&lt;br /&gt;
&lt;br /&gt;
There currently is no workaround or fix for this issue, but steps can be taken so that these compilation albums do not affect the remainder of the library of normal single artist albums.&lt;br /&gt;
#Group all compilation type albums in one or more directories- eg Compilations, Soundtracks, Classical etc&lt;br /&gt;
#Add these compilation directories as  separate sources in Kodi and ensure it is named so that, alphabetically, it is the last directory in the list. (f:\zzMusic\zzCompilations\)&lt;br /&gt;
#Create Artist directories for artists that appear only on compilation albums, and place their artwork in those empty artist directories. This will allow Kodi to scrape the artwork, and then match it to the compilation artists when it eventually reaches the last directories. &#039;&#039;&#039;This method only works with cdART Manager addon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:First Time User]]&lt;br /&gt;
[[Category:Music library|*]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad&amp;diff=130048</id>
		<title>User talk:Karellen/scratchpad</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad&amp;diff=130048"/>
		<updated>2017-07-01T08:19:51Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Basic Artwork&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is here a good place to comment? Giving it a go anyway.&lt;br /&gt;
&lt;br /&gt;
Worth noting that basic album art (cover) can also be scanned from the appropriate tags embedded in the music files. That is where most of my art comes from. Then album and artist art can be scraped from online sources or NFO files with the location of the art, or manually set to locally held files.&lt;br /&gt;
&lt;br /&gt;
== Basic music Artwork ==&lt;br /&gt;
&lt;br /&gt;
Having a folder for every artist on the compilation is a CDart addon thing, not out the box Kodi. Kodi will not do anything with such folders.&lt;br /&gt;
&lt;br /&gt;
Worth explaining that the name of folders does not matter to Kodi at all, just the files located beneth then and how the music files are tagged&lt;br /&gt;
&lt;br /&gt;
The artist folder is the folder that contains somewhere below it all the songs by that artist. Kodi finds it by searching for the lowest common denominator path (no idea how to say that in user language) not by looking at the name.&lt;br /&gt;
&lt;br /&gt;
Likewise the album folder is the one containing all the songs on that album.&lt;br /&gt;
&lt;br /&gt;
Worth discussing impact of having just one album by an artist, and disc sets. probably some more explanation in my comments on import&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad&amp;diff=130047</id>
		<title>User talk:Karellen/scratchpad</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad&amp;diff=130047"/>
		<updated>2017-07-01T08:10:37Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Compilation albums */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is here a good place to comment? Giving it a go anyway.&lt;br /&gt;
&lt;br /&gt;
Worth noting that basic album art (cover) can also be scanned from the appropriate tags embedded in the music files. That is where most of my art comes from. Then album and artist art can be scraped from online sources or NFO files with the location of the art, or manually set to locally held files.&lt;br /&gt;
&lt;br /&gt;
== Compilation albums ==&lt;br /&gt;
&lt;br /&gt;
Having a folder for every artist on the compilation is a CDart addon thing, not out the box Kodi. Kodi will not do anything with such folders.&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad&amp;diff=130046</id>
		<title>User talk:Karellen/scratchpad</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Karellen/scratchpad&amp;diff=130046"/>
		<updated>2017-07-01T08:06:36Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Don&amp;#039;t forget embedded art&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is here a good place to comment? Giving it a go anyway.&lt;br /&gt;
&lt;br /&gt;
Worth noting that basic album art (cover) can also be scanned from the appropriate tags embedded in the music files. That is where most of my art comes from. Then album and artist art can be scraped from online sources or NFO files with the location of the art, or manually set to locally held files.&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Import-export_library&amp;diff=129813</id>
		<title>Import-export library</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Import-export_library&amp;diff=129813"/>
		<updated>2017-06-20T10:36:25Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Highlight the limitations of Export/Import for music library&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[General topics]]|[[Video library|Videos]]{{l2|[[Music/Audio]]}}|[[Video library/Management|Management]]&amp;lt;br /&amp;gt;&amp;amp;nbsp;}}&lt;br /&gt;
{{see also|NFO files|HOW-TO:Backup the library}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi offers the ability to import and export data manually into/from the [[Library|Media Library]], as well as importing media info automatically from [[NFO files|.nfo files]].&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kodi has the option to both Export and Import its Video database. These options may be used for a number of reasons including the following more popular ones:&lt;br /&gt;
*Perform database backup and recovery (This is not the only method for backup and recovery)&lt;br /&gt;
*Reorganization of data or eliminate database fragmentation (export, clean/remove database, re-import)&lt;br /&gt;
*Move data between Kodi databases on different platforms (eg Widows to Linux)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It also has an Export and Import option for some parts of the Music database, however the main data in the music library comes from metadata embedded in the music files, and the export facility does not backup this data at all. Likewise import will not populate an empty db. What is imported and exported is any additional album artist and album information that has been previously scraped from NFO files or online sources. It&#039;s uses are limited, but it does enable the user to capture data that they have scraped online, including any manual choices they made, it a form that can be transfered.&lt;br /&gt;
&lt;br /&gt;
When exporting, database metadata is dumped to a nfo file which can then be used to import into the same or another Kodi database. The method used to import is dependent upon the export options used.&lt;br /&gt;
&lt;br /&gt;
Various options are available to control what objects are exported or imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video Library Export / Import ==&lt;br /&gt;
The option is accessed via the Settings menu as detailed in the first image. &lt;br /&gt;
&lt;br /&gt;
This option will Export and Import the following Categories:&lt;br /&gt;
*Movies&lt;br /&gt;
*TV Shows&lt;br /&gt;
*Music Videos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon selection of the Export Library setting, you will be required to choose the Export method as depicted in the second image below. Continue reading for an explanation of the options.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;700&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp01.jpg|Location of setting&lt;br /&gt;
File:LibExp02.png|Select which Export option you require.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Separate Files ===&lt;br /&gt;
&lt;br /&gt;
This option will export the metadata stored in the database and save it into a nfo file. It will be saved to the same directory where that particular Movie/TV Show/Music Video is located. This is a good example where Movies and TV Show episodes would benefit from being in their own directory.&lt;br /&gt;
&lt;br /&gt;
After selecting &#039;&#039;&#039;Separate&#039;&#039;&#039;, you will then be asked if you would like to &#039;&#039;&#039;Export thumbnails and fanart?&#039;&#039;&#039;. This will export the Fanart, Posters, Banners, Episode Thumbs and Music Video Posters.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will save a copy of the cached artwork into the Movie, TV Show, TV Show Episode and Music Video directory alongside the video file and the nfo file.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will not export the artwork&lt;br /&gt;
&lt;br /&gt;
The next option is &#039;&#039;&#039;Export Actors Thumbs&#039;&#039;&#039;. &lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will export a copy of the Actors artwork in a directory named &#039;&#039;.actors&#039;&#039;&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will not export a copy of the Actors artwork&lt;br /&gt;
&lt;br /&gt;
The final option is &#039;&#039;&#039;Overwrite Old Files&#039;&#039;&#039;.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will overwrite the existing nfo files and artwork. This is useful if you have modified your metadata such as changed the artwork, created or modified movie sets, etc. Any movies/tv shows/music videos that were not present since the last Export will have the nfo and artwork exported to their directory.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will add nfo files and artwork to those movies/tv shows/music videos that do not already have them. eg they are new and added after the last export. If you made changes to a movie/tv show/music video that already has an nfo created, these changes will &#039;&#039;&#039;not&#039;&#039;&#039; be exported.&lt;br /&gt;
*If this is the first time this option has been run and/or you have no nfo files and artwork saved in your movie/tv show/music video directories, both choices will have the same result.&lt;br /&gt;
&lt;br /&gt;
The Export will commence immediately once the final option is selected. An onscreen progress bar will indicate progress.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500&amp;quot; heights=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp03.png|Do you want to export Thumbnails and Fanart?&lt;br /&gt;
File:LibExp05.jpg|Do you want to export Actors Thumbs?&lt;br /&gt;
File:LibExp04.png|Do you want to Overwrite Old Files?&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Single File ===&lt;br /&gt;
[[File:LibExp06.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This option will export all metadata and all artwork to a single directory, to a location nominated by the user, as follows:&lt;br /&gt;
*The only option available is the save location which you will be prompted and required to enter&lt;br /&gt;
*Kodi will create a directory in your selected location named &#039;&#039;xbmc_videodb_yyyy-mm-dd&#039;&#039;&lt;br /&gt;
*Library metadata will be saved into a single &#039;&#039;videodb.xml&#039;&#039; file within that directory&lt;br /&gt;
*Artwork will be saved within multiple sub-directories according to type&lt;br /&gt;
*Subsequent exports &#039;&#039;&#039;will not&#039;&#039;&#039; overwrite existing Single File exports&lt;br /&gt;
*Subsequent exports are &#039;&#039;&#039;full&#039;&#039;&#039; exports. They are &#039;&#039;&#039;not&#039;&#039;&#039; incremental exports.&lt;br /&gt;
&lt;br /&gt;
{{note|Some users may find the single file export problematic in Frodo and higher, due to an issue with artwork. The export process changes the artwork location URL to the folder location of the export, which causes an issue if you need to refresh the image. To fix, you will need to manually source the image in the Information page of the Movie/TV show }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Separate Files&#039;&#039;&#039; option, then you must use the normal scraping process to re-import the data. {{small see also|Library_update}}&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Single File&#039;&#039;&#039; option, you will need to use this method to import the data as follows&lt;br /&gt;
*Select &#039;&#039;&#039;Import&#039;&#039;&#039; to commence the import process&lt;br /&gt;
*Locate the the directory for your previously saved single file export&lt;br /&gt;
*If you have multiple single file exports, ensure you have selected the correct one.&lt;br /&gt;
*Select &#039;&#039;&#039;Ok&#039;&#039;&#039;. A progress bar will be displayed to indicate progress&lt;br /&gt;
*Once complete, your library should be functional again&lt;br /&gt;
&lt;br /&gt;
Be aware that if you have removed movies or tv shows or music videos since the export, the metadata for those movies, tv shows and music videos will be re-imported into the library. You will need to run a &#039;&#039;&#039;Clean Library&#039;&#039;&#039; to remove them. This option is located just above the &#039;&#039;&#039;Export&#039;&#039;&#039; entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Library Export / Import ==&lt;br /&gt;
&lt;br /&gt;
The option is accessed via the Settings menu as detailed in the first image. It is on the same page as the Video Export option. You may have to scroll down to locate it. &lt;br /&gt;
Upon selection of the Export Library setting, you will be required to choose the Export method as depicted in the second image below. The process is similar to the Video Export and Import instructions above, but there are some slight variances. Continue reading for an explanation of the options.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;700&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp01.jpg|Location of setting&lt;br /&gt;
File:LibExp02.png|Select which Export option you require.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Separate Files ===&lt;br /&gt;
&lt;br /&gt;
This option will export any previously scraped album artist and album information and save it into a nfo file in the locations as follows:&lt;br /&gt;
*Artist nfo file and artwork will be saved in the Artist directory&lt;br /&gt;
*Album nfo file and artwork will be saved in the Album directory&lt;br /&gt;
*If the music source has not been scraped, no nfo file will be written&lt;br /&gt;
*Only Album and Album Artist data is exported. Song artists, those that do not have albums and only appear featured on tracks or on &amp;quot;Various Artists&amp;quot; compilation albums, are not included &lt;br /&gt;
*Song data such as rating, play count, and last time played are not included either. &lt;br /&gt;
&lt;br /&gt;
{{note|There are weaknesses in the way that Kodi determines the location of the artist directory. It looks for the folder that is common to all the songs with that album artist, the name of that folder is irrelevent. If you have multiple albums by an artist all under an artist folder then this works perfectly. &lt;br /&gt;
However the algorithm does not work for collaboration albums, those that have more than one album artist e.g. &amp;quot;Riding with the King&amp;quot; by Eric Clapton and BB King, or classical music with composer, orchestra and conductor given as the album artist. It also gets confused when you have only one album by an artist, and takes the album directory as the artist directory. Also if you have not kept all songs by an artist under a unique folder, then the artist directory will probably be mis-identified. The result for export is that the artist.NFO file goes somewhere unexpected, and that location may not be unique, so the NFO will contain the artist information from the last album artist exported}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After selecting &#039;&#039;&#039;Separate&#039;&#039;&#039;, you will then be asked if you would like to &#039;&#039;&#039;Export thumbnails and fanart?&#039;&#039;&#039;. This will export the Artist and album artwork.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will export a copy of the cached artwork into the appropriate Artist and Album directory.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will not export the artwork&lt;br /&gt;
&lt;br /&gt;
The final option is &#039;&#039;&#039;Overwrite Old Files&#039;&#039;&#039;.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will overwrite the existing nfo files and artwork. This is useful if you have scraped album or album artist information online that you want to replace any locally held data, or changed the artwork. Any Albums/Artists that were not present since the last Export will have the nfo and artwork exported to their directory.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will add nfo files and artwork to those Albums/Artists that do not already have them. eg they are new and added after the last export. If you have modified data of an Artist or Album that was previously exported, this change will not be exported.&lt;br /&gt;
*If this is the first time this option has been run and/or you have no nfo files and artwork saved in your Artist/Album directories, both choices will have the same result.&lt;br /&gt;
&lt;br /&gt;
The Export will commence immediately once the final option is selected. An onscreen progress bar will indicate progress.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;700&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp03.png|Do you want to export Thumbnails and Fanart?&lt;br /&gt;
File:LibExp04.png|Do you want to Overwrite Old Files?&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Single File ===&lt;br /&gt;
[[File:LibExp06.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This option will export previously scraped album artists and album information to a single file, to a location nominated by the user, as follows:&lt;br /&gt;
*Kodi will create a file in your selected location named &#039;&#039;musicdb.xml&#039;&#039;&lt;br /&gt;
*The only option available is the save location which you will be prompted and required to enter&lt;br /&gt;
&lt;br /&gt;
Be aware of the following caveats:&lt;br /&gt;
*Export will write an empty .xml file if none of the album artists or albums have been scraped. &lt;br /&gt;
*Artwork will not be saved&lt;br /&gt;
*Subsequent exports &#039;&#039;&#039;will&#039;&#039;&#039; overwrite the existing Single File exports&lt;br /&gt;
&lt;br /&gt;
{{note|Using the &#039;&#039;&#039;Single File&#039;&#039;&#039; export option for music can be problematic when it comes to compilation albums or various artist albums}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Separate Files&#039;&#039;&#039; option, then you must use the normal scraping process to re-import the data. {{small see also|Music_library_update}}.&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Single File&#039;&#039;&#039; option, you will need to use this method to import the data as follows&lt;br /&gt;
*Select &#039;&#039;&#039;Import&#039;&#039;&#039; to commence the import process&lt;br /&gt;
*Locate the the directory for your previously saved single file export&lt;br /&gt;
*Select the &#039;&#039;musicdb.xml&#039;&#039; file&lt;br /&gt;
*The &#039;&#039;&#039;Import&#039;&#039;&#039; process will commence immediately&lt;br /&gt;
*Once complete, your library should be functional again&lt;br /&gt;
&lt;br /&gt;
Be aware:&lt;br /&gt;
*if you have removed Albums or Artists since the export, the metadata for those Albums and Album Artists will be re-imported into the library. You will need to run a &#039;&#039;&#039;Clean Library&#039;&#039;&#039; to remove them. This option is located just above the &#039;&#039;&#039;Export&#039;&#039;&#039; entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Videos ==&lt;br /&gt;
The Music Videos Export/Import is controlled and run by the [[Import-export_library#Video_Library_Export_.2F_Import|Video Library Export/Import]]. Running the Export/Import for Movies and TV Shows, will also run the Export/Import for Music Videos at the same time as they share the same library.&lt;br /&gt;
&lt;br /&gt;
{{note|When using the Single File export in v17, there is a glitch where the artwork for music videos is not saved in the &#039;&#039;musicvideos&#039;&#039; directory, rather it is saved in the &#039;&#039;movies&#039;&#039; directory along with the Movies artwork}}&lt;br /&gt;
&lt;br /&gt;
{{note|This issue has been fixed for v18 onwards}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
You cannot Import or Export pictures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importing library information from &amp;quot;My Movies&amp;quot; media management software ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mymovies.dk/ My Movies (www.mymovies.name)] is an online database for profiling DVD-Video movies. [http://www.mymovies.dk/ My Movies] saves an XML file and a poster cover image which with this patch will get scanned by Kodi in the same way as Kodi&#039;s own XML formatted NFO files are scanned/scraped.&lt;br /&gt;
&lt;br /&gt;
Kodi has the ability to get the import movie library information from &amp;quot;[http://www.mymovies.dk/ My Movies]&amp;quot; via the mymovies.xml files that it generates, these mymovies.xml are checked after the movie.nfo file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Options ==&lt;br /&gt;
By adding suitable code to &#039;&#039;advancedsettings.xml&#039;&#039;, you are able to further modify which data is exported. {{small see also|Advanced_settings}}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
   &amp;lt;exportautothumbs&amp;gt;false&amp;lt;/exportautothumbs&amp;gt;  -- export auto-generated thumbs. Defaults to false --&lt;br /&gt;
   &amp;lt;importwatchedstate&amp;gt;false&amp;lt;/importwatchedstate&amp;gt;  -- import previously exported playdate and playcount from .nfo files. Defaults to false --&lt;br /&gt;
   &amp;lt;importresumepoint&amp;gt;false&amp;lt;/importresumepoint&amp;gt;  -- import previously exported resume point from .nfo files. Defaults to false --&lt;br /&gt;
 &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Import-export_library&amp;diff=129809</id>
		<title>Import-export library</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Import-export_library&amp;diff=129809"/>
		<updated>2017-06-19T12:53:11Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: Highlight the limitations of Export/Import for music library&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[General topics]]|[[Video library|Videos]]{{l2|[[Music/Audio]]}}|[[Video library/Management|Management]]&amp;lt;br /&amp;gt;&amp;amp;nbsp;}}&lt;br /&gt;
{{see also|NFO files|HOW-TO:Backup the library}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi offers the ability to import and export data manually into/from the [[Library|Media Library]], as well as importing media info automatically from [[NFO files|.nfo files]].&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kodi has the option to both Export and Import its Video database. These options may be used for a number of reasons including the following more popular ones:&lt;br /&gt;
*Perform database backup and recovery (This is not the only method for backup and recovery)&lt;br /&gt;
*Reorganization of data or eliminate database fragmentation (export, clean/remove database, re-import)&lt;br /&gt;
*Move data between Kodi databases on different platforms (eg Widows to Linux)&lt;br /&gt;
&lt;br /&gt;
It also has an Export and Import option for some parts of the Music database, however the main data in the music library comes from metadata embedded in the music files, and the export facility does not backup this data at all. Likewise import will not populate an empty db. What is imported and exported is any additional artist and album information that has been previously scraped from NFO files or online sources. Hence it enables the user to capture data that they have scraped online, including any manual choices they made, it a form that can be transfered.&lt;br /&gt;
&lt;br /&gt;
When exporting, database metadata is dumped to a nfo file which can then be used to import into the same or another Kodi database. The method used to import is dependent upon the export options used.&lt;br /&gt;
&lt;br /&gt;
Various options are available to control what objects are exported or imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video Library Export / Import ==&lt;br /&gt;
The option is accessed via the Settings menu as detailed in the first image. &lt;br /&gt;
&lt;br /&gt;
This option will Export and Import the following Categories:&lt;br /&gt;
*Movies&lt;br /&gt;
*TV Shows&lt;br /&gt;
*Music Videos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upon selection of the Export Library setting, you will be required to choose the Export method as depicted in the second image below. Continue reading for an explanation of the options.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;700&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp01.jpg|Location of setting&lt;br /&gt;
File:LibExp02.png|Select which Export option you require.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Separate Files ===&lt;br /&gt;
&lt;br /&gt;
This option will export the metadata stored in the database and save it into a nfo file. It will be saved to the same directory where that particular Movie/TV Show/Music Video is located. This is a good example where Movies and TV Show episodes would benefit from being in their own directory.&lt;br /&gt;
&lt;br /&gt;
After selecting &#039;&#039;&#039;Separate&#039;&#039;&#039;, you will then be asked if you would like to &#039;&#039;&#039;Export thumbnails and fanart?&#039;&#039;&#039;. This will export the Fanart, Posters, Banners, Episode Thumbs and Music Video Posters.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will save a copy of the cached artwork into the Movie, TV Show, TV Show Episode and Music Video directory alongside the video file and the nfo file.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will not export the artwork&lt;br /&gt;
&lt;br /&gt;
The next option is &#039;&#039;&#039;Export Actors Thumbs&#039;&#039;&#039;. &lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will export a copy of the Actors artwork in a directory named &#039;&#039;.actors&#039;&#039;&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will not export a copy of the Actors artwork&lt;br /&gt;
&lt;br /&gt;
The final option is &#039;&#039;&#039;Overwrite Old Files&#039;&#039;&#039;.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will overwrite the existing nfo files and artwork. This is useful if you have modified your metadata such as changed the artwork, created or modified movie sets, etc. Any movies/tv shows/music videos that were not present since the last Export will have the nfo and artwork exported to their directory.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will add nfo files and artwork to those movies/tv shows/music videos that do not already have them. eg they are new and added after the last export. If you made changes to a movie/tv show/music video that already has an nfo created, these changes will &#039;&#039;&#039;not&#039;&#039;&#039; be exported.&lt;br /&gt;
*If this is the first time this option has been run and/or you have no nfo files and artwork saved in your movie/tv show/music video directories, both choices will have the same result.&lt;br /&gt;
&lt;br /&gt;
The Export will commence immediately once the final option is selected. An onscreen progress bar will indicate progress.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500&amp;quot; heights=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp03.png|Do you want to export Thumbnails and Fanart?&lt;br /&gt;
File:LibExp05.jpg|Do you want to export Actors Thumbs?&lt;br /&gt;
File:LibExp04.png|Do you want to Overwrite Old Files?&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Single File ===&lt;br /&gt;
[[File:LibExp06.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This option will export all metadata and all artwork to a single directory, to a location nominated by the user, as follows:&lt;br /&gt;
*The only option available is the save location which you will be prompted and required to enter&lt;br /&gt;
*Kodi will create a directory in your selected location named &#039;&#039;xbmc_videodb_yyyy-mm-dd&#039;&#039;&lt;br /&gt;
*Library metadata will be saved into a single &#039;&#039;videodb.xml&#039;&#039; file within that directory&lt;br /&gt;
*Artwork will be saved within multiple sub-directories according to type&lt;br /&gt;
*Subsequent exports &#039;&#039;&#039;will not&#039;&#039;&#039; overwrite existing Single File exports&lt;br /&gt;
*Subsequent exports are &#039;&#039;&#039;full&#039;&#039;&#039; exports. They are &#039;&#039;&#039;not&#039;&#039;&#039; incremental exports.&lt;br /&gt;
&lt;br /&gt;
{{note|Some users may find the single file export problematic in Frodo and higher, due to an issue with artwork. The export process changes the artwork location URL to the folder location of the export, which causes an issue if you need to refresh the image. To fix, you will need to manually source the image in the Information page of the Movie/TV show }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Separate Files&#039;&#039;&#039; option, then you must use the normal scraping process to re-import the data. {{small see also|Library_update}}&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Single File&#039;&#039;&#039; option, you will need to use this method to import the data as follows&lt;br /&gt;
*Select &#039;&#039;&#039;Import&#039;&#039;&#039; to commence the import process&lt;br /&gt;
*Locate the the directory for your previously saved single file export&lt;br /&gt;
*If you have multiple single file exports, ensure you have selected the correct one.&lt;br /&gt;
*Select &#039;&#039;&#039;Ok&#039;&#039;&#039;. A progress bar will be displayed to indicate progress&lt;br /&gt;
*Once complete, your library should be functional again&lt;br /&gt;
&lt;br /&gt;
Be aware that if you have removed movies or tv shows or music videos since the export, the metadata for those movies, tv shows and music videos will be re-imported into the library. You will need to run a &#039;&#039;&#039;Clean Library&#039;&#039;&#039; to remove them. This option is located just above the &#039;&#039;&#039;Export&#039;&#039;&#039; entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Library Export / Import ==&lt;br /&gt;
&lt;br /&gt;
The option is accessed via the Settings menu as detailed in the first image. It is on the same page as the Video Export option. You may have to scroll down to locate it. &lt;br /&gt;
Upon selection of the Export Library setting, you will be required to choose the Export method as depicted in the second image below. The process is similar to the Video Export and Import instructions above, but there are some slight variances. Continue reading for an explanation of the options.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;700&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp01.jpg|Location of setting&lt;br /&gt;
File:LibExp02.png|Select which Export option you require.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Separate Files ===&lt;br /&gt;
&lt;br /&gt;
This option will export any previously scraped album artist and album information and save it into a nfo file in the locations as follows:&lt;br /&gt;
*Artist nfo file and artwork will be saved in the Artist directory&lt;br /&gt;
*Album nfo file and artwork will be saved in the Album directory&lt;br /&gt;
*If the music source has not been scraped, no nfo file will be written&lt;br /&gt;
*Only Album and Album Artist data is exported. Song artists, those that do not have albums and only appear featured on tracks, or on &amp;quot;Various Artists&amp;quot; compilation albums are not included. Song data such as rating, play count, and last time played are not included either. &lt;br /&gt;
&lt;br /&gt;
After selecting &#039;&#039;&#039;Separate&#039;&#039;&#039;, you will then be asked if you would like to &#039;&#039;&#039;Export thumbnails and fanart?&#039;&#039;&#039;. This will export the Artist and album artwork.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will export a copy of the cached artwork into the appropriate Artist and Album directory.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will not export the artwork&lt;br /&gt;
&lt;br /&gt;
The final option is &#039;&#039;&#039;Overwrite Old Files&#039;&#039;&#039;.&lt;br /&gt;
*Choosing &#039;&#039;&#039;Yes&#039;&#039;&#039; will overwrite the existing nfo files and artwork. This is useful if you have scraped album or album artist information online that you want to replace any locally held data, or changed the artwork. Any Albums/Artists that were not present since the last Export will have the nfo and artwork exported to their directory.&lt;br /&gt;
*Choosing &#039;&#039;&#039;No&#039;&#039;&#039; will add nfo files and artwork to those Albums/Artists that do not already have them. eg they are new and added after the last export. If you have modified data of an Artist or Album that was previously exported, this change will not be exported.&lt;br /&gt;
*If this is the first time this option has been run and/or you have no nfo files and artwork saved in your Artist/Album directories, both choices will have the same result.&lt;br /&gt;
&lt;br /&gt;
The Export will commence immediately once the final option is selected. An onscreen progress bar will indicate progress.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;700&amp;quot; heights=&amp;quot;400&amp;quot;&amp;gt;&lt;br /&gt;
File:LibExp03.png|Do you want to export Thumbnails and Fanart?&lt;br /&gt;
File:LibExp04.png|Do you want to Overwrite Old Files?&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Export to Single File ===&lt;br /&gt;
[[File:LibExp06.jpg|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This option will export previously scraped album artists and album information to a single file, to a location nominated by the user, as follows:&lt;br /&gt;
*Kodi will create a file in your selected location named &#039;&#039;musicdb.xml&#039;&#039;&lt;br /&gt;
*The only option available is the save location which you will be prompted and required to enter&lt;br /&gt;
&lt;br /&gt;
Be aware of the following caveats:&lt;br /&gt;
*Export will write an empty .xml file if none of the album artists or albums have been scraped. &lt;br /&gt;
*Artwork will not be saved&lt;br /&gt;
*Subsequent exports &#039;&#039;&#039;will&#039;&#039;&#039; overwrite the existing Single File exports&lt;br /&gt;
&lt;br /&gt;
{{note|Using the &#039;&#039;&#039;Single File&#039;&#039;&#039; export option for music can be problematic when it comes to compilation albums or various artist albums}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Separate Files&#039;&#039;&#039; option, then you must use the normal scraping process to re-import the data. {{small see also|Library_update}} This needs correcting.&lt;br /&gt;
&lt;br /&gt;
If you exported your library using the &#039;&#039;&#039;Export to Single File&#039;&#039;&#039; option, you will need to use this method to import the data as follows&lt;br /&gt;
*Select &#039;&#039;&#039;Import&#039;&#039;&#039; to commence the import process&lt;br /&gt;
*Locate the the directory for your previously saved single file export&lt;br /&gt;
*Select the &#039;&#039;musicdb.xml&#039;&#039; file&lt;br /&gt;
*The &#039;&#039;&#039;Import&#039;&#039;&#039; process will commence immediately&lt;br /&gt;
*Once complete, your library should be functional again&lt;br /&gt;
&lt;br /&gt;
Be aware:&lt;br /&gt;
*if you have removed Albums or Artists since the export, the metadata for those Albums and Artists will be re-imported into the library. You will need to run a &#039;&#039;&#039;Clean Library&#039;&#039;&#039; to remove them. This option is located just above the &#039;&#039;&#039;Export&#039;&#039;&#039; entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Music Videos ==&lt;br /&gt;
The Music Videos Export/Import is controlled and run by the [[Import-export_library#Video_Library_Export_.2F_Import|Video Library Export/Import]]. Running the Export/Import for Movies and TV Shows, will also run the Export/Import for Music Videos at the same time as they share the same library.&lt;br /&gt;
&lt;br /&gt;
{{note|When using the Single File export in v17, there is a glitch where the artwork for music videos is not saved in the &#039;&#039;musicvideos&#039;&#039; directory, rather it is saved in the &#039;&#039;movies&#039;&#039; directory along with the Movies artwork}}&lt;br /&gt;
&lt;br /&gt;
{{note|This issue has been fixed for v18 onwards}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
You cannot Import or Export pictures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importing library information from &amp;quot;My Movies&amp;quot; media management software ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mymovies.dk/ My Movies (www.mymovies.name)] is an online database for profiling DVD-Video movies. [http://www.mymovies.dk/ My Movies] saves an XML file and a poster cover image which with this patch will get scanned by Kodi in the same way as Kodi&#039;s own XML formatted NFO files are scanned/scraped.&lt;br /&gt;
&lt;br /&gt;
Kodi has the ability to get the import movie library information from &amp;quot;[http://www.mymovies.dk/ My Movies]&amp;quot; via the mymovies.xml files that it generates, these mymovies.xml are checked after the movie.nfo file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other Options ==&lt;br /&gt;
By adding suitable code to &#039;&#039;advancedsettings.xml&#039;&#039;, you are able to further modify which data is exported. {{small see also|Advanced_settings}}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
   &amp;lt;exportautothumbs&amp;gt;false&amp;lt;/exportautothumbs&amp;gt;  -- export auto-generated thumbs. Defaults to false --&lt;br /&gt;
   &amp;lt;importwatchedstate&amp;gt;false&amp;lt;/importwatchedstate&amp;gt;  -- import previously exported playdate and playcount from .nfo files. Defaults to false --&lt;br /&gt;
   &amp;lt;importresumepoint&amp;gt;false&amp;lt;/importresumepoint&amp;gt;  -- import previously exported resume point from .nfo files. Defaults to false --&lt;br /&gt;
 &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=128811</id>
		<title>Advancedsettings.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=128811"/>
		<updated>2017-03-19T15:35:44Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* musiclibrary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}{{mininav|[[Settings]]|page=advancedsettings.xml}}&lt;br /&gt;
{{bigger|{{note|&#039;&#039;&#039;The advancedsettings.xml file does not exist by default. You have to create it first!&#039;&#039;&#039;}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The [[advancedsettings.xml]] file, which does not exist by default, can be created by a user in their &#039;&#039;&#039;[[userdata folder]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This file is used for advanced settings and options that do not have GUI controls inside of {{kodi}}. Some settings are experimental or very rarely set, so they can only be used via the advancedsettings.xml file. The file is simply a plain text file and can be edited by various text editors, so long as the name is &amp;quot;advancedsettings.xml&amp;quot;. These advanced settings can be used to tweak various things such as episode naming patterns, special network ports, special behaviors, and more.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following page will describe the structure of the advancedsettings.xml file and the various individual settings.&lt;br /&gt;
&lt;br /&gt;
{{note|&lt;br /&gt;
# All XML tags must be lowercase. The start and end of the advancedsettings.xml file must have the &amp;lt;advancedsettings&amp;gt; and &amp;lt;/advancedsettings&amp;gt; tags.&lt;br /&gt;
# Kodi will only read the advancedsettings.xml file when it starts up. If you make changes while it is running then you must restart Kodi.&lt;br /&gt;
# For some Windows versions, Kodi has two &amp;lt;code&amp;gt;\userdata\&amp;lt;/code&amp;gt; folders. The correct one to put the advancedsettings.xml file in is not the one in Program Files, but in &amp;lt;code&amp;gt;%appdata%\Kodi\userdata\.&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
&lt;br /&gt;
The layout of &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;setting&amp;quot; gives the name of the setting, and &amp;quot;value&amp;quot; gives it&#039;s value.&lt;br /&gt;
&lt;br /&gt;
A list of the available &amp;quot;setting&amp;quot; strings and their values is given below.&lt;br /&gt;
&lt;br /&gt;
= List of available settings =&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting settings ==&lt;br /&gt;
&lt;br /&gt;
=== loglevel ===&lt;br /&gt;
{{Anchor|.3Cloglevel.3E}}&lt;br /&gt;
{{see also|debug log}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
{{xml setting&lt;br /&gt;
 | tag name = loglevel&lt;br /&gt;
 | tag attribute = hide&lt;br /&gt;
 | tag attribute values = &lt;br /&gt;
{{option values&lt;br /&gt;
 | value1= true | value1 description= Hides &amp;quot;enable debugging&amp;quot; guisetting.&lt;br /&gt;
 | value2= false | value2 description= &amp;quot;enable debugging&amp;quot; guisetting will switch between min(loglevel, 0) and max(loglevel, 2) for off and on respectively. &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
 | tag attribute default values = true&lt;br /&gt;
 | option values = &lt;br /&gt;
{{option values&lt;br /&gt;
 | value1= -1 | value1 description= No logging, suppresses all log output&lt;br /&gt;
 | value2= 0 | value2 description= Normal logging, only logging errors &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
 | value3= 1 | value3 description= Debug logging &#039;&#039;(without showing text on screen)&#039;&#039;&lt;br /&gt;
 | value4= 2 | value4 description= Debug logging with freemem, fps and cpu usage shown on screen&lt;br /&gt;
 | value5= 3 | value5 description= Debug logging with freemem, fps and cpu usage and full smb logging&lt;br /&gt;
}}&lt;br /&gt;
 | default values = 0&lt;br /&gt;
 | description = &lt;br /&gt;
The logging level that Kodi will use to log errors and information. The &amp;quot;hide&amp;quot; attribute is optional.&lt;br /&gt;
 | example =&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel hide=&amp;quot;false&amp;quot;&amp;gt;1&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If debugging is switched on in the GUI, loglevel will be set to 2 (&#039;&#039;log to both file and on-screen information&#039;&#039;); this will over-ride any &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; setting.}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If debugging is switched on in the GUI when Kodi is shut down, then it will be automatically be re-enabled at level 2 when it  is re-started. This is true even if &#039;hide&#039; is subsequently set to &#039;true&#039; - in other words, if you enable it in the GUI and then hide the GUI toggle, it will stay on level 2 irrespective of what you subsequently set in &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt;.}}&amp;lt;br /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jsonrpc ===&lt;br /&gt;
{{Anchor|.3Cjsonrpc.3E}}&lt;br /&gt;
To make it easier for developers using the [[JSON RPC]] API in their (third party) applications to debug during development the json output of Kodi can be prettified by setting &#039;&#039;&#039;compactoutput&#039;&#039;&#039; to &#039;&#039;&#039;false&#039;&#039;&#039;. Default json output mode is a compact print which does not contain any unnecessary whitespaces and therefore is difficult to read for humans.&lt;br /&gt;
Furthermore using the &#039;&#039;&#039;tcpport&#039;&#039;&#039; setting it is possible to change the default TCP port used by Kodi for JSON RPC (which is 9090) to any other valid port.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsonrpc&amp;gt;&lt;br /&gt;
    &amp;lt;compactoutput&amp;gt;false&amp;lt;/compactoutput&amp;gt;&lt;br /&gt;
    &amp;lt;tcpport&amp;gt;9999&amp;lt;/tcpport&amp;gt;&lt;br /&gt;
&amp;lt;/jsonrpc&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== other - enableairtunesdebuglog ===&lt;br /&gt;
{{see|#enableairtunesdebuglog}}&lt;br /&gt;
&lt;br /&gt;
== Audio/video playback settings ==&lt;br /&gt;
&lt;br /&gt;
=== skiploopfilter ===&lt;br /&gt;
{{anchor|.3Cskiploopfilter.3E}}&lt;br /&gt;
The amount of the loop filter to skip on h264 decoding.  This can help the performance of slower machines when decoding h264 content.  Values, in decreasing CPU usage (and decreasing quality)&lt;br /&gt;
* -16 None&lt;br /&gt;
* 0 Skip only empty frames (default)&lt;br /&gt;
* 8 Skip non-reference frames (default on ATV)&lt;br /&gt;
* 16 Skip bi-dir frames&lt;br /&gt;
* 32 Skip all non-key frames&lt;br /&gt;
* 48 Skip all frames&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;skiploopfilter&amp;gt;8&amp;lt;/skiploopfilter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== video ===&lt;br /&gt;
{{anchor|.3Cvideo.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify automatic watch and resume points|HOW-TO:Modify time seeking}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;subsdelayrange&amp;gt;10&amp;lt;/subsdelayrange&amp;gt;  &amp;lt;!-- Delay range for subtitles, in seconds. --&amp;gt;&lt;br /&gt;
  &amp;lt;audiodelayrange&amp;gt;10&amp;lt;/audiodelayrange&amp;gt;  &amp;lt;!-- Delay range for audio/video sync, in seconds. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;smallstepbackseconds&amp;gt;7&amp;lt;/smallstepbackseconds&amp;gt;  &amp;lt;!-- Length of the small skip back when playing a video --&amp;gt; &amp;lt;!-- Will be replaced by a GUI option in v15 --&amp;gt;&lt;br /&gt;
  &amp;lt;usetimeseeking&amp;gt;true&amp;lt;/usetimeseeking&amp;gt;  &amp;lt;!-- Whether to use time based or percentage based seeking. --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforward&amp;gt;30&amp;lt;/timeseekforward&amp;gt;  &amp;lt;!-- Time to seek forward in seconds when doing a short seek.  Defaults to 30. --&amp;gt; &amp;lt;!-- Deprecated. Will be replaced by a GUI option in v15. Note: Need to double check if it will actually be removed? --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackward&amp;gt;-30&amp;lt;/timeseekbackward&amp;gt;  &amp;lt;!-- Time to seek backward in seconds when doing a short seek.  Defaults to -30. --&amp;gt; &amp;lt;!-- Deprecated. Will be replaced by a GUI option in v15. Note: Need to double check if it will actually be removed? --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforwardbig&amp;gt;600&amp;lt;/timeseekforwardbig&amp;gt;  &amp;lt;!-- Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes). --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackwardbig&amp;gt;-600&amp;lt;/timeseekbackwardbig&amp;gt;  &amp;lt;!-- Time to seek forward in seconds when doing a long seek.  Defaults to -600 (10 minutes). --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforward&amp;gt;2&amp;lt;/percentseekforward&amp;gt;  &amp;lt;!-- Amount to seek forward as a percentage, when doing a short seek.  Defaults to 2. --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackward&amp;gt;-2&amp;lt;/percentseekbackward&amp;gt;  &amp;lt;!-- Amount to seek backward as a percentage, when doing a short seek.  Defaults to -2. --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforwardbig&amp;gt;10&amp;lt;/percentseekforwardbig&amp;gt;  &amp;lt;!-- Amount to seek forward as a percentage, when doing a long seek.  Defaults to 10. --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackwardbig&amp;gt;-10&amp;lt;/percentseekbackwardbig&amp;gt;  &amp;lt;!-- Amount to seek forward as a percentage, when doing a long seek.  Defaults to -10. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;blackbarcolour&amp;gt;1&amp;lt;/blackbarcolour&amp;gt;  &amp;lt;!-- colour of the black bars (0-&amp;gt;255), (black-&amp;gt;white) on videos. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;fullscreenonmoviestart&amp;gt;true&amp;lt;/fullscreenonmoviestart&amp;gt; &amp;lt;!-- Whether to go to fullscreen or not when starting a movie. Defaults to true. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;dvdplayer&amp;lt;/defaultplayer&amp;gt; &amp;lt;!-- Set the default video player: dvdplayer or extplayer. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be added to library. --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;90&amp;lt;/playcountminimumpercent&amp;gt; &amp;lt;!--Minimum percentage that has to be played before it is marked as watched. Set to 101 to never auto-mark items as watched --&amp;gt;&lt;br /&gt;
  &amp;lt;ignoresecondsatstart&amp;gt;180&amp;lt;/ignoresecondsatstart&amp;gt; &amp;lt;!-- Number of seconds to ignore at video start after which a resume point is created --&amp;gt;&lt;br /&gt;
  &amp;lt;ignorepercentatend&amp;gt;8&amp;lt;/ignorepercentatend&amp;gt; &amp;lt;!-- percentage of video to ignore at the end. If you stop watching the video here no resume point is created. Set to 101 to never save a resume point. The video is already marked as watched at 90%, see above. --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;forcevaapienabled&amp;gt;true&amp;lt;/forcevaapienabled&amp;gt; &amp;lt;!-- VAAPI is only tested on intel hardware. This flag helps wrapper developers and fglrx users to easily test current VAAPI state on their hardware. Default is false. Please report crashes directly to your driver vendor --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;vdpauscaling&amp;gt;true&amp;lt;/vdpauscaling&amp;gt; &amp;lt;!-- scales with vdpau instead of opengl and turns on its HQ scaler when available, enabling this might slow down rendering and cause framedrops especially on ION systems, this setting requires a vdpau feature set C gpu--&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;enablehighqualityhwscalers&amp;gt;true&amp;lt;/enablehighqualityhwscalers&amp;gt; &amp;lt;!-- allow turning on the spline36 and lanczos3 shader (for GL builds) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;dxvaallowhqscaling&amp;gt;false&amp;lt;/dxvaallowhqscaling&amp;gt; &amp;lt;!-- enables high quality video upscaling for Windows --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;ppffmpegdeinterlacing&amp;gt;linblenddeint&amp;lt;/ppffmpegdeinterlacing&amp;gt; &amp;lt;!-- override the deinterlacing options passed to libpostproc --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;ppffmpegpostprocessing&amp;gt;ha:128:7,va,dr&amp;lt;/ppffmpegpostprocessing&amp;gt; &amp;lt;!-- override the post processing options passed to libpostproc when &#039;Video post-processing&#039; is activated in GUI Videos-Settings-Playback --&amp;gt;&lt;br /&gt;
  &amp;lt;autoscalemaxfps&amp;gt;30&amp;lt;/autoscalemaxfps&amp;gt; &amp;lt;!-- when scaling method is set to auto, bilinear is chosen when the fps is higher than this limit, the default is 30 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Settings for when &amp;quot;Adjust refreshrate to match video fps&amp;quot; is enabled, available since r33806. --&amp;gt;&lt;br /&gt;
  &amp;lt;adjustrefreshrate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &amp;quot;Adjust refreshrate to match video fps&amp;quot; will try to select the best refreshrate for the video fps but it doesn&#039;t always get it right, for example it might switch to an unsupported refreshrate. You can add overrides here to switch to a certain refreshrate based on video fps. It&#039;s possible to add as many overrides as you need.  Overrides are processed in order, if the first one doesn&#039;t match the fps or no refreshrates match that override, it will try the next one until no overrides are left --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fps&amp;gt;23.976&amp;lt;/fps&amp;gt;       &amp;lt;!-- if the fps is between 23.966 and 23.986 --&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;60.0&amp;lt;/refresh&amp;gt; &amp;lt;!-- switch to the first found refreshrate that is between 59.99 and 60.01 --&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmin&amp;gt;29.96&amp;lt;/fpsmin&amp;gt;        &amp;lt;!-- You can also specify the fps range yourself --&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmax&amp;gt;30.01&amp;lt;/fpsmax&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;59.0&amp;lt;/refreshmin&amp;gt; &amp;lt;!-- Same for the refreshrate --&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;61.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;!-- It none of the overrides match, or none of the refreshrates match any of the fps matching overrides, it will choose a fallback refreshrate. Fallbacks are process in order, if the first fallback doesn&#039;t match any refreshrate, it will try the next one until no fallbacks are left --&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;50.0&amp;lt;/refresh&amp;gt; &amp;lt;!-- switch to the first found refreshrate that is between 49.99 and 50.01. --&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- You can also specify the range for the fallback yourself --&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;49.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;51.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- If none of the overrides match the video fps, or no refreshrates match any of the fps matching overrides, and no fallbacks are specified or no refreshrates match any fallbacks, it will automatically choose the best refreshrate (same as having no overrides and fallbacks). --&amp;gt;&lt;br /&gt;
  &amp;lt;/adjustrefreshrate&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;checkdxvacompatibility&amp;gt;value&amp;lt;/checkdxvacompatibility&amp;gt; &amp;lt;!-- Advanced setting not present: let Kodi autodetect cards that support H264 profile &amp;gt; L4.1. Set value to false to enable DXVA no matter what. Set value to true if Kodi doesn&#039;t autodetect that the graphics card doesn&#039;t support &amp;gt; L4.1 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;useocclusionquery&amp;gt;-1&amp;lt;/useocclusionquery&amp;gt; &amp;lt;!--Use an occlusion query when capturing videoframes, -1 means auto detect, 0 means disabled, 1 means enabled, the default is -1.--&amp;gt;&lt;br /&gt;
  &amp;lt;fpsdetect&amp;gt;1&amp;lt;/fpsdetect&amp;gt; &amp;lt;!-- fps detection for video playback, 0 = trust codec fps, 1 = recalculate from video timestamps with uniform spacing, 2 = recalculate from video timestamps always --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;latency&amp;gt; &amp;lt;!-- Compensate display latency (video lag). Latency is given in msecs. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;delay&amp;gt;0&amp;lt;/delay&amp;gt; &amp;lt;!-- Global default display latency --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Override latency for given display (not video) refresh rates. When Kodi is in windowed mode, override is ignored. Multiple overrides are allowed.&lt;br /&gt;
&lt;br /&gt;
      Syntax of an override entry:&lt;br /&gt;
        &amp;lt;refresh&amp;gt;&lt;br /&gt;
          &amp;lt;min&amp;gt;, &amp;lt;max&amp;gt; refresh rate range, OR&lt;br /&gt;
          &amp;lt;rate&amp;gt; exact refresh rate&lt;br /&gt;
          &amp;lt;delay&amp;gt; display latency for the given refresh rate&lt;br /&gt;
        &amp;lt;/refresh&amp;gt;&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Example: display has 125 msec latency at 23-24 Hz --&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;min&amp;gt;23&amp;lt;/min&amp;gt;&lt;br /&gt;
      &amp;lt;max&amp;gt;24&amp;lt;/max&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;125&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Example: display has 50 msec latency at 50 (+/-0.01) Hz --&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;rate&amp;gt;50&amp;lt;/rate&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;50&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/latency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;stereoscopicregex3d&amp;gt;[-. _]3d[-. _]&amp;lt;/stereoscopicregex3d&amp;gt; &amp;lt;!-- Filename triggers for 3D (stereoscopic) mode. --&amp;gt;&lt;br /&gt;
    &amp;lt;stereoscopicregexsbs&amp;gt;[-. _]h?sbs[-. _]&amp;lt;/stereoscopicregexsbs&amp;gt;&lt;br /&gt;
    &amp;lt;stereoscopicregextab&amp;gt;[-. _]h?tab[-. _]&amp;lt;/stereoscopicregextab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;stagefright&amp;gt; &amp;lt;!-- Previously this page also listed &amp;lt;mediacodec&amp;gt; tags as well as stagefright tags, but this was in error. There are only stagefright options for official Kodi builds. SPMC has mediacodec options for codec tweaking, though. -1 is default, 0 is never used this codec, 1 is always use this codec, bypassing blacklist --&amp;gt;&lt;br /&gt;
      &amp;lt;useavccodec&amp;gt;-1&amp;lt;/useavccodec&amp;gt;&lt;br /&gt;
      &amp;lt;usehevccodec&amp;gt;-1&amp;lt;/usehevccodec&amp;gt; &amp;lt;!-- Added in v15 --&amp;gt;&lt;br /&gt;
      &amp;lt;usevc1codec&amp;gt;-1&amp;lt;/usevc1codec&amp;gt;&lt;br /&gt;
      &amp;lt;usevpxcodec&amp;gt;-1&amp;lt;/usevpxcodec&amp;gt;&lt;br /&gt;
      &amp;lt;usemp4codec&amp;gt;-1&amp;lt;/usemp4codec&amp;gt;&lt;br /&gt;
      &amp;lt;usempeg2codec&amp;gt;-1&amp;lt;/usempeg2codec&amp;gt;&lt;br /&gt;
      &amp;lt;useswrenderer&amp;gt;false&amp;lt;/useswrenderer&amp;gt;&lt;br /&gt;
    &amp;lt;/stagefright&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;disableswmultithreading&amp;gt;false&amp;lt;/disableswmultithreading&amp;gt; &amp;lt;!-- Replaces disablehi10pmultithreading. Set this to true if you want software decoding to use only one CPU thread. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;assfixedworks&amp;gt;false&amp;lt;/assfixedworks&amp;gt; &amp;lt;!-- position behavior of ass subtitiles when setting &amp;quot;subtitle position on screen&amp;quot; set to &amp;quot;fixed&amp;quot;. True to show at the fixed position set in video calibration. False to show at the bottom of video (default). --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== audio ===&lt;br /&gt;
{{anchor|.3Caudio.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;audio&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of headroom Kodi should use above the maximum volume level, in decibels.  Defaults to 0, valid values 0, 6, 12. --&amp;gt;&lt;br /&gt;
  &amp;lt;headroom&amp;gt;0&amp;lt;/headroom&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Default audio player: paplayer or dvdplayer --&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;paplayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be added to library. --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of gain (dB) to be applied to AC3 streams that have been mixed-down to 2 channels. Default is 12.0. Valid values are: -96.0 to 96.0. --&amp;gt;&lt;br /&gt;
  &amp;lt;ac3downmixgain&amp;gt;12.0&amp;lt;/ac3downmixgain&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Minimum percentage that has to be played before it is considered for incrementing in the Top 100 database view, or for last.fm submittal --&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;99&amp;lt;/playcountminimumpercent&amp;gt; &lt;br /&gt;
  &amp;lt;!-- Whether to use Dynamic Range Compression (DRC) on AC3 streams. 1.0 is &amp;quot;full&amp;quot; compression, as defined by the audio track&#039;s metadata, which is recommended for &amp;quot;basic&amp;quot; sound systems such as the internal speakers on a TV. 0.0 is no compression at all, which is recommended for people with nice multi-speaker sound systems. -1.0 (default) defaults to whatever ffmpeg uses, which is currently the same as 1.0. This has no effect if passthrough is enabled for AC3. --&amp;gt;&lt;br /&gt;
  &amp;lt;applydrc&amp;gt;-1.0&amp;lt;/applydrc&amp;gt; &lt;br /&gt;
  &amp;lt;!-- set to true to skip decoding of DTS in wav files when using dvdplayer (10.10 only) --&amp;gt;&lt;br /&gt;
  &amp;lt;dvdplayerignoredtsinwav&amp;gt;false&amp;lt;/dvdplayerignoredtsinwav&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterhold&amp;gt;0.025&amp;lt;/limiterhold&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterrelease&amp;gt;0.1&amp;lt;/limiterrelease&amp;gt; &lt;br /&gt;
&amp;lt;/audio&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information on the configuration of audio under Frodo see [[AudioEngine/HOW-TO: Configure audio]]&lt;br /&gt;
&lt;br /&gt;
=== measurerefreshrate ===&lt;br /&gt;
{{anchor|.3Cmeasurerefreshrate.3E}}&lt;br /&gt;
When using &amp;quot;Sync playback to display&amp;quot; on Windows, the detected refreshrate might be wrong.&lt;br /&gt;
When enabling measurerefreshrate, the refreshrate is measured instead, which makes it more accurate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;measurerefreshrate&amp;gt;true&amp;lt;/measurerefreshrate&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== edl ===&lt;br /&gt;
{{anchor|.3Cedl.3E}}&lt;br /&gt;
{{main|EDL}}&lt;br /&gt;
Commercial break detection not as good you think it could be? Are some commercial breaks in a series of adverts not being skipped? Are some parts being skipped that are clearly not commercials? Does the end of the previous recording still show? The following advanced settings can be used to better identify full commercial break sequences, remove incorrectly flagged commercial breaks, and have playback start at the actual beginning of the recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edl&amp;gt;&lt;br /&gt;
  &amp;lt;!-- if true, commercial breaks will be merged according to the remaining options. --&amp;gt;&lt;br /&gt;
  &amp;lt;mergeshortcommbreaks&amp;gt;false&amp;lt;/mergeshortcommbreaks&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks won&#039;t be merged if the total length of the commercial break would be greater than this (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreaklength&amp;gt;250&amp;lt;/maxcommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- After merging, commercial breaks shorter than this will be removed (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;mincommbreaklength&amp;gt;90&amp;lt;/mincommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks that are further apart than this won&#039;t be merged (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreakgap&amp;gt;120&amp;lt;/maxcommbreakgap&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to wait before automatically skipping when the start of a commercial break reached (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowait&amp;gt;0&amp;lt;/commbreakautowait&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to rewind after automatically skipping to the end of the commercial break (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowind&amp;gt;0&amp;lt;/commbreakautowind&amp;gt;&lt;br /&gt;
&amp;lt;/edl&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pvr ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pvr&amp;gt;&lt;br /&gt;
  &amp;lt;timecorrection&amp;gt;0&amp;lt;/timecorrection&amp;gt;  &amp;lt;!-- Correct all times (epg tags, timer tags, recording tags) by this amount of minutes. --&amp;gt;&lt;br /&gt;
  &amp;lt;infotoggleinterval&amp;gt;3000&amp;lt;/infotoggleinterval&amp;gt;  &amp;lt;!-- If there is more than one pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. --&amp;gt;&lt;br /&gt;
  &amp;lt;minvideocachelevel&amp;gt;5&amp;lt;/minvideocachelevel&amp;gt; &amp;lt;!-- Cache up to this level in the video buffer buffer before resuming playback if the buffers run dry. --&amp;gt;&lt;br /&gt;
  &amp;lt;minaudiocachelevel&amp;gt;10&amp;lt;/minaudiocachelevel&amp;gt; &amp;lt;!-- Cache up to this level in the audio buffer before resuming playback if the buffers run dry. --&amp;gt;&lt;br /&gt;
  &amp;lt;cacheindvdplayer&amp;gt;true&amp;lt;/cacheindvdplayer&amp;gt; &amp;lt;!-- Cache PVR stream in DVDPlayer. --&amp;gt;&lt;br /&gt;
  &amp;lt;channeliconsautoscan&amp;gt;true&amp;lt;/channeliconsautoscan&amp;gt; &amp;lt;!-- Automatically scan user defined folder for channel icons when loading internal channel groups. --&amp;gt;&lt;br /&gt;
  &amp;lt;autoscaniconsuserset&amp;gt;false&amp;lt;/autoscaniconsuserset&amp;gt; &amp;lt;!-- Mark channel icons populated by auto scan as &amp;quot;user set&amp;quot;. --&amp;gt;&lt;br /&gt;
  &amp;lt;numericchannelswitchtimeout&amp;gt;1000&amp;lt;/numericchannelswitchtimeout&amp;gt; &amp;lt;!-- Time in ms before the numeric dialog auto closes when confirmchannelswitch is disabled. --&amp;gt;&lt;br /&gt;
&amp;lt;/pvr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== epg ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;epg&amp;gt;&lt;br /&gt;
  &amp;lt;lingertime&amp;gt;1440&amp;lt;/lingertime&amp;gt;  &amp;lt;!-- keep X minutes of past epg data (default: 24h) --&amp;gt;&lt;br /&gt;
  &amp;lt;updatecheckinterval&amp;gt;300&amp;lt;/updatecheckinterval&amp;gt;  &amp;lt;!-- check if tables need to be updated every X minutes --&amp;gt;&lt;br /&gt;
  &amp;lt;cleanupinterval&amp;gt;900&amp;lt;/cleanupinterval&amp;gt;  &amp;lt;!-- remove old entries from the EPG every X minutes --&amp;gt;&lt;br /&gt;
  &amp;lt;activetagcheckinterval&amp;gt;60&amp;lt;/activetagcheckinterval&amp;gt;  &amp;lt;!-- check for updated active tags every X minute --&amp;gt;&lt;br /&gt;
  &amp;lt;retryinterruptedupdateinterval&amp;gt;30&amp;lt;/retryinterruptedupdateinterval&amp;gt;  &amp;lt;!-- retry an interrupted epg update after X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;updateemptytagsinterval&amp;gt;60&amp;lt;/updateemptytagsinterval&amp;gt;  &amp;lt;!-- override user selectable EPG update interval (minutes) for empty EPG tags --&amp;gt;&lt;br /&gt;
  &amp;lt;displayupdatepopup&amp;gt;true&amp;lt;/displayupdatepopup&amp;gt;  &amp;lt;!-- display a progress popup while updating EPG data from clients --&amp;gt;&lt;br /&gt;
  &amp;lt;displayincrementalupdatepopup&amp;gt;false&amp;lt;/displayincrementalupdatepopup&amp;gt;  &amp;lt;!-- also display a progress popup while doing incremental EPG updates --&amp;gt;&lt;br /&gt;
&amp;lt;/epg&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== forcedswaptime ===&lt;br /&gt;
{{anchor|.3Cforcedswaptime.3E}}&lt;br /&gt;
Use to force a backbuffer-&amp;gt;frontbuffer swap while vsync is enabled. Set to the time (in ms) to allow for the swap (e.g. &amp;lt;forcedswaptime&amp;gt;1&amp;lt;/forcedswaptime&amp;gt; is typical).  &lt;br /&gt;
&lt;br /&gt;
Default: Off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== omxdecodestartwithvalidframe ===&lt;br /&gt;
{{note|This tag is only in some Raspberry Pi specific distributions, such as [[OpenELEC]]. As of March 2015, this tag has not been merged into &amp;quot;vanilla&amp;quot; Kodi builds.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;omxdecodestartwithvalidframe&amp;gt;&amp;lt;/omxdecodestartwithvalidframe&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video library settings ==&lt;br /&gt;
&lt;br /&gt;
=== videoextensions ===&lt;br /&gt;
{{anchor|.3Cvideoextensions.3E}}&amp;lt;section begin=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Video windows.&lt;br /&gt;
&lt;br /&gt;
Default extensions for VIDEOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.m4v .3gp .nsv .ts .ty .strm .rm .rmvb .m3u .ifo .mov .qt .divx .xvid .bivx .vob .nrg .img&lt;br /&gt;
.iso .pva .wmv .asf .asx .ogm .m2v .avi .bin .dat .dvr-ms .mpg .mpeg .mp4 .mkv .avc .vp3 &lt;br /&gt;
.svq3 .nuv .viv .dv .fli .flv .rar .001 .wpl .zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;videoextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/videoextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== discstubextensions ===&lt;br /&gt;
{{anchor|.3Cdiscstubextensions.3E}}&lt;br /&gt;
{{main|Media stubs}}&lt;br /&gt;
A list of additional file-extensions that will (&amp;lt;tt&amp;gt;&amp;lt;add&amp;gt;&amp;lt;/tt&amp;gt;) or will not (&amp;lt;tt&amp;gt;&amp;lt;remove&amp;gt;&amp;lt;/tt&amp;gt;) be treated as disc stubs.&lt;br /&gt;
&lt;br /&gt;
Default extensions for DISC STUBS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.disc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;discstubextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.dvd|.blu&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.cd|.vhs&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/discstubextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== languagecodes ===&lt;br /&gt;
{{anchor|.3Clanguagecodes.3E}}&lt;br /&gt;
Translation table for subtitle and audio names.  Contains entries of the form&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;languagecodes&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;short&amp;gt;alt&amp;lt;/short&amp;gt;&lt;br /&gt;
    &amp;lt;long&amp;gt;Alternate&amp;lt;/long&amp;gt;&lt;br /&gt;
  &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/languagecodes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== sorttokens ===&lt;br /&gt;
{{anchor|.3Csorttokens.3E}}&lt;br /&gt;
Allows you to specify additional tokens that will be ignored at the start of lines during sorting.&lt;br /&gt;
{{note|Sort tokens are case sensitive.}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
  &amp;lt;token&amp;gt;the&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== moviestacking ===&lt;br /&gt;
{{anchor|.3Cmoviestacking.3E}}&amp;lt;section begin=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
{{main|File stacking}}&lt;br /&gt;
This is used by the [[file stacking]] algorithm to combine multi-part files and contains a list of &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|regular expressions]]&#039;&#039;&amp;quot;. For stacking videos that are contained in folders, such as VIDEO_TS folders, see &#039;&#039;&#039;[[advancedsettings.xml#folderstacking|&amp;lt;folderstacking&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As of v9.11, video stacking regular expressions &#039;&#039;&#039;must&#039;&#039;&#039; contain exactly four (4) capture expressions. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[0-9]+)(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;a-d&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- movienamea-xvid.avi, movienameb-xvid.avi --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;append=&amp;quot;yes&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the end.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;append&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This expression will match movename1-xvid.avi, moviename2-xvid.avi.&lt;br /&gt;
         Be warned that it will likely stack sequels in a flat directory layout,&lt;br /&gt;
         so it is only recommend in a dir-per-video layout. --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[0-9])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the beginning. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;prepend&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(Title)(Volume)(Ignore)(Extension)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no argument is supplied, or the argument &amp;lt;tt&amp;gt;append=&amp;quot;no&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions are overwritten by the user specified ones.&lt;br /&gt;
&amp;lt;section end=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== folderstacking ===&lt;br /&gt;
{{main|File stacking}}&lt;br /&gt;
This is similar to &#039;&#039;&#039;[[advancedsettings.xml#moviestacking|&amp;lt;moviestacking&amp;gt;]]&#039;&#039;&#039;, but is used for videos that are contained in folders that use the folder names to stack, such as VIDEO_TS folders (DVD rips that are not in ISO format).&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;folderstacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;((cd|dvd|dis[ck])[0-9]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/folderstacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cleandatetime ===&lt;br /&gt;
{{anchor|.3Ccleandatetime.3E}}&lt;br /&gt;
Matches a year number in a string using a &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expression]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Default expression:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleandatetime&amp;gt;(.+[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-1][0-9])([ _\,\.\(\)\[\]\-][^0-9]|$)&amp;lt;/cleandatetime&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* The string found before will be used as basis string getting cleaned by the cleanstrings expressions. &lt;br /&gt;
:* By default date formats like MM:YY are ignored.&lt;br /&gt;
&lt;br /&gt;
=== cleanstrings ===&lt;br /&gt;
{{anchor|.3Ccleanstrings.3E}}&lt;br /&gt;
Clean unwanted characters from filenames or folders by using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;. Please note that everything right of the match (at the end of the file name) is removed, so if you would have a file named &#039;&#039;Super movie.mp4&#039;&#039; and would add &amp;lt;tt&amp;gt;&amp;lt;regexp&amp;gt; &amp;lt;/regexp&amp;gt;&amp;lt;/tt&amp;gt; (only a space), the only thing that would be left is &#039;&#039;Super&#039;&#039;, which is probably not what you want.&lt;br /&gt;
&lt;br /&gt;
Default expressions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleanstrings&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;[ _\,\.\(\)\[\]\-](ac3|dts|custom|dc|divx|divx5|dsr|dsrip|dutch|dvd|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multisubs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|cd[1-9]|r3|r5|bd5|se|svcd|swedish|german|read.nfo|nfofix|unrated|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|hrhd|hrhdtv|hddvd|bluray|x264|h264|xvid|xvidvd|xxx|www.www|\[.*\])([ _\,\.\(\)\[\]\-]|$)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;(\[.*\])&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/cleanstrings&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== tvshowmatching ===&lt;br /&gt;
{{anchor|.3Ctvshowmatching.3E}}&lt;br /&gt;
Matches the season and episode numbers in file paths by using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvshowmatching&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;s([0-9]+)[ ._x-]*e([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)([^\\\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.s01.e01, foo.s01_e01, S01E02 foo, S01 - E02, S01xE02 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\._ -]()[Ee][Pp]_?([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.ep01, foo.EP_01 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{4})[\.-]([0-9]{2})[\.-]([0-9]{2})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.yyyy.mm.dd.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{2})[\.-]([0-9]{2})[\.-]([0-9]{4})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.mm.dd.yyyy.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ \[\(-]([0-9]+)x([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.1x09* or just /1x09* --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ -]([0-9]+)([0-9][0-9])([\._ -][^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.103*, 103 foo --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\/._ -]p(?:ar)?t[_. -]()([ivx]+)([._ -][^\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- Part I, Pt.VI --&amp;gt;&lt;br /&gt;
&amp;lt;/tvshowmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
:* Paths are converted to lower case before matching.&lt;br /&gt;
:* Examples of matching regexps for certain filenames can be found on the [[TV Shows (Video Library)|TV shows]] page.&lt;br /&gt;
&lt;br /&gt;
:* For multi-episode matching to work, there needs to be a third set of parentheses &#039;()&#039; at the end, this part is fed back into the regexp engine.&lt;br /&gt;
&lt;br /&gt;
:* A [http://forum.kodi.tv/showthread.php?t=51614 forum thread] has a discussion of pre-made regex lists to match common names. These might improve Kodi&#039;s ability to match TV show names in some situations, at the risk of additional false positives.&lt;br /&gt;
&lt;br /&gt;
==== Filenames without Season ====&lt;br /&gt;
There are two methods to add episodes without a season in their file path. Both ways will force the season to &#039;1&#039; by default, so that you can use&lt;br /&gt;
the &#039;Use Absolute Ordering (Single Season)&#039; setting from the TheTvDb.com scraper.&lt;br /&gt;
&lt;br /&gt;
; Simple Method &#039;&#039;(XBMC v9.11 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Use only one pair of parentheses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]([0-9]+)&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
; Advanced Method &#039;&#039;(XBMC v10.05 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Supports multi-episode files without season&lt;br /&gt;
: Use an empty pair of parentheses for the season&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Specifying Default Season &#039;&#039;(XBMC v12.0 onwards and Kodi)&#039;&#039;&lt;br /&gt;
It is possible to set the default season for specific regular expressions by setting the &#039;defaultseason&#039; attribute.&lt;br /&gt;
: Works with both the simple method and advanced method&lt;br /&gt;
: If not used, the season will be set to &#039;1&#039;&lt;br /&gt;
: Useful for setting specials to season &#039;0&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp defaultseason=&amp;quot;0&amp;quot;&amp;gt;[/\._ \-]X()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;regexp defaultseason=&amp;quot;1&amp;quot;&amp;gt;[/\._ \-]E()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== tvmultipartmatching ===&lt;br /&gt;
{{anchor|.3Ctvmultipartmatching.3E}}&lt;br /&gt;
Matches a multipart episode number based on a previously identified episode file, using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvmultipartmatching&amp;gt;^[-_ex]+([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)&amp;lt;/tvmultipartmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* Text matching is compared case-insensitive.&lt;br /&gt;
:* Specifying this option &#039;&#039;&#039;replaces&#039;&#039;&#039; the default value&lt;br /&gt;
&lt;br /&gt;
=== excludefromscan ===&lt;br /&gt;
{{anchor|.3Cexcludefromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a library scan (except tvshows) using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;. This can be for both Video or Audio sections of &amp;lt;tt&amp;gt;advancedsettings.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;-trailer&amp;lt;/regexp&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== excludefromlisting ===&lt;br /&gt;
{{anchor|.3Cexcludefromlisting.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;  &lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== excludetvshowsfromscan ===&lt;br /&gt;
{{anchor|.3Cexcludetvshowsfromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a tvshow library scan using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludetvshowsfromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludetvshowsfromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== trailermatching ===&lt;br /&gt;
{{anchor|.3Ctrailermatching.3E}}&lt;br /&gt;
Contains &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expression]]&#039;&#039;&amp;quot; syntax (commonly referred to as &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|RegEx]]&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|RegExp]]&#039;&#039;&amp;quot;) to match the locally stored trailers to movies in the library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;trailermatching&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This regexp will match moviename_Trailer.avi --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;(.*?)(_Trailer)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/trailermatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videolibrary ===&lt;br /&gt;
{{anchor|.3Cvideolibrary.3E}}&lt;br /&gt;
Options specific to the Video Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;false&amp;lt;/allitemsonbottom&amp;gt;  &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;backgroundupdate&amp;gt;false&amp;lt;/backgroundupdate&amp;gt; &amp;lt;!-- set to &amp;quot;true&amp;quot; to hide the video scanner dialog from the GUI --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- NOTE: To get this working properly, you have to do a &#039;Clean Library&#039; in settings the first time after you enable the setting. --&amp;gt;&lt;br /&gt;
    &amp;lt;cleanonupdate&amp;gt;false&amp;lt;/cleanonupdate&amp;gt;  &amp;lt;!-- default set to false to prevent Kodi from removing items from the database while updating.  --&amp;gt;&lt;br /&gt;
    &amp;lt;usefasthash&amp;gt;true&amp;lt;/usefasthash&amp;gt; &amp;lt;!-- defaults to true. Set to false in order to skip hashing based on the folders modification time. --&amp;gt;&lt;br /&gt;
    &amp;lt;hideemptyseries&amp;gt;false&amp;lt;/hideemptyseries&amp;gt;  &amp;lt;!-- set to &amp;quot;true&amp;quot; to hide empty series in the video library and prevent empty series from being removed during a library cleanup. --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt; &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;  &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* --&amp;gt;&lt;br /&gt;
    &amp;lt;exportautothumbs&amp;gt;false&amp;lt;/exportautothumbs&amp;gt;  &amp;lt;!-- export auto-generated thumbs. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importwatchedstate&amp;gt;false&amp;lt;/importwatchedstate&amp;gt;  &amp;lt;!-- import previously exported playdate and playcount from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importresumepoint&amp;gt;false&amp;lt;/importresumepoint&amp;gt;  &amp;lt;!-- import previously exported resume point from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;mymovies&amp;gt;  &amp;lt;!-- Options specific to MyMovies XML file parsing --&amp;gt;&lt;br /&gt;
      &amp;lt;categoriestogenres&amp;gt;false&amp;lt;/categoriestogenres&amp;gt;  &amp;lt;!-- Add MyMovies Custom Categories to Genres (boolean, default is false) --&amp;gt;&lt;br /&gt;
    &amp;lt;/mymovies&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt; &amp;lt;!-- 0 results in using the current datetime when adding a video;&lt;br /&gt;
                                  1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                  2 results in using the newer datetime of the file&#039;s mtime and ctime --&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videoscanner ===&lt;br /&gt;
{{anchor|.3Cvideoscanner.3E}}&lt;br /&gt;
Options specific to the Video scanner&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videoscanner&amp;gt;&lt;br /&gt;
    &amp;lt;ignoreerrors&amp;gt;true&amp;lt;/ignoreerrors&amp;gt; &amp;lt;!-- Set to true to silently ignore errors while scanning videos. This prevents the error dialogue box, so you don&#039;t have to keep hitting &amp;quot;yes&amp;quot; to keep scanning.--&amp;gt;&lt;br /&gt;
  &amp;lt;/videoscanner&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== myth ===&lt;br /&gt;
{{anchor|.3Cmyth.3E}}&lt;br /&gt;
Not seeing all the recordings you expected in the Movies folder? If so, it&#039;s very likely that the electronic program guide (EPG) used by MythTV doesn&#039;t accurately distinguish between TV Shows and Movies all the time. The following setting allows the length of the recording to also be used to determine if a recording is a Movie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;myth&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Recordings longer than this will be added to the Movies folder (minutes). 0 = off --&amp;gt;&lt;br /&gt;
  &amp;lt;movielength&amp;gt;0&amp;lt;/movielength&amp;gt;&lt;br /&gt;
&amp;lt;/myth&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Library artwork ==&lt;br /&gt;
&lt;br /&gt;
=== imageres ===&lt;br /&gt;
{{anchor|.3Cimageres.3E}}&lt;br /&gt;
This tag is new for v12 (Frodo), replacing &amp;lt;thumbsize&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;imageres description&amp;quot; /&amp;gt;Specify the maximal resolution that art should be resized to in pixels. The width is automatically calculated as being 16/9*height.  The image will be resized to fit within this size. e.g. an image that is 2000x500 will be cached at size 1280x320. An image that is 500x800 will be cached at size 450x720 using the default value of 720.&amp;lt;section end=&amp;quot;imageres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imageres&amp;gt;720&amp;lt;/imageres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanartres ===&lt;br /&gt;
{{anchor|.3Cfanartres.3E}}&lt;br /&gt;
This tag is new for v12 (Frodo), replacing &amp;lt;fanartheight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;fanartres description&amp;quot; /&amp;gt;Specify the resolution that cached fanart should be resized to in pixels. The width is automatically calculated as being 16/9*height. Only images that are exactly 16x9 and equal to or greater than this resolution will be cached at this size - all other images will be cached using &amp;lt;imageres&amp;gt;. The default value is 1080.&amp;lt;section end=&amp;quot;fanartres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanartres&amp;gt;1080&amp;lt;/fanartres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanart ===&lt;br /&gt;
{{anchor|.3Cfanart.3E}}&lt;br /&gt;
As of v12 (Frodo), this tag is only used for music and not video.&lt;br /&gt;
&lt;br /&gt;
A list of additional files to try when searching for fanart images.  (The defaults are fanart.jpg and fanart.png which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanart&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;fanart.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;backdrop.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/fanart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicthumbs ===&lt;br /&gt;
{{anchor|.3Cmusicthumbs.3E}}&lt;br /&gt;
A list of additional files to try when searching for music thumbnail images.  (The default is folder.jpg which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicthumbs&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;folder.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;thumb.jpg|cover.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/musicthumbs&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== imagescalingalgorithm ===&lt;br /&gt;
Specify the image scaling algorithm for image resizing/caching i.e. posters, fanart, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imagescalingalgorithm&amp;gt;bicubic&amp;lt;/imagescalingalgorithm&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/xbmc/xbmc/blob/1a8753d5cd93890dc6a9f9d4b2ce8848066ea5d0/xbmc/pictures/PictureScalingAlgorithm.cpp#L32-L43 Available image scaling algorithms]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
fast_bilinear&lt;br /&gt;
bilinear&lt;br /&gt;
bicubic&lt;br /&gt;
experimental&lt;br /&gt;
nearest_neighbor&lt;br /&gt;
averaging_area&lt;br /&gt;
bicublin&lt;br /&gt;
gaussian&lt;br /&gt;
sinc&lt;br /&gt;
lanczos&lt;br /&gt;
bicubic_spline&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video and music library settings ==&lt;br /&gt;
&lt;br /&gt;
=== playlistasfolders ===&lt;br /&gt;
{{anchor|.3Cplaylistasfolders.3E}}&lt;br /&gt;
In the recent releases, playlists are treated as folders. Selecting a playlist no longer plays it, but opens it, as if it were a folder.&lt;br /&gt;
&lt;br /&gt;
Set to false to revert to the previous behaviour. When you select a playlist, its content is added to the list of elements to be played.&lt;br /&gt;
&lt;br /&gt;
:{{note|This setting will not affect smart playlists, they will always show as folders.}}&lt;br /&gt;
&lt;br /&gt;
;Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlistasfolders&amp;gt;true&amp;lt;/playlistasfolders&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlistretries ===&lt;br /&gt;
{{anchor|.3Cplaylistretries.3E}}&lt;br /&gt;
The number of retries attempted if a source is offline. With this control you can alter the number of consecutive failed items before a playlist fails.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;playlistretries&amp;gt;100&amp;lt;/playlistretries&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlisttimeout ===&lt;br /&gt;
{{anchor|.3Cplaylisttimeout.3E}}&lt;br /&gt;
The timeout, in seconds, before item failure.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlisttimeout&amp;gt;20&amp;lt;/playlisttimeout&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicdatabase/videodatabase ===&lt;br /&gt;
{{anchor|.3Cmusicdatabase.3E/.3Cvideodatabase.3E|musicdatabase/videodatabase|database tags music/video/tv/epg/adsp}}&lt;br /&gt;
{{main|MySQL}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
Allows advanced customization of the default database settings for music, video, TV, EPG, and ADSP databases.&lt;br /&gt;
&lt;br /&gt;
:{{note| &#039;&#039;&#039;It is HIGHLY recommended that you not attempt to place an sqlite3 database outside of kodi&#039;s path.  sqlite3 contains no filesystem abstraction, so this will plain break on any non-local (as far as Kodi is concerned) paths.  Use this for mysql only.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parent tags:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
{{MySQL warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Child tags: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;type&amp;gt;&lt;br /&gt;
: &#039;&#039;Required&#039;&#039; - Can be either &amp;quot;sqlite3&amp;quot; or &amp;quot;mysql&amp;quot; (default: sqlite3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;host&amp;gt;&lt;br /&gt;
:&#039;&#039;Required&#039;&#039; - &lt;br /&gt;
* sqlite3: defines the relative path to the database file (eg. /usr/local/kodi/databases).&lt;br /&gt;
* mysql: defines the host of the mysql socket (eg. localhost, 192.168.0.1, etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;port&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the port of the mysql socket (default: 3306)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;name&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
:by default &amp;quot;MyVideos&amp;quot;+DB number will be used.&lt;br /&gt;
* sqlite3: defines the name of the database file to read from, excluding the &amp;quot;.db&amp;quot; extension.&lt;br /&gt;
* mysql: defines the name of the database to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;user&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;pass&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the password for the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;compression&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - Defaults to false. Set to &amp;quot;true&amp;quot; to enable MySQL compression protocol. Performance benefit is going to be largely dependent on the network bandwidth, latency between database and clients and on the size of the result sets. [https://github.com/xbmc/xbmc/pull/6484]&lt;br /&gt;
: {{Note|Slower clients (such as the RPi and others) won&#039;t benefit from it as the zlib de-compression overhead is higher than the actual compression savings}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;key&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;cert&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ca&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;capath&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ciphers&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) Configure a database for MySQL.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;videodatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;mysql&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;192.168.0.10&amp;lt;/host&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;kodi_video&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;user&amp;gt;kodi&amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;pass&amp;gt;kodi&amp;lt;/pass&amp;gt;&lt;br /&gt;
&amp;lt;/videodatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Configure a database for an sqlite database.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicdatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;sqlite3&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;/usr/local/share/kodi/databases&amp;lt;/host&amp;gt;&lt;br /&gt;
&amp;lt;/musicdatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externalplayer ===&lt;br /&gt;
{{anchor|.3Cexternalplayer.3E}}&lt;br /&gt;
{{see|External players}}&lt;br /&gt;
&lt;br /&gt;
== Music settings ==&lt;br /&gt;
&lt;br /&gt;
=== musicextensions ===&lt;br /&gt;
{{anchor|.3Cmusicextensions.3E}}&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Music windows.&lt;br /&gt;
&lt;br /&gt;
Default extensions for MUSIC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.nsv .m4a .flac .aac .strm .pls .rm .mpa .wav .wma .ogg .mp3 .mp2 .m3u .mod .amf .669 .dmf .dsm .far .gdm &lt;br /&gt;
.imf .it .m15 .med .okt .s3m .stm .sfx .ult .uni .xm .sid .ac3 .dts .cue .aif .aiff .wpl .ape .mac .mpc &lt;br /&gt;
.mp+ .mpp .shn .zip .rar .wv .nsf .spc .gym .adplug .adx .dsp .adp .ymf .ast .afc .hps .xsp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/musicextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cddbaddress ===&lt;br /&gt;
{{anchor|.3Ccddbaddress.3E}}&lt;br /&gt;
The address of the online CDDb database.  You may set this to another freedb mirror if there is a more suitable one.  &lt;br /&gt;
&lt;br /&gt;
Default: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;gt;&lt;br /&gt;
&amp;lt;cddbaddress&amp;gt;freedb.freedb.org&amp;lt;/cddbaddress&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== songinfoduration ===&lt;br /&gt;
{{anchor|.3Csonginfoduration.3E}}&lt;br /&gt;
This controls how long the song information will remain onscreen when the song changes during visualisations.  The valid range is &amp;quot;1&amp;quot; to &amp;quot;Indefinite (0)&amp;quot;, in seconds.  This does not include the duration of any transition effects. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;songinfoduration&amp;gt;10&amp;lt;/songinfoduration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicfilenamefilters ===&lt;br /&gt;
{{anchor|.3Cmusicfilenamefilters.3E}}&lt;br /&gt;
Contains filters to match music information (artist, title etc.) from a tag-less music filename.  The first &amp;lt;filter&amp;gt; to match completely is used. Matched items include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%A - Artist&lt;br /&gt;
%T - Title&lt;br /&gt;
%B - Album&lt;br /&gt;
%N - Track number&lt;br /&gt;
%S - Part of set (disk number)&lt;br /&gt;
%D - Duration&lt;br /&gt;
%G - Genre&lt;br /&gt;
%Y - Year&lt;br /&gt;
%R - Rating&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicfilenamefilters&amp;gt;&lt;br /&gt;
  &amp;lt;filter&amp;gt;%A - %T&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/musicfilenamefilters&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musiclibrary ===&lt;br /&gt;
{{anchor|.3Cmusiclibrary.3E}}&lt;br /&gt;
Options specific to the Music Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
    &amp;lt;hideallitems&amp;gt;true&amp;lt;/hideallitems&amp;gt; &amp;lt;!-- removes the &amp;quot;*All&amp;quot; items from the music library --&amp;gt; &amp;lt;!-- This will be replaced in v15 with a GUI option. --&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;true&amp;lt;/allitemsonbottom&amp;gt; &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;backgroundupdate&amp;gt;true&amp;lt;/backgroundupdate&amp;gt; &amp;lt;!-- set to hide the music scanner dialog from the gui --&amp;gt;&lt;br /&gt;
   &amp;lt;promptfulltagscan&amp;gt;false&amp;lt;/promptfulltagscan&amp;gt; &amp;lt;!--  prompt for full tag rescan, regardless of files being unchanged, every time scanning is initiated --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt; &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;albumssortbyartistthenyear&amp;gt;true&amp;lt;/albumssortbyartistthenyear&amp;gt;    &amp;lt;!-- at an albums listing, when you sort by artist, secondary sort will be year. --&amp;gt;&lt;br /&gt;
    &amp;lt;albumformat&amp;gt;%B - %Y&amp;lt;/albumformat&amp;gt;  &amp;lt;!-- album label template, default is &amp;quot;%B&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;albumformatright&amp;gt;%A&amp;lt;/albumformatright&amp;gt;  &amp;lt;!-- album label template for right column, default is &amp;quot;%A&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;prioritiseapetags&amp;gt;true&amp;lt;/prioritiseapetags&amp;gt;  &amp;lt;!-- prioritise APEv2 tags over ID3v1/2 tags, default is false. --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;    &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* --&amp;gt;&lt;br /&gt;
    &amp;lt;artistseparators&amp;gt; &amp;lt;!-- separator used for multiple artists. Note that spaces are used for some separators.--&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt;;&amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt;:&amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt;|&amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt; feat. &amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt; ft. &amp;lt;/separator&amp;gt;&lt;br /&gt;
    &amp;lt;/artistseparators&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt; &amp;lt;!-- 0 results in using the current datetime when adding a song;&lt;br /&gt;
                                 1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                 2 results in using the newer datetime of the file&#039;s mtime and ctime --&amp;gt;&lt;br /&gt;
  &amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Note|Changing the &amp;lt;itemseparator&amp;gt; or &amp;lt;artistseparators&amp;gt; will only affect newly added items. Even a rescan won&#039;t change the added ones, you have to remove the music source(s) and add them again, or delete the music database to achieve this. This process should be made easier in v18 using &amp;lt;promptfulltagscan&amp;gt; (that is not available in v17)}}&lt;br /&gt;
&lt;br /&gt;
== Photos settings ==&lt;br /&gt;
&lt;br /&gt;
=== pictureextensions ===&lt;br /&gt;
{{anchor|.3Cpictureextensions.3E}}&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Pictures window.&lt;br /&gt;
&lt;br /&gt;
Default extensions for PICTURES:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.png, .jpg, .jpeg, .bmp, .gif, .ico, .tif, .tiff, .tga, .pcx, .cbz, .zip, .cbr, .rar, .rss, .webp, .jp2, .apng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/pictureextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pictureexcludes ===&lt;br /&gt;
{{anchor|.3Cpictureexcludes.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from being displayed in My Pictures using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureexcludes&amp;gt;  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in My Pictures --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;small&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/pictureexcludes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== slideshow ===&lt;br /&gt;
{{anchor|.3Cslideshow.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;slideshow&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to pan images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;panamount&amp;gt;2.5&amp;lt;/panamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to zoom images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;zoomamount&amp;gt;5.0&amp;lt;/zoomamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to compensate (zoom) images to attempt to reduce black bars. --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Results in cropping of the longer length of the image in order to reduce the black bars on the shorter length of the image.  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Defaults to 20. --&amp;gt;&lt;br /&gt;
  &amp;lt;blackbarcompensation&amp;gt;20&amp;lt;/blackbarcompensation&amp;gt;  &lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network settings ==&lt;br /&gt;
&lt;br /&gt;
=== samba ===&lt;br /&gt;
{{anchor|.3Csamba.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;samba&amp;gt;&lt;br /&gt;
  &amp;lt;doscodepage&amp;gt;&amp;lt;/doscodepage&amp;gt;  &amp;lt;!-- code page to use for filenames --&amp;gt;&lt;br /&gt;
  &amp;lt;clienttimeout&amp;gt;10&amp;lt;/clienttimeout&amp;gt;  &amp;lt;!-- timeout (in seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;statfiles&amp;gt;true&amp;lt;/statfiles&amp;gt;  &amp;lt;!-- Set to false to disable smb stat() on files to speed up listings of large directories (over slow links) --&amp;gt;&lt;br /&gt;
&amp;lt;/samba&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hosts ===&lt;br /&gt;
{{anchor|.3Cfhosts.3E}}&lt;br /&gt;
Static dns entries which take precedence over your dns server.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hosts&amp;gt;&lt;br /&gt;
  &amp;lt;entry name=&amp;quot;HOSTNAME&amp;quot;&amp;gt;IPADDRESS&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/hosts&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== network ===&lt;br /&gt;
{{anchor|.3Cnetwork.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify the cache}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;network&amp;gt;&lt;br /&gt;
  &amp;lt;curlclienttimeout&amp;gt;10&amp;lt;/curlclienttimeout&amp;gt;  &amp;lt;!-- Timeout in seconds for libcurl (http/ftp) connections --&amp;gt;&lt;br /&gt;
  &amp;lt;curllowspeedtime&amp;gt;20&amp;lt;/curllowspeedtime&amp;gt;  &amp;lt;!-- Time in seconds for libcurl to consider a connection lowspeed --&amp;gt;&lt;br /&gt;
  &amp;lt;curlretries&amp;gt;2&amp;lt;/curlretries&amp;gt;             &amp;lt;!-- Amount of retries for certain failed libcurl operations (e.g. timeout) --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxyusername&amp;gt;&amp;lt;/httpproxyusername&amp;gt;  &amp;lt;!-- username for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxypassword&amp;gt;&amp;lt;/httpproxypassword&amp;gt;  &amp;lt;!-- password for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
&amp;lt;/network&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In Kodi v17, the three buffer settings are removed from the &amp;lt;code&amp;gt;&amp;lt;network&amp;gt;&amp;lt;/code&amp;gt; tag and now placed under the new &amp;lt;code&amp;gt;&amp;lt;cache&amp;gt;&amp;lt;/code&amp;gt; tag. See &#039;&#039;&#039;[[#cache]]&#039;&#039;&#039; for full details.}}&lt;br /&gt;
&lt;br /&gt;
=== cache ===&lt;br /&gt;
{{see also|HOW-TO:Modify the cache}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cache&amp;gt;&lt;br /&gt;
  &amp;lt;memorysize&amp;gt;0&amp;lt;/memorysize&amp;gt;  &amp;lt;!-- number of bytes used for buffering streams in memory &lt;br /&gt;
    When set to 0 the cache will be written to disk instead of RAM --&amp;gt;&lt;br /&gt;
  &amp;lt;buffermode&amp;gt;0&amp;lt;/buffermode&amp;gt;  &amp;lt;!-- Choose what to buffer:&lt;br /&gt;
     0) Buffer all internet filesystems (like &amp;quot;2&amp;quot; but additionally also ftp, webdav, etc.) (default)&lt;br /&gt;
     1) Buffer all filesystems (including local)&lt;br /&gt;
     2) Only buffer true internet filesystems (streams) (http, etc.)&lt;br /&gt;
     3) No buffer --&amp;gt;&lt;br /&gt;
  &amp;lt;readfactor&amp;gt;4.0&amp;lt;/readfactor&amp;gt; &amp;lt;!-- this factor determines the max readrate in terms of readbufferfactor * avg bitrate of a video file. &lt;br /&gt;
This can help on bad connections to keep the cache filled. It will also greatly speed up buffering. Default value 4.0. --&amp;gt;&lt;br /&gt;
&amp;lt;/cache&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== tuxbox ===&lt;br /&gt;
{{anchor|.3Ctuxbox.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tuxbox&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;audiochannelselection&amp;quot;; default is &#039;false&#039;, &#039;true&#039; will popup the audio channel selection if&lt;br /&gt;
          there is more then one audio stream !--&amp;gt;&lt;br /&gt;
    &amp;lt;audiochannelselection&amp;gt;false&amp;lt;/audiochannelselection&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;submenuselection&amp;quot;; default is &#039;false&#039;, &#039;true&#039; will popup the Submenu selection !--&amp;gt;&lt;br /&gt;
    &amp;lt;submenuselection&amp;gt;false&amp;lt;/submenuselection&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;defaultrootmenu&amp;quot;; MODE: 0 = TV (Default), 1 = Radio, 2 = Data, 3 = Movies, 4 = Root !--&amp;gt;&lt;br /&gt;
    &amp;lt;defaultrootmenu&amp;gt;0&amp;lt;/defaultrootmenu&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;defaultsubmenu&amp;quot;; 1=Services  2=Satellites 3=Providers 4=Bouquets (default) !--&amp;gt;&lt;br /&gt;
    &amp;lt;defaultsubmenu&amp;gt;4&amp;lt;/defaultsubmenu&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;pictureicon&amp;quot;; default is &#039;true&#039;, will use the Picture Icons from folder /UserData/PictureIcon/ !--&amp;gt;&lt;br /&gt;
    &amp;lt;pictureicon&amp;gt;true&amp;lt;/pictureicon&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;epgrequesttime&amp;quot;; default is &#039;10&#039;, 0-3600, defines the time in seconds between epg queries, some tuxbox&lt;br /&gt;
          devices need longer to response (Minimum: 1, Maximum: 3600) !--&amp;gt;&lt;br /&gt;
    &amp;lt;epgrequesttime&amp;gt;10&amp;lt;/epgrequesttime&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;zapwaittime&amp;quot;; default is &#039;0&#039; (0 = OFF), defines the time in seconds to wait for a valid PMT after the&lt;br /&gt;
          zaping was send (Minimum: 0, Maximum: 120) !--&amp;gt;&lt;br /&gt;
    &amp;lt;zapwaittime&amp;gt;0&amp;lt;/zapwaittime&amp;gt;  &lt;br /&gt;
&amp;lt;/tuxbox&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airtunesport ===&lt;br /&gt;
{{anchor|.3Cairtunesport.3E}}&amp;lt;section begin=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the defalt listening port of the AirTunes server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airplayport ===&lt;br /&gt;
{{anchor|.3Cairplayport.3E}}&amp;lt;section begin=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the default listening port of the AirPlay server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File system settings ==&lt;br /&gt;
&lt;br /&gt;
=== packagefoldersize ===&lt;br /&gt;
&amp;lt;section begin=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
{{anchor|.3Cpackagefoldersize.3E}}&lt;br /&gt;
{{xml setting&lt;br /&gt;
 | tag name = packagefoldersize&lt;br /&gt;
 | option type = numerical&lt;br /&gt;
 | option values = &lt;br /&gt;
 | default values = 200&lt;br /&gt;
 | platform = all&lt;br /&gt;
 | XBMC version = 12&lt;br /&gt;
 | description = The amount (in megabytes) of add-on zip packages saved from previous add-on installs. These packages are mainly used for the [[add-on]] rollback feature. Increasing the size should increase the amount of past versions saved.&lt;br /&gt;
 | example = Example: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;packagefoldersize&amp;gt;200&amp;lt;/packagefoldersize&amp;gt; &amp;lt;!-- this example would keep up to 200MB of add-on packages. --&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
=== detectasudf ===&lt;br /&gt;
{{anchor|.3Cdetectasudf.3E}}&lt;br /&gt;
Set to true if you wish to detect joint ISO9660/UDF disks as UDF.  &lt;br /&gt;
&lt;br /&gt;
Default: False&lt;br /&gt;
&lt;br /&gt;
=== pathsubstitution ===&lt;br /&gt;
{{anchor|.3Cpathsubstitution.3E}}&lt;br /&gt;
{{main|Path substitution}}&lt;br /&gt;
Path substitutions are for use for redirecting file paths.  These are processed in order, and are useful for substituting an absolute path on a PC with a path suitable for Kodi to handle.  &lt;br /&gt;
&lt;br /&gt;
Default: No path substitutions defined.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pathsubstitution&amp;gt;&lt;br /&gt;
  &amp;lt;substitute&amp;gt;&lt;br /&gt;
    &amp;lt;from&amp;gt;G:\dvds\&amp;lt;/from&amp;gt;&lt;br /&gt;
    &amp;lt;to&amp;gt;smb://somecomputer/g-share/dvds/&amp;lt;/to&amp;gt; &amp;lt;!-- Note the difference between the usage of forward and backslashes --&amp;gt;&lt;br /&gt;
  &amp;lt;/substitute&amp;gt;&lt;br /&gt;
&amp;lt;/pathsubstitution&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input control settings ==&lt;br /&gt;
&lt;br /&gt;
=== remotedelay ===&lt;br /&gt;
{{anchor|.3Cremotedelay.3E}}&lt;br /&gt;
The repeat delay for a LIRC remote control. A delay value between 1 and 20 before a remote button starts repeating on a long keypress (i.e. continuously sending button pushes while it&#039;s held down). &lt;br /&gt;
&lt;br /&gt;
Default: 3&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remotedelay&amp;gt;10&amp;lt;/remotedelay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== remoterepeat ===&lt;br /&gt;
{{anchor|.3Cremoterepeat.3E}}&lt;br /&gt;
This used to adjust the amount of time in milliseconds between repeated keystrokes. Used to prevent key-bounce, in other words prevents Kodi (lirc?) seeing one key press as multiple key presses with certain remotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remoterepeat&amp;gt;800&amp;lt;/remoterepeat&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== controllerdeadzone ===&lt;br /&gt;
{{anchor|.3Ccontrollerdeadzone.3E}}&lt;br /&gt;
The controller deadzone is the region of movement around the center which is not recognized by the device. Because joysticks can have noise (report motion when still) and bias (report an offset when centered), spurious events can be reported even though the controller isn&#039;t being touched. If you notice these kinds of events, you most likely need to increase your controller&#039;s deadzone (both axes recommended). The values range from 0.0 (no deadzone, Kodi will see all input your controller is capable of registering) to 1.0 (it will ignore all input inside of the device&#039;s physical limits).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controllerdeadzone&amp;gt;0.2&amp;lt;/controllerdeadzone&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enablemultimediakeys ===&lt;br /&gt;
{{anchor|.3Cenablemultimediakeys.3E}}&lt;br /&gt;
This setting only has any effect on Windows versions of Kodi, and only applies to builds from 28th May 2011 onwards.&lt;br /&gt;
In Windows the multimedia keys generate a WM_APPCOMMAND message in addition the keypress. Kodi processes both keypresses and the WM_APPCOMMAND messages, and the end result would be that the command is executed twice. To avoid this, by default multimedia keypresses are disabled. Although it should rarely be necessary, the enablemultimediakeys setting allows you to enable the multimedia keys.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;enablemultimediakeys&amp;gt;true&amp;lt;/enablemultimediakeys&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seeksteps ===&lt;br /&gt;
{{Main|Skip steps}}&lt;br /&gt;
&lt;br /&gt;
This setting changes which increments are available in the settings GUI for additive seeking. Note that &amp;lt;code&amp;gt;&amp;lt;seeksteps&amp;gt;&amp;lt;/code&amp;gt; is not used to actually choose which seek steps are enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;seeksteps&amp;gt;7, 15, 30, 60, 180, 300, 600, 900, 1800&amp;lt;/seeksteps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{editor note|the defaults need to be updated for seeksteps.}}&lt;br /&gt;
&lt;br /&gt;
=== touchscreen ===&lt;br /&gt;
{{anchor|.3Ctouchscreen.3E}}&lt;br /&gt;
This setting allows you to move/align the origin of the touch screen with the origin of the display used. If touch input does not result in a correct movement of the mouse pointer, the behaviour can be corrected with an offset and a stretch/compress factor.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;touchscreen&amp;gt;&lt;br /&gt;
		&amp;lt;x_offset&amp;gt;0&amp;lt;/x_offset&amp;gt; &amp;lt;!-- set pixel x offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;y_offset&amp;gt;0&amp;lt;/y_offset&amp;gt; &amp;lt;!-- set pixel y offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;x_stretch_factor&amp;gt;1.0&amp;lt;/x_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch x axis--&amp;gt;&lt;br /&gt;
		&amp;lt;y_stretch_factor&amp;gt;1.0&amp;lt;/y_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch y axis--&amp;gt;&lt;br /&gt;
    &amp;lt;/touchscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other interface settings ==&lt;br /&gt;
&lt;br /&gt;
=== window ===&lt;br /&gt;
{{anchor|.3Cwindow.3E}}&lt;br /&gt;
This allows you to manually set the default size of Kodi&#039;s windowed mode.  If you resize the window, it will return to the set size when restarting.&lt;br /&gt;
&lt;br /&gt;
WIDTH and HEIGHT are the values for each dimension, in pixels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;window&amp;gt;&amp;lt;width&amp;gt;WIDTH&amp;lt;/width&amp;gt;&amp;lt;height&amp;gt;HEIGHT&amp;lt;/height&amp;gt;&amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== allowd3d9ex ===&lt;br /&gt;
{{anchor|.3Callowd3d9ex.3E}}&lt;br /&gt;
Applies only to Windows Vista and up. Values: true/false. Allows Kodi to use Direct3D 9Ex, which is a bit more stable and robust than Direct3D 9.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;allowd3d9ex&amp;gt;true&amp;lt;/allowd3d9ex&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== restrictcapsmask ===&lt;br /&gt;
{{anchor|.3Crestrictcapsmask.3E}}&lt;br /&gt;
Windows only. A bitmask to prevent Kodi from using detected texture capabilities of the GPU. This helps work around buggy hardware/drivers.&lt;br /&gt;
&lt;br /&gt;
1: prevent the use of compressed textures (DXT1, DXT3, DXT5)&lt;br /&gt;
2: prevent the use of non-power-of-two dimensions for textures&lt;br /&gt;
4: prevent the use of compressed textures with non-power-of-two dimensions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;restrictcapsmask&amp;gt;0&amp;lt;/restrictcapsmask&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== forced3d9ex ===&lt;br /&gt;
{{anchor|.3Cforced3d9ex.3E}}&lt;br /&gt;
Windows only: Kodi attempts to detect drivers released for a version earlier than Vista, to avoid using advanced features which are often not emulated correctly. The detection may be incorrect and this setting allows forcing the using of D3D9Ex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;forced3d9ex&amp;gt;false&amp;lt;/forced3d9ex&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== algorithmdirtyregions ===&lt;br /&gt;
{{anchor|.3Calgorithmdirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt; {{note|Some GPU/hardware configurations will have some minor issues (such as a visual &amp;quot;flicker&amp;quot;). For those situations try mode 2 or use the default (mode 3, which requires no advancedsetting). Almost all ARM-based devices (such as [[Android]]) willl likely have flickering issues.}}&lt;br /&gt;
 &lt;br /&gt;
Enable dirty-region processing. Dirty regions are any parts of the screen that have changed since the last frame. By not re-rendering what hasn&#039;t changed the GUI can be sped up. Because all GPUs work differently, only Mode 3, combined with nofliptimeout=0, is guaranteed to work for everyone without flickering issues. This mode will reduce CPU/GPU usage, but will not increase GUI speed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! value !! result !! description&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| Off&lt;br /&gt;
| The entire viewport is always rendered.&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
|Union&lt;br /&gt;
|All dirty regions are grouped into the smallest possible rectangle. This is typically the fastest mode for slower GPUs due to only making one pass.&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| {{nowrap|Cost reduction}}&lt;br /&gt;
| Each dirty region is presented separately, in as many passes as there are regions.&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| {{nowrap|Whole Screen}}&lt;br /&gt;
| The entire screen is rendered if there are any dirty regions. This, combined with nofliptimeout is a safe default for drivers that clear buffer contents (manifests as blinking or vibrating images). &#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|}&amp;lt;section end=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;algorithmdirtyregions&amp;gt;1&amp;lt;/algorithmdirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== visualizedirtyregions ===&lt;br /&gt;
{{anchor|.3Cvisualizedirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;Enable dirty-region visualization. Paints a rectangle over marked controls.&lt;br /&gt;
&lt;br /&gt;
* true: on&lt;br /&gt;
* false: off &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{note|This is only a development mode and isn&#039;t of use to normal users.}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;visualizedirtyregions&amp;gt;true&amp;lt;/visualizedirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== showexitbutton ===&lt;br /&gt;
{{anchor|.3Cshowexitbutton.3E}}&lt;br /&gt;
Setting to hide the exit button, useful for people running appliance based setup&#039;s where exit would only confuse/complicate the user. Modifiable via the advancedsettings.xml by setting showexitbutton to false, default is true (show)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;showexitbutton&amp;gt;true&amp;lt;/showexitbutton&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fullscreen ===&lt;br /&gt;
{{anchor|.3Cfullscreen.3E}}&lt;br /&gt;
Starts Kodi in full screen (check resolutions!).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fullscreen&amp;gt;false&amp;lt;/fullscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== splash ===&lt;br /&gt;
{{anchor|.3Csplash.3E}}&lt;br /&gt;
Set to false if you wish to disable the startup splash image. Defaults to true.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;splash&amp;gt;true&amp;lt;/splash&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cputempcommand ===&lt;br /&gt;
{{anchor|.3Ccputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get CPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia and Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sed -e &#039;s/\([0-9]*\)[0-9]\{3\}.*/\1 C/&#039; /sys/class/thermal/thermal_zone0/temp&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;echo &amp;quot;$(sensors -u | tail -n64 | grep temp1_input | awk &#039;{print $2 }&#039; |awk &#039;{printf(&amp;quot;%d\n&amp;quot;,$1 + 0.5);}&#039;) C&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sensors|sed -ne &amp;quot;s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== gputempcommand ===&lt;br /&gt;
{{anchor|.3Cgputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get GPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-settings -tq gpuCoreTemp) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-smi -q -d TEMPERATURE | grep Gpu | cut -c35-36) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d &amp;quot;-&amp;quot; | cut -f 1 -d &amp;quot;.&amp;quot; | sed -e &amp;quot;s, ,,&amp;quot; | sed &#039;s/$/ C/&#039;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;u&amp;gt;For Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/opt/vc/bin/vcgencmd measure_temp | sed -e &amp;quot;s/temp=//&amp;quot; -e &amp;quot;s/\..*&#039;/ /&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== glrectanglehack ===&lt;br /&gt;
{{anchor|.3Cglrectanglehack.3E}}&lt;br /&gt;
Problems with ghosting or videos which are only played back in the left upper quarter? The following ATI hack may solve it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;glrectanglehack&amp;gt;yes&amp;lt;/glrectanglehack&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== alwaysontop ===&lt;br /&gt;
{{anchor|.3Calwaysontop.3E}}&lt;br /&gt;
Added in XBMC v9.11 (Windows OS only). Keeps Kodi always on top when windowed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;alwaysontop&amp;gt;yes&amp;lt;/alwaysontop&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternate code.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;videoscreen&amp;gt;&lt;br /&gt;
        &amp;lt;fakefullscreen&amp;gt;false&amp;lt;/fakefullscreen&amp;gt;&lt;br /&gt;
    &amp;lt;/videoscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Removed tags ==&lt;br /&gt;
{{anchor|Recently removed tags}}&lt;br /&gt;
* {{anchor|.3Cthumbsize.3E}}&#039;&#039;&#039;&amp;lt;thumbsize&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#imageres|imageres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cfanartheight.3E}}&#039;&#039;&#039;&amp;lt;fanartheight&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#fanartres|fanartres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cdvdthumbs.3E}}&#039;&#039;&#039;&amp;lt;dvdthumbs&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbusydialogdelayms.3E}}&#039;&#039;&#039;&amp;lt;busydialogdelayms&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbginfoloadermaxthreads.3E}}&#039;&#039;&#039;&amp;lt;bginfoloadermaxthreads&amp;gt;&#039;&#039;&#039; - removed in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;showepginfoonselect&amp;gt;&#039;&#039;&#039; - replaced by a GUI setting in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;resample&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;forceDirectSound&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiophile&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiosinkbufferdurationmsec&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;allowtranscode44100&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;streamsilence&amp;gt;&#039;&#039;&#039; - These were various sub-tags for &amp;lt;audio&amp;gt; that were removed in v13 Gotham and either replaced by GUI settings or were no longer needed.&lt;br /&gt;
* {{anchor|.3Cenableairtunesdebuglog.3E}}&#039;&#039;&#039;&amp;lt;enableairtunesdebuglog&amp;gt;&#039;&#039;&#039; - replaced by a GUI option in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videoDisableHi10pMultithreading&amp;gt;&#039;&#039;&#039; - renamed to &amp;lt;disableswmultithreading&amp;gt; in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideallitems&amp;gt;&#039;&#039;&#039; - For both the &amp;lt;code&amp;gt;&amp;lt;videolibrary&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;musiclibrary&amp;gt;&amp;lt;/code&amp;gt; sections, this is replaced by a GUI option in v15 Isengard&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;SmallStepBackSeconds&amp;gt;&#039;&#039;&#039; - In v15 the &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; [[action ID]] has been replaced by &amp;lt;code&amp;gt;seek(-7)&amp;lt;/code&amp;gt; in default keymaps. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details. When the original &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; action ID is used it defaults to the first backwards [[skip steps|additive seeking value]].&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;timeseekforward&amp;gt;/&amp;lt;timeseekbackward&amp;gt;&#039;&#039;&#039; - In v15 these tags are replaced by GUI options via [[skip steps|additive seeking]], which is configured in the GUI. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details.&lt;br /&gt;
* {{anchor|.3Ckaraoke.3E}}&#039;&#039;&#039;&amp;lt;karaoke&amp;gt;&#039;&#039;&#039; - In v16 all of the karaoke features in Kodi were removed.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useddsfanart&amp;gt;&#039;&#039;&#039; - removed in v17 Krypton.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;readbufferfactor&amp;gt;&#039;&#039;&#039; - In v17 &amp;lt;cachemembuffersize&amp;gt; is renamed to &amp;lt;memorysize&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;readbufferfactor&amp;gt;&amp;lt;/code&amp;gt; is renamed to &amp;lt;code&amp;gt;&amp;lt;readfactor&amp;gt;&amp;lt;/code&amp;gt;. In addition, all three buffer related settings in &amp;lt;network&amp;gt; are moved out of &amp;lt;network&amp;gt; and into a new &amp;lt;cache&amp;gt; parent tag.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;minvideocachelevel&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;minaudiocachelevel&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;cacheindvdplayer&amp;gt;&#039;&#039;&#039; have been removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useffmpegvda&amp;gt;&#039;&#039;&#039; - Tag was only used for development testing. Removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;lingertime&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nofliptimeout&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
&lt;br /&gt;
== guisettings.xml settings ==&lt;br /&gt;
You can also define the settings normally defined in the GUI (and stored in guisettings.xml) in advancedsettings.xml.  Most guisettings.xml settings defined in advancedsettings.xml will override the guisettings.xml values, and the settings will be removed completely from the interface.&lt;br /&gt;
&lt;br /&gt;
The easiest way to include a guisettings.xml setting is to first change the setting in the interface to the value that you want, and then open the &#039;&#039;&#039;[[userdata]]/guisettings.xml&#039;&#039;&#039; file and find the XML entry that corresponds to that setting.&lt;br /&gt;
&lt;br /&gt;
Then just add that entry to the advancedsettings.xml file.&lt;br /&gt;
&lt;br /&gt;
For instance, to set the Font Character Set (found in the appearance setting, in the Look and Feel section), you&#039;d open up guisettings.xml and find:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;lookandfeel&amp;gt;&lt;br /&gt;
    &amp;lt;charset&amp;gt;Hebrew (Windows)&amp;lt;/charset&amp;gt;&lt;br /&gt;
  &amp;lt;/lookandfeel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simply take that entry and place it in advancedsettings.xml.  The option in Kodi&#039;s interface for the character set will then no longer be visible, and Kodi will always use the Hebrew (Windows) character set.&lt;br /&gt;
&lt;br /&gt;
{{Updated|17}}&lt;br /&gt;
{{DISPLAYTITLE:advancedsettings.xml}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=128810</id>
		<title>Advancedsettings.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Advancedsettings.xml&amp;diff=128810"/>
		<updated>2017-03-19T15:26:04Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* musiclibrary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}{{mininav|[[Settings]]|page=advancedsettings.xml}}&lt;br /&gt;
{{bigger|{{note|&#039;&#039;&#039;The advancedsettings.xml file does not exist by default. You have to create it first!&#039;&#039;&#039;}} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The [[advancedsettings.xml]] file, which does not exist by default, can be created by a user in their &#039;&#039;&#039;[[userdata folder]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This file is used for advanced settings and options that do not have GUI controls inside of {{kodi}}. Some settings are experimental or very rarely set, so they can only be used via the advancedsettings.xml file. The file is simply a plain text file and can be edited by various text editors, so long as the name is &amp;quot;advancedsettings.xml&amp;quot;. These advanced settings can be used to tweak various things such as episode naming patterns, special network ports, special behaviors, and more.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following page will describe the structure of the advancedsettings.xml file and the various individual settings.&lt;br /&gt;
&lt;br /&gt;
{{note|&lt;br /&gt;
# All XML tags must be lowercase. The start and end of the advancedsettings.xml file must have the &amp;lt;advancedsettings&amp;gt; and &amp;lt;/advancedsettings&amp;gt; tags.&lt;br /&gt;
# Kodi will only read the advancedsettings.xml file when it starts up. If you make changes while it is running then you must restart Kodi.&lt;br /&gt;
# For some Windows versions, Kodi has two &amp;lt;code&amp;gt;\userdata\&amp;lt;/code&amp;gt; folders. The correct one to put the advancedsettings.xml file in is not the one in Program Files, but in &amp;lt;code&amp;gt;%appdata%\Kodi\userdata\.&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Layout ==&lt;br /&gt;
&lt;br /&gt;
The layout of &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;setting&amp;gt;value&amp;lt;/setting&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;setting&amp;quot; gives the name of the setting, and &amp;quot;value&amp;quot; gives it&#039;s value.&lt;br /&gt;
&lt;br /&gt;
A list of the available &amp;quot;setting&amp;quot; strings and their values is given below.&lt;br /&gt;
&lt;br /&gt;
= List of available settings =&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting settings ==&lt;br /&gt;
&lt;br /&gt;
=== loglevel ===&lt;br /&gt;
{{Anchor|.3Cloglevel.3E}}&lt;br /&gt;
{{see also|debug log}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
{{xml setting&lt;br /&gt;
 | tag name = loglevel&lt;br /&gt;
 | tag attribute = hide&lt;br /&gt;
 | tag attribute values = &lt;br /&gt;
{{option values&lt;br /&gt;
 | value1= true | value1 description= Hides &amp;quot;enable debugging&amp;quot; guisetting.&lt;br /&gt;
 | value2= false | value2 description= &amp;quot;enable debugging&amp;quot; guisetting will switch between min(loglevel, 0) and max(loglevel, 2) for off and on respectively. &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
 | tag attribute default values = true&lt;br /&gt;
 | option values = &lt;br /&gt;
{{option values&lt;br /&gt;
 | value1= -1 | value1 description= No logging, suppresses all log output&lt;br /&gt;
 | value2= 0 | value2 description= Normal logging, only logging errors &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
 | value3= 1 | value3 description= Debug logging &#039;&#039;(without showing text on screen)&#039;&#039;&lt;br /&gt;
 | value4= 2 | value4 description= Debug logging with freemem, fps and cpu usage shown on screen&lt;br /&gt;
 | value5= 3 | value5 description= Debug logging with freemem, fps and cpu usage and full smb logging&lt;br /&gt;
}}&lt;br /&gt;
 | default values = 0&lt;br /&gt;
 | description = &lt;br /&gt;
The logging level that Kodi will use to log errors and information. The &amp;quot;hide&amp;quot; attribute is optional.&lt;br /&gt;
 | example =&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel hide=&amp;quot;false&amp;quot;&amp;gt;1&amp;lt;/loglevel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If debugging is switched on in the GUI, loglevel will be set to 2 (&#039;&#039;log to both file and on-screen information&#039;&#039;); this will over-ride any &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; setting.}}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If debugging is switched on in the GUI when Kodi is shut down, then it will be automatically be re-enabled at level 2 when it  is re-started. This is true even if &#039;hide&#039; is subsequently set to &#039;true&#039; - in other words, if you enable it in the GUI and then hide the GUI toggle, it will stay on level 2 irrespective of what you subsequently set in &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt;.}}&amp;lt;br /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;loglevel&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jsonrpc ===&lt;br /&gt;
{{Anchor|.3Cjsonrpc.3E}}&lt;br /&gt;
To make it easier for developers using the [[JSON RPC]] API in their (third party) applications to debug during development the json output of Kodi can be prettified by setting &#039;&#039;&#039;compactoutput&#039;&#039;&#039; to &#039;&#039;&#039;false&#039;&#039;&#039;. Default json output mode is a compact print which does not contain any unnecessary whitespaces and therefore is difficult to read for humans.&lt;br /&gt;
Furthermore using the &#039;&#039;&#039;tcpport&#039;&#039;&#039; setting it is possible to change the default TCP port used by Kodi for JSON RPC (which is 9090) to any other valid port.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jsonrpc&amp;gt;&lt;br /&gt;
    &amp;lt;compactoutput&amp;gt;false&amp;lt;/compactoutput&amp;gt;&lt;br /&gt;
    &amp;lt;tcpport&amp;gt;9999&amp;lt;/tcpport&amp;gt;&lt;br /&gt;
&amp;lt;/jsonrpc&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== other - enableairtunesdebuglog ===&lt;br /&gt;
{{see|#enableairtunesdebuglog}}&lt;br /&gt;
&lt;br /&gt;
== Audio/video playback settings ==&lt;br /&gt;
&lt;br /&gt;
=== skiploopfilter ===&lt;br /&gt;
{{anchor|.3Cskiploopfilter.3E}}&lt;br /&gt;
The amount of the loop filter to skip on h264 decoding.  This can help the performance of slower machines when decoding h264 content.  Values, in decreasing CPU usage (and decreasing quality)&lt;br /&gt;
* -16 None&lt;br /&gt;
* 0 Skip only empty frames (default)&lt;br /&gt;
* 8 Skip non-reference frames (default on ATV)&lt;br /&gt;
* 16 Skip bi-dir frames&lt;br /&gt;
* 32 Skip all non-key frames&lt;br /&gt;
* 48 Skip all frames&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;skiploopfilter&amp;gt;8&amp;lt;/skiploopfilter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== video ===&lt;br /&gt;
{{anchor|.3Cvideo.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify automatic watch and resume points|HOW-TO:Modify time seeking}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;subsdelayrange&amp;gt;10&amp;lt;/subsdelayrange&amp;gt;  &amp;lt;!-- Delay range for subtitles, in seconds. --&amp;gt;&lt;br /&gt;
  &amp;lt;audiodelayrange&amp;gt;10&amp;lt;/audiodelayrange&amp;gt;  &amp;lt;!-- Delay range for audio/video sync, in seconds. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;smallstepbackseconds&amp;gt;7&amp;lt;/smallstepbackseconds&amp;gt;  &amp;lt;!-- Length of the small skip back when playing a video --&amp;gt; &amp;lt;!-- Will be replaced by a GUI option in v15 --&amp;gt;&lt;br /&gt;
  &amp;lt;usetimeseeking&amp;gt;true&amp;lt;/usetimeseeking&amp;gt;  &amp;lt;!-- Whether to use time based or percentage based seeking. --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforward&amp;gt;30&amp;lt;/timeseekforward&amp;gt;  &amp;lt;!-- Time to seek forward in seconds when doing a short seek.  Defaults to 30. --&amp;gt; &amp;lt;!-- Deprecated. Will be replaced by a GUI option in v15. Note: Need to double check if it will actually be removed? --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackward&amp;gt;-30&amp;lt;/timeseekbackward&amp;gt;  &amp;lt;!-- Time to seek backward in seconds when doing a short seek.  Defaults to -30. --&amp;gt; &amp;lt;!-- Deprecated. Will be replaced by a GUI option in v15. Note: Need to double check if it will actually be removed? --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekforwardbig&amp;gt;600&amp;lt;/timeseekforwardbig&amp;gt;  &amp;lt;!-- Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes). --&amp;gt;&lt;br /&gt;
  &amp;lt;timeseekbackwardbig&amp;gt;-600&amp;lt;/timeseekbackwardbig&amp;gt;  &amp;lt;!-- Time to seek forward in seconds when doing a long seek.  Defaults to -600 (10 minutes). --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforward&amp;gt;2&amp;lt;/percentseekforward&amp;gt;  &amp;lt;!-- Amount to seek forward as a percentage, when doing a short seek.  Defaults to 2. --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackward&amp;gt;-2&amp;lt;/percentseekbackward&amp;gt;  &amp;lt;!-- Amount to seek backward as a percentage, when doing a short seek.  Defaults to -2. --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekforwardbig&amp;gt;10&amp;lt;/percentseekforwardbig&amp;gt;  &amp;lt;!-- Amount to seek forward as a percentage, when doing a long seek.  Defaults to 10. --&amp;gt;&lt;br /&gt;
  &amp;lt;percentseekbackwardbig&amp;gt;-10&amp;lt;/percentseekbackwardbig&amp;gt;  &amp;lt;!-- Amount to seek forward as a percentage, when doing a long seek.  Defaults to -10. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;blackbarcolour&amp;gt;1&amp;lt;/blackbarcolour&amp;gt;  &amp;lt;!-- colour of the black bars (0-&amp;gt;255), (black-&amp;gt;white) on videos. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;fullscreenonmoviestart&amp;gt;true&amp;lt;/fullscreenonmoviestart&amp;gt; &amp;lt;!-- Whether to go to fullscreen or not when starting a movie. Defaults to true. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;dvdplayer&amp;lt;/defaultplayer&amp;gt; &amp;lt;!-- Set the default video player: dvdplayer or extplayer. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be added to library. --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;90&amp;lt;/playcountminimumpercent&amp;gt; &amp;lt;!--Minimum percentage that has to be played before it is marked as watched. Set to 101 to never auto-mark items as watched --&amp;gt;&lt;br /&gt;
  &amp;lt;ignoresecondsatstart&amp;gt;180&amp;lt;/ignoresecondsatstart&amp;gt; &amp;lt;!-- Number of seconds to ignore at video start after which a resume point is created --&amp;gt;&lt;br /&gt;
  &amp;lt;ignorepercentatend&amp;gt;8&amp;lt;/ignorepercentatend&amp;gt; &amp;lt;!-- percentage of video to ignore at the end. If you stop watching the video here no resume point is created. Set to 101 to never save a resume point. The video is already marked as watched at 90%, see above. --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;forcevaapienabled&amp;gt;true&amp;lt;/forcevaapienabled&amp;gt; &amp;lt;!-- VAAPI is only tested on intel hardware. This flag helps wrapper developers and fglrx users to easily test current VAAPI state on their hardware. Default is false. Please report crashes directly to your driver vendor --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;vdpauscaling&amp;gt;true&amp;lt;/vdpauscaling&amp;gt; &amp;lt;!-- scales with vdpau instead of opengl and turns on its HQ scaler when available, enabling this might slow down rendering and cause framedrops especially on ION systems, this setting requires a vdpau feature set C gpu--&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;enablehighqualityhwscalers&amp;gt;true&amp;lt;/enablehighqualityhwscalers&amp;gt; &amp;lt;!-- allow turning on the spline36 and lanczos3 shader (for GL builds) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;dxvaallowhqscaling&amp;gt;false&amp;lt;/dxvaallowhqscaling&amp;gt; &amp;lt;!-- enables high quality video upscaling for Windows --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;ppffmpegdeinterlacing&amp;gt;linblenddeint&amp;lt;/ppffmpegdeinterlacing&amp;gt; &amp;lt;!-- override the deinterlacing options passed to libpostproc --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;ppffmpegpostprocessing&amp;gt;ha:128:7,va,dr&amp;lt;/ppffmpegpostprocessing&amp;gt; &amp;lt;!-- override the post processing options passed to libpostproc when &#039;Video post-processing&#039; is activated in GUI Videos-Settings-Playback --&amp;gt;&lt;br /&gt;
  &amp;lt;autoscalemaxfps&amp;gt;30&amp;lt;/autoscalemaxfps&amp;gt; &amp;lt;!-- when scaling method is set to auto, bilinear is chosen when the fps is higher than this limit, the default is 30 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Settings for when &amp;quot;Adjust refreshrate to match video fps&amp;quot; is enabled, available since r33806. --&amp;gt;&lt;br /&gt;
  &amp;lt;adjustrefreshrate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &amp;quot;Adjust refreshrate to match video fps&amp;quot; will try to select the best refreshrate for the video fps but it doesn&#039;t always get it right, for example it might switch to an unsupported refreshrate. You can add overrides here to switch to a certain refreshrate based on video fps. It&#039;s possible to add as many overrides as you need.  Overrides are processed in order, if the first one doesn&#039;t match the fps or no refreshrates match that override, it will try the next one until no overrides are left --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fps&amp;gt;23.976&amp;lt;/fps&amp;gt;       &amp;lt;!-- if the fps is between 23.966 and 23.986 --&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;60.0&amp;lt;/refresh&amp;gt; &amp;lt;!-- switch to the first found refreshrate that is between 59.99 and 60.01 --&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;override&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmin&amp;gt;29.96&amp;lt;/fpsmin&amp;gt;        &amp;lt;!-- You can also specify the fps range yourself --&amp;gt;&lt;br /&gt;
      &amp;lt;fpsmax&amp;gt;30.01&amp;lt;/fpsmax&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;59.0&amp;lt;/refreshmin&amp;gt; &amp;lt;!-- Same for the refreshrate --&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;61.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/override&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;!-- It none of the overrides match, or none of the refreshrates match any of the fps matching overrides, it will choose a fallback refreshrate. Fallbacks are process in order, if the first fallback doesn&#039;t match any refreshrate, it will try the next one until no fallbacks are left --&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refresh&amp;gt;50.0&amp;lt;/refresh&amp;gt; &amp;lt;!-- switch to the first found refreshrate that is between 49.99 and 50.01. --&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- You can also specify the range for the fallback yourself --&amp;gt;&lt;br /&gt;
    &amp;lt;fallback&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmin&amp;gt;49.0&amp;lt;/refreshmin&amp;gt;&lt;br /&gt;
      &amp;lt;refreshmax&amp;gt;51.0&amp;lt;/refreshmax&amp;gt;&lt;br /&gt;
    &amp;lt;/fallback&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- If none of the overrides match the video fps, or no refreshrates match any of the fps matching overrides, and no fallbacks are specified or no refreshrates match any fallbacks, it will automatically choose the best refreshrate (same as having no overrides and fallbacks). --&amp;gt;&lt;br /&gt;
  &amp;lt;/adjustrefreshrate&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;checkdxvacompatibility&amp;gt;value&amp;lt;/checkdxvacompatibility&amp;gt; &amp;lt;!-- Advanced setting not present: let Kodi autodetect cards that support H264 profile &amp;gt; L4.1. Set value to false to enable DXVA no matter what. Set value to true if Kodi doesn&#039;t autodetect that the graphics card doesn&#039;t support &amp;gt; L4.1 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;useocclusionquery&amp;gt;-1&amp;lt;/useocclusionquery&amp;gt; &amp;lt;!--Use an occlusion query when capturing videoframes, -1 means auto detect, 0 means disabled, 1 means enabled, the default is -1.--&amp;gt;&lt;br /&gt;
  &amp;lt;fpsdetect&amp;gt;1&amp;lt;/fpsdetect&amp;gt; &amp;lt;!-- fps detection for video playback, 0 = trust codec fps, 1 = recalculate from video timestamps with uniform spacing, 2 = recalculate from video timestamps always --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;latency&amp;gt; &amp;lt;!-- Compensate display latency (video lag). Latency is given in msecs. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;delay&amp;gt;0&amp;lt;/delay&amp;gt; &amp;lt;!-- Global default display latency --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Override latency for given display (not video) refresh rates. When Kodi is in windowed mode, override is ignored. Multiple overrides are allowed.&lt;br /&gt;
&lt;br /&gt;
      Syntax of an override entry:&lt;br /&gt;
        &amp;lt;refresh&amp;gt;&lt;br /&gt;
          &amp;lt;min&amp;gt;, &amp;lt;max&amp;gt; refresh rate range, OR&lt;br /&gt;
          &amp;lt;rate&amp;gt; exact refresh rate&lt;br /&gt;
          &amp;lt;delay&amp;gt; display latency for the given refresh rate&lt;br /&gt;
        &amp;lt;/refresh&amp;gt;&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Example: display has 125 msec latency at 23-24 Hz --&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;min&amp;gt;23&amp;lt;/min&amp;gt;&lt;br /&gt;
      &amp;lt;max&amp;gt;24&amp;lt;/max&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;125&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Example: display has 50 msec latency at 50 (+/-0.01) Hz --&amp;gt;&lt;br /&gt;
    &amp;lt;refresh&amp;gt;&lt;br /&gt;
      &amp;lt;rate&amp;gt;50&amp;lt;/rate&amp;gt;&lt;br /&gt;
      &amp;lt;delay&amp;gt;50&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/refresh&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/latency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;stereoscopicregex3d&amp;gt;[-. _]3d[-. _]&amp;lt;/stereoscopicregex3d&amp;gt; &amp;lt;!-- Filename triggers for 3D (stereoscopic) mode. --&amp;gt;&lt;br /&gt;
    &amp;lt;stereoscopicregexsbs&amp;gt;[-. _]h?sbs[-. _]&amp;lt;/stereoscopicregexsbs&amp;gt;&lt;br /&gt;
    &amp;lt;stereoscopicregextab&amp;gt;[-. _]h?tab[-. _]&amp;lt;/stereoscopicregextab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;stagefright&amp;gt; &amp;lt;!-- Previously this page also listed &amp;lt;mediacodec&amp;gt; tags as well as stagefright tags, but this was in error. There are only stagefright options for official Kodi builds. SPMC has mediacodec options for codec tweaking, though. -1 is default, 0 is never used this codec, 1 is always use this codec, bypassing blacklist --&amp;gt;&lt;br /&gt;
      &amp;lt;useavccodec&amp;gt;-1&amp;lt;/useavccodec&amp;gt;&lt;br /&gt;
      &amp;lt;usehevccodec&amp;gt;-1&amp;lt;/usehevccodec&amp;gt; &amp;lt;!-- Added in v15 --&amp;gt;&lt;br /&gt;
      &amp;lt;usevc1codec&amp;gt;-1&amp;lt;/usevc1codec&amp;gt;&lt;br /&gt;
      &amp;lt;usevpxcodec&amp;gt;-1&amp;lt;/usevpxcodec&amp;gt;&lt;br /&gt;
      &amp;lt;usemp4codec&amp;gt;-1&amp;lt;/usemp4codec&amp;gt;&lt;br /&gt;
      &amp;lt;usempeg2codec&amp;gt;-1&amp;lt;/usempeg2codec&amp;gt;&lt;br /&gt;
      &amp;lt;useswrenderer&amp;gt;false&amp;lt;/useswrenderer&amp;gt;&lt;br /&gt;
    &amp;lt;/stagefright&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;disableswmultithreading&amp;gt;false&amp;lt;/disableswmultithreading&amp;gt; &amp;lt;!-- Replaces disablehi10pmultithreading. Set this to true if you want software decoding to use only one CPU thread. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;assfixedworks&amp;gt;false&amp;lt;/assfixedworks&amp;gt; &amp;lt;!-- position behavior of ass subtitiles when setting &amp;quot;subtitle position on screen&amp;quot; set to &amp;quot;fixed&amp;quot;. True to show at the fixed position set in video calibration. False to show at the bottom of video (default). --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== audio ===&lt;br /&gt;
{{anchor|.3Caudio.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;audio&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of headroom Kodi should use above the maximum volume level, in decibels.  Defaults to 0, valid values 0, 6, 12. --&amp;gt;&lt;br /&gt;
  &amp;lt;headroom&amp;gt;0&amp;lt;/headroom&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Default audio player: paplayer or dvdplayer --&amp;gt;&lt;br /&gt;
  &amp;lt;defaultplayer&amp;gt;paplayer&amp;lt;/defaultplayer&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be added to library. --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](podcast)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount of gain (dB) to be applied to AC3 streams that have been mixed-down to 2 channels. Default is 12.0. Valid values are: -96.0 to 96.0. --&amp;gt;&lt;br /&gt;
  &amp;lt;ac3downmixgain&amp;gt;12.0&amp;lt;/ac3downmixgain&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Minimum percentage that has to be played before it is considered for incrementing in the Top 100 database view, or for last.fm submittal --&amp;gt;&lt;br /&gt;
  &amp;lt;playcountminimumpercent&amp;gt;99&amp;lt;/playcountminimumpercent&amp;gt; &lt;br /&gt;
  &amp;lt;!-- Whether to use Dynamic Range Compression (DRC) on AC3 streams. 1.0 is &amp;quot;full&amp;quot; compression, as defined by the audio track&#039;s metadata, which is recommended for &amp;quot;basic&amp;quot; sound systems such as the internal speakers on a TV. 0.0 is no compression at all, which is recommended for people with nice multi-speaker sound systems. -1.0 (default) defaults to whatever ffmpeg uses, which is currently the same as 1.0. This has no effect if passthrough is enabled for AC3. --&amp;gt;&lt;br /&gt;
  &amp;lt;applydrc&amp;gt;-1.0&amp;lt;/applydrc&amp;gt; &lt;br /&gt;
  &amp;lt;!-- set to true to skip decoding of DTS in wav files when using dvdplayer (10.10 only) --&amp;gt;&lt;br /&gt;
  &amp;lt;dvdplayerignoredtsinwav&amp;gt;false&amp;lt;/dvdplayerignoredtsinwav&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterhold&amp;gt;0.025&amp;lt;/limiterhold&amp;gt; &lt;br /&gt;
  &amp;lt;!-- default values for limiter/compressor --&amp;gt;&lt;br /&gt;
  &amp;lt;limiterrelease&amp;gt;0.1&amp;lt;/limiterrelease&amp;gt; &lt;br /&gt;
&amp;lt;/audio&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information on the configuration of audio under Frodo see [[AudioEngine/HOW-TO: Configure audio]]&lt;br /&gt;
&lt;br /&gt;
=== measurerefreshrate ===&lt;br /&gt;
{{anchor|.3Cmeasurerefreshrate.3E}}&lt;br /&gt;
When using &amp;quot;Sync playback to display&amp;quot; on Windows, the detected refreshrate might be wrong.&lt;br /&gt;
When enabling measurerefreshrate, the refreshrate is measured instead, which makes it more accurate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;measurerefreshrate&amp;gt;true&amp;lt;/measurerefreshrate&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== edl ===&lt;br /&gt;
{{anchor|.3Cedl.3E}}&lt;br /&gt;
{{main|EDL}}&lt;br /&gt;
Commercial break detection not as good you think it could be? Are some commercial breaks in a series of adverts not being skipped? Are some parts being skipped that are clearly not commercials? Does the end of the previous recording still show? The following advanced settings can be used to better identify full commercial break sequences, remove incorrectly flagged commercial breaks, and have playback start at the actual beginning of the recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edl&amp;gt;&lt;br /&gt;
  &amp;lt;!-- if true, commercial breaks will be merged according to the remaining options. --&amp;gt;&lt;br /&gt;
  &amp;lt;mergeshortcommbreaks&amp;gt;false&amp;lt;/mergeshortcommbreaks&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks won&#039;t be merged if the total length of the commercial break would be greater than this (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreaklength&amp;gt;250&amp;lt;/maxcommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- After merging, commercial breaks shorter than this will be removed (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;mincommbreaklength&amp;gt;90&amp;lt;/mincommbreaklength&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Commercial breaks that are further apart than this won&#039;t be merged (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;maxcommbreakgap&amp;gt;120&amp;lt;/maxcommbreakgap&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to wait before automatically skipping when the start of a commercial break reached (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowait&amp;gt;0&amp;lt;/commbreakautowait&amp;gt;&lt;br /&gt;
  &amp;lt;!-- How long to rewind after automatically skipping to the end of the commercial break (seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;commbreakautowind&amp;gt;0&amp;lt;/commbreakautowind&amp;gt;&lt;br /&gt;
&amp;lt;/edl&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pvr ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pvr&amp;gt;&lt;br /&gt;
  &amp;lt;timecorrection&amp;gt;0&amp;lt;/timecorrection&amp;gt;  &amp;lt;!-- Correct all times (epg tags, timer tags, recording tags) by this amount of minutes. --&amp;gt;&lt;br /&gt;
  &amp;lt;infotoggleinterval&amp;gt;3000&amp;lt;/infotoggleinterval&amp;gt;  &amp;lt;!-- If there is more than one pvr gui info item available (e.g. multiple recordings active at the same time), use this toggle delay in milliseconds. --&amp;gt;&lt;br /&gt;
  &amp;lt;minvideocachelevel&amp;gt;5&amp;lt;/minvideocachelevel&amp;gt; &amp;lt;!-- Cache up to this level in the video buffer buffer before resuming playback if the buffers run dry. --&amp;gt;&lt;br /&gt;
  &amp;lt;minaudiocachelevel&amp;gt;10&amp;lt;/minaudiocachelevel&amp;gt; &amp;lt;!-- Cache up to this level in the audio buffer before resuming playback if the buffers run dry. --&amp;gt;&lt;br /&gt;
  &amp;lt;cacheindvdplayer&amp;gt;true&amp;lt;/cacheindvdplayer&amp;gt; &amp;lt;!-- Cache PVR stream in DVDPlayer. --&amp;gt;&lt;br /&gt;
  &amp;lt;channeliconsautoscan&amp;gt;true&amp;lt;/channeliconsautoscan&amp;gt; &amp;lt;!-- Automatically scan user defined folder for channel icons when loading internal channel groups. --&amp;gt;&lt;br /&gt;
  &amp;lt;autoscaniconsuserset&amp;gt;false&amp;lt;/autoscaniconsuserset&amp;gt; &amp;lt;!-- Mark channel icons populated by auto scan as &amp;quot;user set&amp;quot;. --&amp;gt;&lt;br /&gt;
  &amp;lt;numericchannelswitchtimeout&amp;gt;1000&amp;lt;/numericchannelswitchtimeout&amp;gt; &amp;lt;!-- Time in ms before the numeric dialog auto closes when confirmchannelswitch is disabled. --&amp;gt;&lt;br /&gt;
&amp;lt;/pvr&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== epg ===&lt;br /&gt;
{{anchor|.3Cpvr.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;epg&amp;gt;&lt;br /&gt;
  &amp;lt;lingertime&amp;gt;1440&amp;lt;/lingertime&amp;gt;  &amp;lt;!-- keep X minutes of past epg data (default: 24h) --&amp;gt;&lt;br /&gt;
  &amp;lt;updatecheckinterval&amp;gt;300&amp;lt;/updatecheckinterval&amp;gt;  &amp;lt;!-- check if tables need to be updated every X minutes --&amp;gt;&lt;br /&gt;
  &amp;lt;cleanupinterval&amp;gt;900&amp;lt;/cleanupinterval&amp;gt;  &amp;lt;!-- remove old entries from the EPG every X minutes --&amp;gt;&lt;br /&gt;
  &amp;lt;activetagcheckinterval&amp;gt;60&amp;lt;/activetagcheckinterval&amp;gt;  &amp;lt;!-- check for updated active tags every X minute --&amp;gt;&lt;br /&gt;
  &amp;lt;retryinterruptedupdateinterval&amp;gt;30&amp;lt;/retryinterruptedupdateinterval&amp;gt;  &amp;lt;!-- retry an interrupted epg update after X seconds --&amp;gt;&lt;br /&gt;
  &amp;lt;updateemptytagsinterval&amp;gt;60&amp;lt;/updateemptytagsinterval&amp;gt;  &amp;lt;!-- override user selectable EPG update interval (minutes) for empty EPG tags --&amp;gt;&lt;br /&gt;
  &amp;lt;displayupdatepopup&amp;gt;true&amp;lt;/displayupdatepopup&amp;gt;  &amp;lt;!-- display a progress popup while updating EPG data from clients --&amp;gt;&lt;br /&gt;
  &amp;lt;displayincrementalupdatepopup&amp;gt;false&amp;lt;/displayincrementalupdatepopup&amp;gt;  &amp;lt;!-- also display a progress popup while doing incremental EPG updates --&amp;gt;&lt;br /&gt;
&amp;lt;/epg&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== forcedswaptime ===&lt;br /&gt;
{{anchor|.3Cforcedswaptime.3E}}&lt;br /&gt;
Use to force a backbuffer-&amp;gt;frontbuffer swap while vsync is enabled. Set to the time (in ms) to allow for the swap (e.g. &amp;lt;forcedswaptime&amp;gt;1&amp;lt;/forcedswaptime&amp;gt; is typical).  &lt;br /&gt;
&lt;br /&gt;
Default: Off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== omxdecodestartwithvalidframe ===&lt;br /&gt;
{{note|This tag is only in some Raspberry Pi specific distributions, such as [[OpenELEC]]. As of March 2015, this tag has not been merged into &amp;quot;vanilla&amp;quot; Kodi builds.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;omxdecodestartwithvalidframe&amp;gt;&amp;lt;/omxdecodestartwithvalidframe&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video library settings ==&lt;br /&gt;
&lt;br /&gt;
=== videoextensions ===&lt;br /&gt;
{{anchor|.3Cvideoextensions.3E}}&amp;lt;section begin=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Video windows.&lt;br /&gt;
&lt;br /&gt;
Default extensions for VIDEOS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.m4v .3gp .nsv .ts .ty .strm .rm .rmvb .m3u .ifo .mov .qt .divx .xvid .bivx .vob .nrg .img&lt;br /&gt;
.iso .pva .wmv .asf .asx .ogm .m2v .avi .bin .dat .dvr-ms .mpg .mpeg .mp4 .mkv .avc .vp3 &lt;br /&gt;
.svq3 .nuv .viv .dv .fli .flv .rar .001 .wpl .zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;videoextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/videoextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;videoextensions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== discstubextensions ===&lt;br /&gt;
{{anchor|.3Cdiscstubextensions.3E}}&lt;br /&gt;
{{main|Media stubs}}&lt;br /&gt;
A list of additional file-extensions that will (&amp;lt;tt&amp;gt;&amp;lt;add&amp;gt;&amp;lt;/tt&amp;gt;) or will not (&amp;lt;tt&amp;gt;&amp;lt;remove&amp;gt;&amp;lt;/tt&amp;gt;) be treated as disc stubs.&lt;br /&gt;
&lt;br /&gt;
Default extensions for DISC STUBS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.disc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;discstubextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.dvd|.blu&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.cd|.vhs&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/discstubextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== languagecodes ===&lt;br /&gt;
{{anchor|.3Clanguagecodes.3E}}&lt;br /&gt;
Translation table for subtitle and audio names.  Contains entries of the form&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;languagecodes&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;short&amp;gt;alt&amp;lt;/short&amp;gt;&lt;br /&gt;
    &amp;lt;long&amp;gt;Alternate&amp;lt;/long&amp;gt;&lt;br /&gt;
  &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/languagecodes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== sorttokens ===&lt;br /&gt;
{{anchor|.3Csorttokens.3E}}&lt;br /&gt;
Allows you to specify additional tokens that will be ignored at the start of lines during sorting.&lt;br /&gt;
{{note|Sort tokens are case sensitive.}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sorttokens&amp;gt;&lt;br /&gt;
  &amp;lt;token&amp;gt;the&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;/sorttokens&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== moviestacking ===&lt;br /&gt;
{{anchor|.3Cmoviestacking.3E}}&amp;lt;section begin=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
{{main|File stacking}}&lt;br /&gt;
This is used by the [[file stacking]] algorithm to combine multi-part files and contains a list of &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|regular expressions]]&#039;&#039;&amp;quot;. For stacking videos that are contained in folders, such as VIDEO_TS folders, see &#039;&#039;&#039;[[advancedsettings.xml#folderstacking|&amp;lt;folderstacking&amp;gt;]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As of v9.11, video stacking regular expressions &#039;&#039;&#039;must&#039;&#039;&#039; contain exactly four (4) capture expressions. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[0-9]+)(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/part/pt/disk/disc&amp;gt; &amp;lt;a-d&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck])[ _.-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;!-- movienamea-xvid.avi, movienameb-xvid.avi --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[a-d])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;append=&amp;quot;yes&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the end.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;append&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This expression will match movename1-xvid.avi, moviename2-xvid.avi.&lt;br /&gt;
         Be warned that it will likely stack sequels in a flat directory layout,&lt;br /&gt;
         so it is only recommend in a dir-per-video layout. --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(.*?)([ ._-]*[0-9])(.*?)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the argument &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions will remain intact and the user specified ones will be added to the beginning. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;moviestacking action=&amp;quot;prepend&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;(Title)(Volume)(Ignore)(Extension)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/moviestacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no argument is supplied, or the argument &amp;lt;tt&amp;gt;append=&amp;quot;no&amp;quot;&amp;lt;/tt&amp;gt; is supplied, the default moviestacking regular expressions are overwritten by the user specified ones.&lt;br /&gt;
&amp;lt;section end=&amp;quot;moviestacking&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== folderstacking ===&lt;br /&gt;
{{main|File stacking}}&lt;br /&gt;
This is similar to &#039;&#039;&#039;[[advancedsettings.xml#moviestacking|&amp;lt;moviestacking&amp;gt;]]&#039;&#039;&#039;, but is used for videos that are contained in folders that use the folder names to stack, such as VIDEO_TS folders (DVD rips that are not in ISO format).&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;folderstacking&amp;gt;&lt;br /&gt;
  &amp;lt;!-- &amp;lt;cd/dvd/disk/disc&amp;gt; &amp;lt;0-N&amp;gt; --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;((cd|dvd|dis[ck])[0-9]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/folderstacking&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cleandatetime ===&lt;br /&gt;
{{anchor|.3Ccleandatetime.3E}}&lt;br /&gt;
Matches a year number in a string using a &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expression]]&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Default expression:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleandatetime&amp;gt;(.+[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-1][0-9])([ _\,\.\(\)\[\]\-][^0-9]|$)&amp;lt;/cleandatetime&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* The string found before will be used as basis string getting cleaned by the cleanstrings expressions. &lt;br /&gt;
:* By default date formats like MM:YY are ignored.&lt;br /&gt;
&lt;br /&gt;
=== cleanstrings ===&lt;br /&gt;
{{anchor|.3Ccleanstrings.3E}}&lt;br /&gt;
Clean unwanted characters from filenames or folders by using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;. Please note that everything right of the match (at the end of the file name) is removed, so if you would have a file named &#039;&#039;Super movie.mp4&#039;&#039; and would add &amp;lt;tt&amp;gt;&amp;lt;regexp&amp;gt; &amp;lt;/regexp&amp;gt;&amp;lt;/tt&amp;gt; (only a space), the only thing that would be left is &#039;&#039;Super&#039;&#039;, which is probably not what you want.&lt;br /&gt;
&lt;br /&gt;
Default expressions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;cleanstrings&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;[ _\,\.\(\)\[\]\-](ac3|dts|custom|dc|divx|divx5|dsr|dsrip|dutch|dvd|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multisubs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|cd[1-9]|r3|r5|bd5|se|svcd|swedish|german|read.nfo|nfofix|unrated|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|hrhd|hrhdtv|hddvd|bluray|x264|h264|xvid|xvidvd|xxx|www.www|\[.*\])([ _\,\.\(\)\[\]\-]|$)&amp;lt;/regexp&amp;gt;&lt;br /&gt;
   &amp;lt;regexp&amp;gt;(\[.*\])&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/cleanstrings&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== tvshowmatching ===&lt;br /&gt;
{{anchor|.3Ctvshowmatching.3E}}&lt;br /&gt;
Matches the season and episode numbers in file paths by using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvshowmatching&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;s([0-9]+)[ ._x-]*e([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)([^\\\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.s01.e01, foo.s01_e01, S01E02 foo, S01 - E02, S01xE02 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\._ -]()[Ee][Pp]_?([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.ep01, foo.EP_01 --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{4})[\.-]([0-9]{2})[\.-]([0-9]{2})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.yyyy.mm.dd.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;([0-9]{2})[\.-]([0-9]{2})[\.-]([0-9]{4})&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.mm.dd.yyyy.* (byDate=true) --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ \[\(-]([0-9]+)x([0-9]+)([^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.1x09* or just /1x09* --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\\/\._ -]([0-9]+)([0-9][0-9])([\._ -][^\\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- foo.103*, 103 foo --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[\/._ -]p(?:ar)?t[_. -]()([ivx]+)([._ -][^\/]*)$&amp;lt;/regexp&amp;gt;  &amp;lt;!-- Part I, Pt.VI --&amp;gt;&lt;br /&gt;
&amp;lt;/tvshowmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
:* Paths are converted to lower case before matching.&lt;br /&gt;
:* Examples of matching regexps for certain filenames can be found on the [[TV Shows (Video Library)|TV shows]] page.&lt;br /&gt;
&lt;br /&gt;
:* For multi-episode matching to work, there needs to be a third set of parentheses &#039;()&#039; at the end, this part is fed back into the regexp engine.&lt;br /&gt;
&lt;br /&gt;
:* A [http://forum.kodi.tv/showthread.php?t=51614 forum thread] has a discussion of pre-made regex lists to match common names. These might improve Kodi&#039;s ability to match TV show names in some situations, at the risk of additional false positives.&lt;br /&gt;
&lt;br /&gt;
==== Filenames without Season ====&lt;br /&gt;
There are two methods to add episodes without a season in their file path. Both ways will force the season to &#039;1&#039; by default, so that you can use&lt;br /&gt;
the &#039;Use Absolute Ordering (Single Season)&#039; setting from the TheTvDb.com scraper.&lt;br /&gt;
&lt;br /&gt;
; Simple Method &#039;&#039;(XBMC v9.11 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Use only one pair of parentheses&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]([0-9]+)&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
; Advanced Method &#039;&#039;(XBMC v10.05 onwards and Kodi)&#039;&#039;&lt;br /&gt;
: Supports multi-episode files without season&lt;br /&gt;
: Use an empty pair of parentheses for the season&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp&amp;gt;[/\._ \-]()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Specifying Default Season &#039;&#039;(XBMC v12.0 onwards and Kodi)&#039;&#039;&lt;br /&gt;
It is possible to set the default season for specific regular expressions by setting the &#039;defaultseason&#039; attribute.&lt;br /&gt;
: Works with both the simple method and advanced method&lt;br /&gt;
: If not used, the season will be set to &#039;1&#039;&lt;br /&gt;
: Useful for setting specials to season &#039;0&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;regexp defaultseason=&amp;quot;0&amp;quot;&amp;gt;[/\._ \-]X()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;regexp defaultseason=&amp;quot;1&amp;quot;&amp;gt;[/\._ \-]E()([0-9]+)(-[0-9]+)?&amp;lt;/regexp&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== tvmultipartmatching ===&lt;br /&gt;
{{anchor|.3Ctvmultipartmatching.3E}}&lt;br /&gt;
Matches a multipart episode number based on a previously identified episode file, using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tvmultipartmatching&amp;gt;^[-_ex]+([0-9]+(?:(?:[a-i]|\\.[1-9])(?![0-9]))?)&amp;lt;/tvmultipartmatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* Text matching is compared case-insensitive.&lt;br /&gt;
:* Specifying this option &#039;&#039;&#039;replaces&#039;&#039;&#039; the default value&lt;br /&gt;
&lt;br /&gt;
=== excludefromscan ===&lt;br /&gt;
{{anchor|.3Cexcludefromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a library scan (except tvshows) using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;. This can be for both Video or Audio sections of &amp;lt;tt&amp;gt;advancedsettings.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludefromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;-trailer&amp;lt;/regexp&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== excludefromlisting ===&lt;br /&gt;
{{anchor|.3Cexcludefromlisting.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;  &lt;br /&gt;
  &amp;lt;excludefromlisting&amp;gt; &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in Files View --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludefromlisting&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== excludetvshowsfromscan ===&lt;br /&gt;
{{anchor|.3Cexcludetvshowsfromscan.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from a tvshow library scan using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defaults:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;video&amp;gt;&lt;br /&gt;
  &amp;lt;excludetvshowsfromscan&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;[!-._ \\/]sample[-._ \\/]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/excludetvshowsfromscan&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Arguments &amp;lt;tt&amp;gt;action=&amp;quot;append&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;action=&amp;quot;prepend&amp;quot;&amp;lt;/tt&amp;gt; will insert user specified expressions after, or before, the defaults above. (Further details in [[Advancedsettings.xml#.3Cmoviestacking.3E|moviestacking]] section)&lt;br /&gt;
&lt;br /&gt;
=== trailermatching ===&lt;br /&gt;
{{anchor|.3Ctrailermatching.3E}}&lt;br /&gt;
Contains &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expression]]&#039;&#039;&amp;quot; syntax (commonly referred to as &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|RegEx]]&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;[[Regular Expression (RegEx) Tutorial|RegExp]]&#039;&#039;&amp;quot;) to match the locally stored trailers to movies in the library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;trailermatching&amp;gt;&lt;br /&gt;
    &amp;lt;!-- This regexp will match moviename_Trailer.avi --&amp;gt;&lt;br /&gt;
    &amp;lt;regexp&amp;gt;(.*?)(_Trailer)(\.[^.]+)$&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;/trailermatching&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videolibrary ===&lt;br /&gt;
{{anchor|.3Cvideolibrary.3E}}&lt;br /&gt;
Options specific to the Video Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;false&amp;lt;/allitemsonbottom&amp;gt;  &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;backgroundupdate&amp;gt;false&amp;lt;/backgroundupdate&amp;gt; &amp;lt;!-- set to &amp;quot;true&amp;quot; to hide the video scanner dialog from the GUI --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- NOTE: To get this working properly, you have to do a &#039;Clean Library&#039; in settings the first time after you enable the setting. --&amp;gt;&lt;br /&gt;
    &amp;lt;cleanonupdate&amp;gt;false&amp;lt;/cleanonupdate&amp;gt;  &amp;lt;!-- default set to false to prevent Kodi from removing items from the database while updating.  --&amp;gt;&lt;br /&gt;
    &amp;lt;usefasthash&amp;gt;true&amp;lt;/usefasthash&amp;gt; &amp;lt;!-- defaults to true. Set to false in order to skip hashing based on the folders modification time. --&amp;gt;&lt;br /&gt;
    &amp;lt;hideemptyseries&amp;gt;false&amp;lt;/hideemptyseries&amp;gt;  &amp;lt;!-- set to &amp;quot;true&amp;quot; to hide empty series in the video library and prevent empty series from being removed during a library cleanup. --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt; &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;  &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* --&amp;gt;&lt;br /&gt;
    &amp;lt;exportautothumbs&amp;gt;false&amp;lt;/exportautothumbs&amp;gt;  &amp;lt;!-- export auto-generated thumbs. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importwatchedstate&amp;gt;false&amp;lt;/importwatchedstate&amp;gt;  &amp;lt;!-- import previously exported playdate and playcount from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;importresumepoint&amp;gt;false&amp;lt;/importresumepoint&amp;gt;  &amp;lt;!-- import previously exported resume point from .nfo files. Defaults to false --&amp;gt;&lt;br /&gt;
    &amp;lt;mymovies&amp;gt;  &amp;lt;!-- Options specific to MyMovies XML file parsing --&amp;gt;&lt;br /&gt;
      &amp;lt;categoriestogenres&amp;gt;false&amp;lt;/categoriestogenres&amp;gt;  &amp;lt;!-- Add MyMovies Custom Categories to Genres (boolean, default is false) --&amp;gt;&lt;br /&gt;
    &amp;lt;/mymovies&amp;gt;&lt;br /&gt;
    &amp;lt;dateadded&amp;gt;1&amp;lt;/dateadded&amp;gt; &amp;lt;!-- 0 results in using the current datetime when adding a video;&lt;br /&gt;
                                  1 (default) results in prefering to use the files mtime (if it&#039;s valid) and only using the file&#039;s ctime if the mtime isn&#039;t valid;&lt;br /&gt;
                                  2 results in using the newer datetime of the file&#039;s mtime and ctime --&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== videoscanner ===&lt;br /&gt;
{{anchor|.3Cvideoscanner.3E}}&lt;br /&gt;
Options specific to the Video scanner&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;videoscanner&amp;gt;&lt;br /&gt;
    &amp;lt;ignoreerrors&amp;gt;true&amp;lt;/ignoreerrors&amp;gt; &amp;lt;!-- Set to true to silently ignore errors while scanning videos. This prevents the error dialogue box, so you don&#039;t have to keep hitting &amp;quot;yes&amp;quot; to keep scanning.--&amp;gt;&lt;br /&gt;
  &amp;lt;/videoscanner&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== myth ===&lt;br /&gt;
{{anchor|.3Cmyth.3E}}&lt;br /&gt;
Not seeing all the recordings you expected in the Movies folder? If so, it&#039;s very likely that the electronic program guide (EPG) used by MythTV doesn&#039;t accurately distinguish between TV Shows and Movies all the time. The following setting allows the length of the recording to also be used to determine if a recording is a Movie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;myth&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Recordings longer than this will be added to the Movies folder (minutes). 0 = off --&amp;gt;&lt;br /&gt;
  &amp;lt;movielength&amp;gt;0&amp;lt;/movielength&amp;gt;&lt;br /&gt;
&amp;lt;/myth&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Library artwork ==&lt;br /&gt;
&lt;br /&gt;
=== imageres ===&lt;br /&gt;
{{anchor|.3Cimageres.3E}}&lt;br /&gt;
This tag is new for v12 (Frodo), replacing &amp;lt;thumbsize&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;imageres description&amp;quot; /&amp;gt;Specify the maximal resolution that art should be resized to in pixels. The width is automatically calculated as being 16/9*height.  The image will be resized to fit within this size. e.g. an image that is 2000x500 will be cached at size 1280x320. An image that is 500x800 will be cached at size 450x720 using the default value of 720.&amp;lt;section end=&amp;quot;imageres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imageres&amp;gt;720&amp;lt;/imageres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanartres ===&lt;br /&gt;
{{anchor|.3Cfanartres.3E}}&lt;br /&gt;
This tag is new for v12 (Frodo), replacing &amp;lt;fanartheight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;fanartres description&amp;quot; /&amp;gt;Specify the resolution that cached fanart should be resized to in pixels. The width is automatically calculated as being 16/9*height. Only images that are exactly 16x9 and equal to or greater than this resolution will be cached at this size - all other images will be cached using &amp;lt;imageres&amp;gt;. The default value is 1080.&amp;lt;section end=&amp;quot;fanartres description&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanartres&amp;gt;1080&amp;lt;/fanartres&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fanart ===&lt;br /&gt;
{{anchor|.3Cfanart.3E}}&lt;br /&gt;
As of v12 (Frodo), this tag is only used for music and not video.&lt;br /&gt;
&lt;br /&gt;
A list of additional files to try when searching for fanart images.  (The defaults are fanart.jpg and fanart.png which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fanart&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;fanart.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;backdrop.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/fanart&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicthumbs ===&lt;br /&gt;
{{anchor|.3Cmusicthumbs.3E}}&lt;br /&gt;
A list of additional files to try when searching for music thumbnail images.  (The default is folder.jpg which can be removed.)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicthumbs&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;folder.jpg&amp;lt;/remove&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;thumb.jpg|cover.jpg&amp;lt;/add&amp;gt;&lt;br /&gt;
&amp;lt;/musicthumbs&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== imagescalingalgorithm ===&lt;br /&gt;
Specify the image scaling algorithm for image resizing/caching i.e. posters, fanart, etc.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;imagescalingalgorithm&amp;gt;bicubic&amp;lt;/imagescalingalgorithm&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/xbmc/xbmc/blob/1a8753d5cd93890dc6a9f9d4b2ce8848066ea5d0/xbmc/pictures/PictureScalingAlgorithm.cpp#L32-L43 Available image scaling algorithms]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
fast_bilinear&lt;br /&gt;
bilinear&lt;br /&gt;
bicubic&lt;br /&gt;
experimental&lt;br /&gt;
nearest_neighbor&lt;br /&gt;
averaging_area&lt;br /&gt;
bicublin&lt;br /&gt;
gaussian&lt;br /&gt;
sinc&lt;br /&gt;
lanczos&lt;br /&gt;
bicubic_spline&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video and music library settings ==&lt;br /&gt;
&lt;br /&gt;
=== playlistasfolders ===&lt;br /&gt;
{{anchor|.3Cplaylistasfolders.3E}}&lt;br /&gt;
In the recent releases, playlists are treated as folders. Selecting a playlist no longer plays it, but opens it, as if it were a folder.&lt;br /&gt;
&lt;br /&gt;
Set to false to revert to the previous behaviour. When you select a playlist, its content is added to the list of elements to be played.&lt;br /&gt;
&lt;br /&gt;
:{{note|This setting will not affect smart playlists, they will always show as folders.}}&lt;br /&gt;
&lt;br /&gt;
;Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlistasfolders&amp;gt;true&amp;lt;/playlistasfolders&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlistretries ===&lt;br /&gt;
{{anchor|.3Cplaylistretries.3E}}&lt;br /&gt;
The number of retries attempted if a source is offline. With this control you can alter the number of consecutive failed items before a playlist fails.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;playlistretries&amp;gt;100&amp;lt;/playlistretries&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== playlisttimeout ===&lt;br /&gt;
{{anchor|.3Cplaylisttimeout.3E}}&lt;br /&gt;
The timeout, in seconds, before item failure.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;playlisttimeout&amp;gt;20&amp;lt;/playlisttimeout&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicdatabase/videodatabase ===&lt;br /&gt;
{{anchor|.3Cmusicdatabase.3E/.3Cvideodatabase.3E|musicdatabase/videodatabase|database tags music/video/tv/epg/adsp}}&lt;br /&gt;
{{main|MySQL}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
Allows advanced customization of the default database settings for music, video, TV, EPG, and ADSP databases.&lt;br /&gt;
&lt;br /&gt;
:{{note| &#039;&#039;&#039;It is HIGHLY recommended that you not attempt to place an sqlite3 database outside of kodi&#039;s path.  sqlite3 contains no filesystem abstraction, so this will plain break on any non-local (as far as Kodi is concerned) paths.  Use this for mysql only.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parent tags:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; - Highly experimental/unstable and no practical benefit for most users. &#039;&#039;&#039;Avoid using.&#039;&#039;&#039;&lt;br /&gt;
{{MySQL warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Child tags: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;type&amp;gt;&lt;br /&gt;
: &#039;&#039;Required&#039;&#039; - Can be either &amp;quot;sqlite3&amp;quot; or &amp;quot;mysql&amp;quot; (default: sqlite3)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;host&amp;gt;&lt;br /&gt;
:&#039;&#039;Required&#039;&#039; - &lt;br /&gt;
* sqlite3: defines the relative path to the database file (eg. /usr/local/kodi/databases).&lt;br /&gt;
* mysql: defines the host of the mysql socket (eg. localhost, 192.168.0.1, etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;port&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the port of the mysql socket (default: 3306)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;name&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; -&lt;br /&gt;
:by default &amp;quot;MyVideos&amp;quot;+DB number will be used.&lt;br /&gt;
* sqlite3: defines the name of the database file to read from, excluding the &amp;quot;.db&amp;quot; extension.&lt;br /&gt;
* mysql: defines the name of the database to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;user&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;pass&amp;gt;&lt;br /&gt;
: &#039;&#039;Required for MySQL&#039;&#039; -&lt;br /&gt;
* sqlite3: silently ignored&lt;br /&gt;
* mysql: defines the password for the user with privileged access to the database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;compression&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - Defaults to false. Set to &amp;quot;true&amp;quot; to enable MySQL compression protocol. Performance benefit is going to be largely dependent on the network bandwidth, latency between database and clients and on the size of the result sets. [https://github.com/xbmc/xbmc/pull/6484]&lt;br /&gt;
: {{Note|Slower clients (such as the RPi and others) won&#039;t benefit from it as the zlib de-compression overhead is higher than the actual compression savings}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;key&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;cert&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ca&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;capath&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;ciphers&amp;gt;&lt;br /&gt;
: &#039;&#039;Optional&#039;&#039; - SSL setting for MySQL [https://github.com/xbmc/xbmc/pull/2566]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) Configure a database for MySQL.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;videodatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;mysql&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;192.168.0.10&amp;lt;/host&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;kodi_video&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;user&amp;gt;kodi&amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;pass&amp;gt;kodi&amp;lt;/pass&amp;gt;&lt;br /&gt;
&amp;lt;/videodatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Configure a database for an sqlite database.&lt;br /&gt;
:{{note| &#039;&#039;The &#039;&#039;&#039;&amp;lt;videodatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;musicdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;tvdatabase&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;epgdatabase&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;adspdatabase&amp;gt;&#039;&#039;&#039; tags are interchangeable here.&#039;&#039;}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicdatabase&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;sqlite3&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;host&amp;gt;/usr/local/share/kodi/databases&amp;lt;/host&amp;gt;&lt;br /&gt;
&amp;lt;/musicdatabase&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;videodatabase&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externalplayer ===&lt;br /&gt;
{{anchor|.3Cexternalplayer.3E}}&lt;br /&gt;
{{see|External players}}&lt;br /&gt;
&lt;br /&gt;
== Music settings ==&lt;br /&gt;
&lt;br /&gt;
=== musicextensions ===&lt;br /&gt;
{{anchor|.3Cmusicextensions.3E}}&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Music windows.&lt;br /&gt;
&lt;br /&gt;
Default extensions for MUSIC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.nsv .m4a .flac .aac .strm .pls .rm .mpa .wav .wma .ogg .mp3 .mp2 .m3u .mod .amf .669 .dmf .dsm .far .gdm &lt;br /&gt;
.imf .it .m15 .med .okt .s3m .stm .sfx .ult .uni .xm .sid .ac3 .dts .cue .aif .aiff .wpl .ape .mac .mpc &lt;br /&gt;
.mp+ .mpp .shn .zip .rar .wv .nsf .spc .gym .adplug .adx .dsp .adp .ymf .ast .afc .hps .xsp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/musicextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cddbaddress ===&lt;br /&gt;
{{anchor|.3Ccddbaddress.3E}}&lt;br /&gt;
The address of the online CDDb database.  You may set this to another freedb mirror if there is a more suitable one.  &lt;br /&gt;
&lt;br /&gt;
Default: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;gt;&lt;br /&gt;
&amp;lt;cddbaddress&amp;gt;freedb.freedb.org&amp;lt;/cddbaddress&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== songinfoduration ===&lt;br /&gt;
{{anchor|.3Csonginfoduration.3E}}&lt;br /&gt;
This controls how long the song information will remain onscreen when the song changes during visualisations.  The valid range is &amp;quot;1&amp;quot; to &amp;quot;Indefinite (0)&amp;quot;, in seconds.  This does not include the duration of any transition effects. &lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;songinfoduration&amp;gt;10&amp;lt;/songinfoduration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musicfilenamefilters ===&lt;br /&gt;
{{anchor|.3Cmusicfilenamefilters.3E}}&lt;br /&gt;
Contains filters to match music information (artist, title etc.) from a tag-less music filename.  The first &amp;lt;filter&amp;gt; to match completely is used. Matched items include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%A - Artist&lt;br /&gt;
%T - Title&lt;br /&gt;
%B - Album&lt;br /&gt;
%N - Track number&lt;br /&gt;
%S - Part of set (disk number)&lt;br /&gt;
%D - Duration&lt;br /&gt;
%G - Genre&lt;br /&gt;
%Y - Year&lt;br /&gt;
%R - Rating&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;musicfilenamefilters&amp;gt;&lt;br /&gt;
  &amp;lt;filter&amp;gt;%A - %T&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/musicfilenamefilters&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== musiclibrary ===&lt;br /&gt;
{{anchor|.3Cmusiclibrary.3E}}&lt;br /&gt;
Options specific to the Music Library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;musiclibrary&amp;gt;&lt;br /&gt;
    &amp;lt;hideallitems&amp;gt;true&amp;lt;/hideallitems&amp;gt; &amp;lt;!-- removes the &amp;quot;*All&amp;quot; items from the music library --&amp;gt; &amp;lt;!-- This will be replaced in v15 with a GUI option. --&amp;gt;&lt;br /&gt;
    &amp;lt;allitemsonbottom&amp;gt;true&amp;lt;/allitemsonbottom&amp;gt; &amp;lt;!-- sorts the &amp;quot;*All&amp;quot; items at the bottom of the list when in Ascending order --&amp;gt;&lt;br /&gt;
    &amp;lt;backgroundupdate&amp;gt;true&amp;lt;/backgroundupdate&amp;gt; &amp;lt;!-- set to hide the music scanner dialog from the gui --&amp;gt;&lt;br /&gt;
   &amp;lt;PromptFullTagScan&amp;gt;false&amp;lt;/PromptFullTagScan&amp;gt; &amp;lt;!--  prompt for full tag rescan, regardless of files being unchanged, every time scanning is initiated --&amp;gt;&lt;br /&gt;
    &amp;lt;recentlyaddeditems&amp;gt;35&amp;lt;/recentlyaddeditems&amp;gt; &amp;lt;!-- number of recently added items. Defaults to 25 --&amp;gt;&lt;br /&gt;
    &amp;lt;albumssortbyartistthenyear&amp;gt;true&amp;lt;/albumssortbyartistthenyear&amp;gt;    &amp;lt;!-- at an albums listing, when you sort by artist, secondary sort will be year. --&amp;gt;&lt;br /&gt;
    &amp;lt;albumformat&amp;gt;%B - %Y&amp;lt;/albumformat&amp;gt;  &amp;lt;!-- album label template, default is &amp;quot;%B&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;albumformatright&amp;gt;%A&amp;lt;/albumformatright&amp;gt;  &amp;lt;!-- album label template for right column, default is &amp;quot;%A&amp;quot; --&amp;gt;&lt;br /&gt;
    &amp;lt;prioritiseapetags&amp;gt;true&amp;lt;/prioritiseapetags&amp;gt;  &amp;lt;!-- prioritise APEv2 tags over ID3v1/2 tags, default is false. --&amp;gt;&lt;br /&gt;
    &amp;lt;itemseparator&amp;gt; / &amp;lt;/itemseparator&amp;gt;    &amp;lt;!-- separator used for multiple artists/genres in tags. Note, this is *space* *slash* *space* --&amp;gt;&lt;br /&gt;
    &amp;lt;artistseparators&amp;gt; &amp;lt;!-- separator used for multiple artists. Note that spaces are used for some separators.--&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt;;&amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt;:&amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt;|&amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt; feat. &amp;lt;/separator&amp;gt;&lt;br /&gt;
      &amp;lt;separator&amp;gt; ft. &amp;lt;/separator&amp;gt;&lt;br /&gt;
    &amp;lt;/artistseparators&amp;gt;&lt;br /&gt;
  &amp;lt;/musiclibrary&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Note|Changing the &amp;lt;itemseparator&amp;gt; or &amp;lt;artistseparators&amp;gt; will only affect newly added items. Even a rescan won&#039;t change the added ones, you have to remove the music source(s) and add them again, or delete the music database to achieve this. This process should be made easier in v18}}&lt;br /&gt;
&lt;br /&gt;
== Photos settings ==&lt;br /&gt;
&lt;br /&gt;
=== pictureextensions ===&lt;br /&gt;
{{anchor|.3Cpictureextensions.3E}}&lt;br /&gt;
A list of additional file-extensions to allow (&#039;&#039;&#039;add&#039;&#039;&#039;) or exclude (&#039;&#039;&#039;remove&#039;&#039;&#039;) in the My Pictures window.&lt;br /&gt;
&lt;br /&gt;
Default extensions for PICTURES:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.png, .jpg, .jpeg, .bmp, .gif, .ico, .tif, .tiff, .tga, .pcx, .cbz, .zip, .cbr, .rar, .rss, .webp, .jp2, .apng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureextensions&amp;gt;&lt;br /&gt;
  &amp;lt;add&amp;gt;.ex1|.ex2&amp;lt;/add&amp;gt;&lt;br /&gt;
  &amp;lt;remove&amp;gt;.ex3|.ex4&amp;lt;/remove&amp;gt;&lt;br /&gt;
&amp;lt;/pictureextensions&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pictureexcludes ===&lt;br /&gt;
{{anchor|.3Cpictureexcludes.3E}}&lt;br /&gt;
Matches filenames or folders which should be excluded from being displayed in My Pictures using a list of &#039;&#039;[[Regular Expression (RegEx) Tutorial|Regular Expressions]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pictureexcludes&amp;gt;  &amp;lt;!-- Regular expressions that if evaluated to true won&#039;t be displayed in My Pictures --&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;small&amp;lt;/regexp&amp;gt;&lt;br /&gt;
  &amp;lt;regexp&amp;gt;[-\._ ](sample|trailer)[-\._ ]&amp;lt;/regexp&amp;gt;&lt;br /&gt;
&amp;lt;/pictureexcludes&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== slideshow ===&lt;br /&gt;
{{anchor|.3Cslideshow.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;slideshow&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to pan images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;panamount&amp;gt;2.5&amp;lt;/panamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to zoom images as a percentage of the screen --&amp;gt;&lt;br /&gt;
  &amp;lt;zoomamount&amp;gt;5.0&amp;lt;/zoomamount&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Amount to compensate (zoom) images to attempt to reduce black bars. --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Results in cropping of the longer length of the image in order to reduce the black bars on the shorter length of the image.  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Defaults to 20. --&amp;gt;&lt;br /&gt;
  &amp;lt;blackbarcompensation&amp;gt;20&amp;lt;/blackbarcompensation&amp;gt;  &lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network settings ==&lt;br /&gt;
&lt;br /&gt;
=== samba ===&lt;br /&gt;
{{anchor|.3Csamba.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;samba&amp;gt;&lt;br /&gt;
  &amp;lt;doscodepage&amp;gt;&amp;lt;/doscodepage&amp;gt;  &amp;lt;!-- code page to use for filenames --&amp;gt;&lt;br /&gt;
  &amp;lt;clienttimeout&amp;gt;10&amp;lt;/clienttimeout&amp;gt;  &amp;lt;!-- timeout (in seconds) --&amp;gt;&lt;br /&gt;
  &amp;lt;statfiles&amp;gt;true&amp;lt;/statfiles&amp;gt;  &amp;lt;!-- Set to false to disable smb stat() on files to speed up listings of large directories (over slow links) --&amp;gt;&lt;br /&gt;
&amp;lt;/samba&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hosts ===&lt;br /&gt;
{{anchor|.3Cfhosts.3E}}&lt;br /&gt;
Static dns entries which take precedence over your dns server.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hosts&amp;gt;&lt;br /&gt;
  &amp;lt;entry name=&amp;quot;HOSTNAME&amp;quot;&amp;gt;IPADDRESS&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/hosts&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== network ===&lt;br /&gt;
{{anchor|.3Cnetwork.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify the cache}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;network&amp;gt;&lt;br /&gt;
  &amp;lt;curlclienttimeout&amp;gt;10&amp;lt;/curlclienttimeout&amp;gt;  &amp;lt;!-- Timeout in seconds for libcurl (http/ftp) connections --&amp;gt;&lt;br /&gt;
  &amp;lt;curllowspeedtime&amp;gt;20&amp;lt;/curllowspeedtime&amp;gt;  &amp;lt;!-- Time in seconds for libcurl to consider a connection lowspeed --&amp;gt;&lt;br /&gt;
  &amp;lt;curlretries&amp;gt;2&amp;lt;/curlretries&amp;gt;             &amp;lt;!-- Amount of retries for certain failed libcurl operations (e.g. timeout) --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxyusername&amp;gt;&amp;lt;/httpproxyusername&amp;gt;  &amp;lt;!-- username for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
  &amp;lt;httpproxypassword&amp;gt;&amp;lt;/httpproxypassword&amp;gt;  &amp;lt;!-- password for Basic Proxy Authentication --&amp;gt;&lt;br /&gt;
&amp;lt;/network&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In Kodi v17, the three buffer settings are removed from the &amp;lt;code&amp;gt;&amp;lt;network&amp;gt;&amp;lt;/code&amp;gt; tag and now placed under the new &amp;lt;code&amp;gt;&amp;lt;cache&amp;gt;&amp;lt;/code&amp;gt; tag. See &#039;&#039;&#039;[[#cache]]&#039;&#039;&#039; for full details.}}&lt;br /&gt;
&lt;br /&gt;
=== cache ===&lt;br /&gt;
{{see also|HOW-TO:Modify the cache}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cache&amp;gt;&lt;br /&gt;
  &amp;lt;memorysize&amp;gt;0&amp;lt;/memorysize&amp;gt;  &amp;lt;!-- number of bytes used for buffering streams in memory &lt;br /&gt;
    When set to 0 the cache will be written to disk instead of RAM --&amp;gt;&lt;br /&gt;
  &amp;lt;buffermode&amp;gt;0&amp;lt;/buffermode&amp;gt;  &amp;lt;!-- Choose what to buffer:&lt;br /&gt;
     0) Buffer all internet filesystems (like &amp;quot;2&amp;quot; but additionally also ftp, webdav, etc.) (default)&lt;br /&gt;
     1) Buffer all filesystems (including local)&lt;br /&gt;
     2) Only buffer true internet filesystems (streams) (http, etc.)&lt;br /&gt;
     3) No buffer --&amp;gt;&lt;br /&gt;
  &amp;lt;readfactor&amp;gt;4.0&amp;lt;/readfactor&amp;gt; &amp;lt;!-- this factor determines the max readrate in terms of readbufferfactor * avg bitrate of a video file. &lt;br /&gt;
This can help on bad connections to keep the cache filled. It will also greatly speed up buffering. Default value 4.0. --&amp;gt;&lt;br /&gt;
&amp;lt;/cache&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== tuxbox ===&lt;br /&gt;
{{anchor|.3Ctuxbox.3E}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tuxbox&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;audiochannelselection&amp;quot;; default is &#039;false&#039;, &#039;true&#039; will popup the audio channel selection if&lt;br /&gt;
          there is more then one audio stream !--&amp;gt;&lt;br /&gt;
    &amp;lt;audiochannelselection&amp;gt;false&amp;lt;/audiochannelselection&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;submenuselection&amp;quot;; default is &#039;false&#039;, &#039;true&#039; will popup the Submenu selection !--&amp;gt;&lt;br /&gt;
    &amp;lt;submenuselection&amp;gt;false&amp;lt;/submenuselection&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;defaultrootmenu&amp;quot;; MODE: 0 = TV (Default), 1 = Radio, 2 = Data, 3 = Movies, 4 = Root !--&amp;gt;&lt;br /&gt;
    &amp;lt;defaultrootmenu&amp;gt;0&amp;lt;/defaultrootmenu&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;defaultsubmenu&amp;quot;; 1=Services  2=Satellites 3=Providers 4=Bouquets (default) !--&amp;gt;&lt;br /&gt;
    &amp;lt;defaultsubmenu&amp;gt;4&amp;lt;/defaultsubmenu&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;pictureicon&amp;quot;; default is &#039;true&#039;, will use the Picture Icons from folder /UserData/PictureIcon/ !--&amp;gt;&lt;br /&gt;
    &amp;lt;pictureicon&amp;gt;true&amp;lt;/pictureicon&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;epgrequesttime&amp;quot;; default is &#039;10&#039;, 0-3600, defines the time in seconds between epg queries, some tuxbox&lt;br /&gt;
          devices need longer to response (Minimum: 1, Maximum: 3600) !--&amp;gt;&lt;br /&gt;
    &amp;lt;epgrequesttime&amp;gt;10&amp;lt;/epgrequesttime&amp;gt;&lt;br /&gt;
    &amp;lt;!-- &amp;quot;zapwaittime&amp;quot;; default is &#039;0&#039; (0 = OFF), defines the time in seconds to wait for a valid PMT after the&lt;br /&gt;
          zaping was send (Minimum: 0, Maximum: 120) !--&amp;gt;&lt;br /&gt;
    &amp;lt;zapwaittime&amp;gt;0&amp;lt;/zapwaittime&amp;gt;  &lt;br /&gt;
&amp;lt;/tuxbox&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airtunesport ===&lt;br /&gt;
{{anchor|.3Cairtunesport.3E}}&amp;lt;section begin=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the defalt listening port of the AirTunes server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airtunesport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== airplayport ===&lt;br /&gt;
{{anchor|.3Cairplayport.3E}}&amp;lt;section begin=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
This overwrites the default listening port of the AirPlay server (announced via zeroconf).&lt;br /&gt;
&amp;lt;section end=&amp;quot;airplayport&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== File system settings ==&lt;br /&gt;
&lt;br /&gt;
=== packagefoldersize ===&lt;br /&gt;
&amp;lt;section begin=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
{{anchor|.3Cpackagefoldersize.3E}}&lt;br /&gt;
{{xml setting&lt;br /&gt;
 | tag name = packagefoldersize&lt;br /&gt;
 | option type = numerical&lt;br /&gt;
 | option values = &lt;br /&gt;
 | default values = 200&lt;br /&gt;
 | platform = all&lt;br /&gt;
 | XBMC version = 12&lt;br /&gt;
 | description = The amount (in megabytes) of add-on zip packages saved from previous add-on installs. These packages are mainly used for the [[add-on]] rollback feature. Increasing the size should increase the amount of past versions saved.&lt;br /&gt;
 | example = Example: &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&amp;lt;packagefoldersize&amp;gt;200&amp;lt;/packagefoldersize&amp;gt; &amp;lt;!-- this example would keep up to 200MB of add-on packages. --&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;packagefoldersize&amp;quot; /&amp;gt;&lt;br /&gt;
=== detectasudf ===&lt;br /&gt;
{{anchor|.3Cdetectasudf.3E}}&lt;br /&gt;
Set to true if you wish to detect joint ISO9660/UDF disks as UDF.  &lt;br /&gt;
&lt;br /&gt;
Default: False&lt;br /&gt;
&lt;br /&gt;
=== pathsubstitution ===&lt;br /&gt;
{{anchor|.3Cpathsubstitution.3E}}&lt;br /&gt;
{{main|Path substitution}}&lt;br /&gt;
Path substitutions are for use for redirecting file paths.  These are processed in order, and are useful for substituting an absolute path on a PC with a path suitable for Kodi to handle.  &lt;br /&gt;
&lt;br /&gt;
Default: No path substitutions defined.  &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pathsubstitution&amp;gt;&lt;br /&gt;
  &amp;lt;substitute&amp;gt;&lt;br /&gt;
    &amp;lt;from&amp;gt;G:\dvds\&amp;lt;/from&amp;gt;&lt;br /&gt;
    &amp;lt;to&amp;gt;smb://somecomputer/g-share/dvds/&amp;lt;/to&amp;gt; &amp;lt;!-- Note the difference between the usage of forward and backslashes --&amp;gt;&lt;br /&gt;
  &amp;lt;/substitute&amp;gt;&lt;br /&gt;
&amp;lt;/pathsubstitution&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input control settings ==&lt;br /&gt;
&lt;br /&gt;
=== remotedelay ===&lt;br /&gt;
{{anchor|.3Cremotedelay.3E}}&lt;br /&gt;
The repeat delay for a LIRC remote control. A delay value between 1 and 20 before a remote button starts repeating on a long keypress (i.e. continuously sending button pushes while it&#039;s held down). &lt;br /&gt;
&lt;br /&gt;
Default: 3&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remotedelay&amp;gt;10&amp;lt;/remotedelay&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== remoterepeat ===&lt;br /&gt;
{{anchor|.3Cremoterepeat.3E}}&lt;br /&gt;
This used to adjust the amount of time in milliseconds between repeated keystrokes. Used to prevent key-bounce, in other words prevents Kodi (lirc?) seeing one key press as multiple key presses with certain remotes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remoterepeat&amp;gt;800&amp;lt;/remoterepeat&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== controllerdeadzone ===&lt;br /&gt;
{{anchor|.3Ccontrollerdeadzone.3E}}&lt;br /&gt;
The controller deadzone is the region of movement around the center which is not recognized by the device. Because joysticks can have noise (report motion when still) and bias (report an offset when centered), spurious events can be reported even though the controller isn&#039;t being touched. If you notice these kinds of events, you most likely need to increase your controller&#039;s deadzone (both axes recommended). The values range from 0.0 (no deadzone, Kodi will see all input your controller is capable of registering) to 1.0 (it will ignore all input inside of the device&#039;s physical limits).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;controllerdeadzone&amp;gt;0.2&amp;lt;/controllerdeadzone&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enablemultimediakeys ===&lt;br /&gt;
{{anchor|.3Cenablemultimediakeys.3E}}&lt;br /&gt;
This setting only has any effect on Windows versions of Kodi, and only applies to builds from 28th May 2011 onwards.&lt;br /&gt;
In Windows the multimedia keys generate a WM_APPCOMMAND message in addition the keypress. Kodi processes both keypresses and the WM_APPCOMMAND messages, and the end result would be that the command is executed twice. To avoid this, by default multimedia keypresses are disabled. Although it should rarely be necessary, the enablemultimediakeys setting allows you to enable the multimedia keys.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;enablemultimediakeys&amp;gt;true&amp;lt;/enablemultimediakeys&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== seeksteps ===&lt;br /&gt;
{{Main|Skip steps}}&lt;br /&gt;
&lt;br /&gt;
This setting changes which increments are available in the settings GUI for additive seeking. Note that &amp;lt;code&amp;gt;&amp;lt;seeksteps&amp;gt;&amp;lt;/code&amp;gt; is not used to actually choose which seek steps are enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;seeksteps&amp;gt;7, 15, 30, 60, 180, 300, 600, 900, 1800&amp;lt;/seeksteps&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{editor note|the defaults need to be updated for seeksteps.}}&lt;br /&gt;
&lt;br /&gt;
=== touchscreen ===&lt;br /&gt;
{{anchor|.3Ctouchscreen.3E}}&lt;br /&gt;
This setting allows you to move/align the origin of the touch screen with the origin of the display used. If touch input does not result in a correct movement of the mouse pointer, the behaviour can be corrected with an offset and a stretch/compress factor.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;touchscreen&amp;gt;&lt;br /&gt;
		&amp;lt;x_offset&amp;gt;0&amp;lt;/x_offset&amp;gt; &amp;lt;!-- set pixel x offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;y_offset&amp;gt;0&amp;lt;/y_offset&amp;gt; &amp;lt;!-- set pixel y offset to align it to the used display--&amp;gt;&lt;br /&gt;
		&amp;lt;x_stretch_factor&amp;gt;1.0&amp;lt;/x_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch x axis--&amp;gt;&lt;br /&gt;
		&amp;lt;y_stretch_factor&amp;gt;1.0&amp;lt;/y_stretch_factor&amp;gt; &amp;lt;!-- stretch/compress the touch y axis--&amp;gt;&lt;br /&gt;
    &amp;lt;/touchscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other interface settings ==&lt;br /&gt;
&lt;br /&gt;
=== window ===&lt;br /&gt;
{{anchor|.3Cwindow.3E}}&lt;br /&gt;
This allows you to manually set the default size of Kodi&#039;s windowed mode.  If you resize the window, it will return to the set size when restarting.&lt;br /&gt;
&lt;br /&gt;
WIDTH and HEIGHT are the values for each dimension, in pixels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;window&amp;gt;&amp;lt;width&amp;gt;WIDTH&amp;lt;/width&amp;gt;&amp;lt;height&amp;gt;HEIGHT&amp;lt;/height&amp;gt;&amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== allowd3d9ex ===&lt;br /&gt;
{{anchor|.3Callowd3d9ex.3E}}&lt;br /&gt;
Applies only to Windows Vista and up. Values: true/false. Allows Kodi to use Direct3D 9Ex, which is a bit more stable and robust than Direct3D 9.&lt;br /&gt;
&lt;br /&gt;
Default:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;allowd3d9ex&amp;gt;true&amp;lt;/allowd3d9ex&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== restrictcapsmask ===&lt;br /&gt;
{{anchor|.3Crestrictcapsmask.3E}}&lt;br /&gt;
Windows only. A bitmask to prevent Kodi from using detected texture capabilities of the GPU. This helps work around buggy hardware/drivers.&lt;br /&gt;
&lt;br /&gt;
1: prevent the use of compressed textures (DXT1, DXT3, DXT5)&lt;br /&gt;
2: prevent the use of non-power-of-two dimensions for textures&lt;br /&gt;
4: prevent the use of compressed textures with non-power-of-two dimensions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;restrictcapsmask&amp;gt;0&amp;lt;/restrictcapsmask&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== forced3d9ex ===&lt;br /&gt;
{{anchor|.3Cforced3d9ex.3E}}&lt;br /&gt;
Windows only: Kodi attempts to detect drivers released for a version earlier than Vista, to avoid using advanced features which are often not emulated correctly. The detection may be incorrect and this setting allows forcing the using of D3D9Ex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;forced3d9ex&amp;gt;false&amp;lt;/forced3d9ex&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== algorithmdirtyregions ===&lt;br /&gt;
{{anchor|.3Calgorithmdirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt; {{note|Some GPU/hardware configurations will have some minor issues (such as a visual &amp;quot;flicker&amp;quot;). For those situations try mode 2 or use the default (mode 3, which requires no advancedsetting). Almost all ARM-based devices (such as [[Android]]) willl likely have flickering issues.}}&lt;br /&gt;
 &lt;br /&gt;
Enable dirty-region processing. Dirty regions are any parts of the screen that have changed since the last frame. By not re-rendering what hasn&#039;t changed the GUI can be sped up. Because all GPUs work differently, only Mode 3, combined with nofliptimeout=0, is guaranteed to work for everyone without flickering issues. This mode will reduce CPU/GPU usage, but will not increase GUI speed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! value !! result !! description&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| Off&lt;br /&gt;
| The entire viewport is always rendered.&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
|Union&lt;br /&gt;
|All dirty regions are grouped into the smallest possible rectangle. This is typically the fastest mode for slower GPUs due to only making one pass.&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| {{nowrap|Cost reduction}}&lt;br /&gt;
| Each dirty region is presented separately, in as many passes as there are regions.&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| {{nowrap|Whole Screen}}&lt;br /&gt;
| The entire screen is rendered if there are any dirty regions. This, combined with nofliptimeout is a safe default for drivers that clear buffer contents (manifests as blinking or vibrating images). &#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|}&amp;lt;section end=&amp;quot;algorithmdirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;algorithmdirtyregions&amp;gt;1&amp;lt;/algorithmdirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== visualizedirtyregions ===&lt;br /&gt;
{{anchor|.3Cvisualizedirtyregions.3E}}&lt;br /&gt;
{{see also|HOW-TO:Modify dirty regions}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;Enable dirty-region visualization. Paints a rectangle over marked controls.&lt;br /&gt;
&lt;br /&gt;
* true: on&lt;br /&gt;
* false: off &#039;&#039;&#039;(Default)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{note|This is only a development mode and isn&#039;t of use to normal users.}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;visualizedirtyregions&amp;quot; /&amp;gt;&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gui&amp;gt;    &lt;br /&gt;
  &amp;lt;visualizedirtyregions&amp;gt;true&amp;lt;/visualizedirtyregions&amp;gt;&lt;br /&gt;
&amp;lt;/gui&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== showexitbutton ===&lt;br /&gt;
{{anchor|.3Cshowexitbutton.3E}}&lt;br /&gt;
Setting to hide the exit button, useful for people running appliance based setup&#039;s where exit would only confuse/complicate the user. Modifiable via the advancedsettings.xml by setting showexitbutton to false, default is true (show)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;showexitbutton&amp;gt;true&amp;lt;/showexitbutton&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== fullscreen ===&lt;br /&gt;
{{anchor|.3Cfullscreen.3E}}&lt;br /&gt;
Starts Kodi in full screen (check resolutions!).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fullscreen&amp;gt;false&amp;lt;/fullscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== splash ===&lt;br /&gt;
{{anchor|.3Csplash.3E}}&lt;br /&gt;
Set to false if you wish to disable the startup splash image. Defaults to true.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;splash&amp;gt;true&amp;lt;/splash&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== cputempcommand ===&lt;br /&gt;
{{anchor|.3Ccputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get CPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia and Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sed -e &#039;s/\([0-9]*\)[0-9]\{3\}.*/\1 C/&#039; /sys/class/thermal/thermal_zone0/temp&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;echo &amp;quot;$(sensors -u | tail -n64 | grep temp1_input | awk &#039;{print $2 }&#039; |awk &#039;{printf(&amp;quot;%d\n&amp;quot;,$1 + 0.5);}&#039;) C&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cputempcommand&amp;gt;sensors|sed -ne &amp;quot;s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p&amp;quot;&amp;lt;/cputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== gputempcommand ===&lt;br /&gt;
{{anchor|.3Cgputempcommand.3E}}&lt;br /&gt;
Provide a shell command Kodi will use to get GPU temperature. It should print out only &amp;quot;[temp as integer] [scale as one of &amp;quot;CcFf&amp;quot;]&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For Nvidia&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-settings -tq gpuCoreTemp) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;echo &amp;quot;$(nvidia-smi -q -d TEMPERATURE | grep Gpu | cut -c35-36) C&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
;&amp;lt;u&amp;gt;For ATI/AMD&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d &amp;quot;-&amp;quot; | cut -f 1 -d &amp;quot;.&amp;quot; | sed -e &amp;quot;s, ,,&amp;quot; | sed &#039;s/$/ C/&#039;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;u&amp;gt;For Raspberry Pi&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gputempcommand&amp;gt;/opt/vc/bin/vcgencmd measure_temp | sed -e &amp;quot;s/temp=//&amp;quot; -e &amp;quot;s/\..*&#039;/ /&amp;quot;&amp;lt;/gputempcommand&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== glrectanglehack ===&lt;br /&gt;
{{anchor|.3Cglrectanglehack.3E}}&lt;br /&gt;
Problems with ghosting or videos which are only played back in the left upper quarter? The following ATI hack may solve it.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;glrectanglehack&amp;gt;yes&amp;lt;/glrectanglehack&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== alwaysontop ===&lt;br /&gt;
{{anchor|.3Calwaysontop.3E}}&lt;br /&gt;
Added in XBMC v9.11 (Windows OS only). Keeps Kodi always on top when windowed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;alwaysontop&amp;gt;yes&amp;lt;/alwaysontop&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternate code.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;videoscreen&amp;gt;&lt;br /&gt;
        &amp;lt;fakefullscreen&amp;gt;false&amp;lt;/fakefullscreen&amp;gt;&lt;br /&gt;
    &amp;lt;/videoscreen&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Removed tags ==&lt;br /&gt;
{{anchor|Recently removed tags}}&lt;br /&gt;
* {{anchor|.3Cthumbsize.3E}}&#039;&#039;&#039;&amp;lt;thumbsize&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#imageres|imageres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cfanartheight.3E}}&#039;&#039;&#039;&amp;lt;fanartheight&amp;gt;&#039;&#039;&#039; - replaced by &amp;lt;[[#fanartres|fanartres]]&amp;gt; in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cdvdthumbs.3E}}&#039;&#039;&#039;&amp;lt;dvdthumbs&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbusydialogdelayms.3E}}&#039;&#039;&#039;&amp;lt;busydialogdelayms&amp;gt;&#039;&#039;&#039; - removed in v12 Frodo&lt;br /&gt;
* {{anchor|.3Cbginfoloadermaxthreads.3E}}&#039;&#039;&#039;&amp;lt;bginfoloadermaxthreads&amp;gt;&#039;&#039;&#039; - removed in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;showepginfoonselect&amp;gt;&#039;&#039;&#039; - replaced by a GUI setting in v13 Gotham&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;resample&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;forceDirectSound&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiophile&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;audiosinkbufferdurationmsec&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;allowtranscode44100&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;streamsilence&amp;gt;&#039;&#039;&#039; - These were various sub-tags for &amp;lt;audio&amp;gt; that were removed in v13 Gotham and either replaced by GUI settings or were no longer needed.&lt;br /&gt;
* {{anchor|.3Cenableairtunesdebuglog.3E}}&#039;&#039;&#039;&amp;lt;enableairtunesdebuglog&amp;gt;&#039;&#039;&#039; - replaced by a GUI option in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;videoDisableHi10pMultithreading&amp;gt;&#039;&#039;&#039; - renamed to &amp;lt;disableswmultithreading&amp;gt; in v14 Helix&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;hideallitems&amp;gt;&#039;&#039;&#039; - For both the &amp;lt;code&amp;gt;&amp;lt;videolibrary&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;musiclibrary&amp;gt;&amp;lt;/code&amp;gt; sections, this is replaced by a GUI option in v15 Isengard&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;SmallStepBackSeconds&amp;gt;&#039;&#039;&#039; - In v15 the &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; [[action ID]] has been replaced by &amp;lt;code&amp;gt;seek(-7)&amp;lt;/code&amp;gt; in default keymaps. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details. When the original &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; action ID is used it defaults to the first backwards [[skip steps|additive seeking value]].&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;timeseekforward&amp;gt;/&amp;lt;timeseekbackward&amp;gt;&#039;&#039;&#039; - In v15 these tags are replaced by GUI options via [[skip steps|additive seeking]], which is configured in the GUI. See &#039;&#039;&#039;[[skip steps]]&#039;&#039;&#039; for details.&lt;br /&gt;
* {{anchor|.3Ckaraoke.3E}}&#039;&#039;&#039;&amp;lt;karaoke&amp;gt;&#039;&#039;&#039; - In v16 all of the karaoke features in Kodi were removed.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useddsfanart&amp;gt;&#039;&#039;&#039; - removed in v17 Krypton.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;cachemembuffersize&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;readbufferfactor&amp;gt;&#039;&#039;&#039; - In v17 &amp;lt;cachemembuffersize&amp;gt; is renamed to &amp;lt;memorysize&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;readbufferfactor&amp;gt;&amp;lt;/code&amp;gt; is renamed to &amp;lt;code&amp;gt;&amp;lt;readfactor&amp;gt;&amp;lt;/code&amp;gt;. In addition, all three buffer related settings in &amp;lt;network&amp;gt; are moved out of &amp;lt;network&amp;gt; and into a new &amp;lt;cache&amp;gt; parent tag.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;minvideocachelevel&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;minaudiocachelevel&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;cacheindvdplayer&amp;gt;&#039;&#039;&#039; have been removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;useffmpegvda&amp;gt;&#039;&#039;&#039; - Tag was only used for development testing. Removed in v17.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;lingertime&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;nofliptimeout&amp;gt;&#039;&#039;&#039; - Removed in v17&lt;br /&gt;
&lt;br /&gt;
== guisettings.xml settings ==&lt;br /&gt;
You can also define the settings normally defined in the GUI (and stored in guisettings.xml) in advancedsettings.xml.  Most guisettings.xml settings defined in advancedsettings.xml will override the guisettings.xml values, and the settings will be removed completely from the interface.&lt;br /&gt;
&lt;br /&gt;
The easiest way to include a guisettings.xml setting is to first change the setting in the interface to the value that you want, and then open the &#039;&#039;&#039;[[userdata]]/guisettings.xml&#039;&#039;&#039; file and find the XML entry that corresponds to that setting.&lt;br /&gt;
&lt;br /&gt;
Then just add that entry to the advancedsettings.xml file.&lt;br /&gt;
&lt;br /&gt;
For instance, to set the Font Character Set (found in the appearance setting, in the Look and Feel section), you&#039;d open up guisettings.xml and find:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;lookandfeel&amp;gt;&lt;br /&gt;
    &amp;lt;charset&amp;gt;Hebrew (Windows)&amp;lt;/charset&amp;gt;&lt;br /&gt;
  &amp;lt;/lookandfeel&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simply take that entry and place it in advancedsettings.xml.  The option in Kodi&#039;s interface for the character set will then no longer be visible, and Kodi will always use the Hebrew (Windows) character set.&lt;br /&gt;
&lt;br /&gt;
{{Updated|17}}&lt;br /&gt;
{{DISPLAYTITLE:advancedsettings.xml}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=128715</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=128715"/>
		<updated>2017-02-21T13:07:59Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Data Kodi Scrapes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
The music library is created by scanning metadata that is embedded in the music files, not by looking at the file names or the folders they are located in. Kodi reads the following tags. The Kodi version shows that the tag was added from that version onwards, and the actual ag name is given in the various tag formats supported. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Version&lt;br /&gt;
! Vorbis (.Flac)&lt;br /&gt;
! ID3v2 (.mp3)&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
Having created the music library entries, Kodi can then scrape additional artist and album data from either online sources or from local NFO files. This can be automated as part of update library by enabling &amp;quot;Fetch additional information on update&amp;quot; setting. However, it can be best to scan music files and check the resulting library first, before scraping additional information.&lt;br /&gt;
&lt;br /&gt;
The Universal Album Scraper and The Universal Artist Scraper settings allow the user to choose which online sources are used for different pices of information.&lt;br /&gt;
&lt;br /&gt;
TADB - The Audio Database&lt;br /&gt;
AM - Allmusic&lt;br /&gt;
MB - Musicbrainz&lt;br /&gt;
&lt;br /&gt;
The additional information scraped is:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - TADB/AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
* Votes&lt;br /&gt;
&lt;br /&gt;
Notice that Genres, Year, Compilation and Label may have been derrived from tag data and these will take prescidence. These values can be overwritten by the scarped values if &amp;quot;Prefer Online Information&amp;quot; setting is enabled. But note that if an album is mis-idenitified by the scraper then with &amp;quot;Prefer Online Information&amp;quot; the album artists will also be replaced with those the scraper found.&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
{{updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=128714</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=128714"/>
		<updated>2017-02-21T12:56:50Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tags Kodi reads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
The music library is created by scanning metadata that is embedded in the music files, not by looking at the file names or the folders they are located in. Kodi reads the following tags. The Kodi version shows that the tag was added from that version onwards, and the actual ag name is given in the various tag formats supported. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Version&lt;br /&gt;
! Vorbis (.Flac)&lt;br /&gt;
! ID3v2 (.mp3)&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - TADB/AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
{{updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=128713</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=128713"/>
		<updated>2017-02-21T12:52:14Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tags Kodi reads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
Kodi scans the following metadata tags from music files, tag name given in the various tag formats supported. The Kodi version shows tag added from that version onwards:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Version&lt;br /&gt;
! Vorbis (.Flac)&lt;br /&gt;
! ID3v2 (.mp3)&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - TADB/AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
{{updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=126653</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=126653"/>
		<updated>2016-11-23T08:59:02Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tags Kodi reads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
Kodi reads the following tags:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Version&lt;br /&gt;
! Vorbis&lt;br /&gt;
! ID3v2&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - TADB/AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
{{updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=126642</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=126642"/>
		<updated>2016-11-15T11:54:55Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tags Kodi reads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
Kodi reads the following tags:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Version&lt;br /&gt;
! Vorbis&lt;br /&gt;
! ID3v2&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|LABEL&lt;br /&gt;
|TPUB&lt;br /&gt;
|LABEL&lt;br /&gt;
| ----:com.apple.iTunes:LABEL&lt;br /&gt;
|WM/Publisher&lt;br /&gt;
|-&lt;br /&gt;
|v17&lt;br /&gt;
|RELEASETYPE&lt;br /&gt;
|TXXX:MUSICBRAINZ ALBUM TYPE&lt;br /&gt;
|MUSICBRAINZ_ALBUMTYPE&lt;br /&gt;
| ---:com.apple.iTunes:MusicBrainz Album Type&lt;br /&gt;
|MusicBrainz/Album Type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - TADB/AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
{{updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=126616</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=126616"/>
		<updated>2016-11-07T17:41:41Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* album_artist */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Development]] {{l2| [[userdata folder]] }} }}&lt;br /&gt;
{{see also|Databases/Versions}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the Databases ==&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
=== Building SQL Queries ===&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the Databases with Kodi Python ===&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
== The Music Library ==&lt;br /&gt;
This database contains all information concerning music files that you&#039;ve added to the Music Library. It is used in the Music portion of Kodi. The following information is for version 32.&lt;br /&gt;
&lt;br /&gt;
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== albumview ====&lt;br /&gt;
A view of the album table with some additional fields aggregated from the songs of that album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genres&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Release Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Recording Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL for Album Image&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album user rating&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating)&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer ||Average of number of times songs on album are played &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song on album&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date any song on album was last played&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistview ====&lt;br /&gt;
A view that joins artist to artistinfo.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from Artist Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== songview ====&lt;br /&gt;
A view that joins song to album, path, artist, genre, thumb, and karaokedata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from Song Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Path&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumArtists || text || Album Artists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
&lt;br /&gt;
==== album ====&lt;br /&gt;
An album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album Artist Names (denormalized)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genres (denormalized)&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb(music)|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL for Album Image&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Recording Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album user rating&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || text || Date/time data scraped from online sources or NFO files&lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_artist ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || Order of artist names for credits&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_genre ====&lt;br /&gt;
This links albums with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfo ====&lt;br /&gt;
This table contains additional information about an album, such as Rating, Moods, Styles, Reviews, Image URL, and type.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Album Image&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album Rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfosong ====&lt;br /&gt;
This table links songs to albums and stores the duration of each track.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfoSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Foreign key to [[Databases#albuminfo|albuminfo table]]&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Track #&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|url || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artist ====&lt;br /&gt;
This table stores the name of each artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistinfo ====&lt;br /&gt;
This table stores relevant information about each artist, such as when they were born, Fan Art URL&#039;s, biographical information, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtistInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist&#039;s Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist&#039;s Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== content ====&lt;br /&gt;
This table is related to the scraper.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strScraperPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== discography ====&lt;br /&gt;
Links albums to artists with the year produced.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || text || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strYear || text || Year Album Produced.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== exartistablum ====&lt;br /&gt;
Links artists to albums&lt;br /&gt;
&lt;br /&gt;
==== exartistsong ====&lt;br /&gt;
Links artists to songs&lt;br /&gt;
&lt;br /&gt;
==== exgenrealbum ====&lt;br /&gt;
Links genres to albums&lt;br /&gt;
&lt;br /&gt;
==== exgenresong ====&lt;br /&gt;
Links genres to songs&lt;br /&gt;
&lt;br /&gt;
==== genre(music) ====&lt;br /&gt;
This table contains genre titles.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || varchar(256) || Genre Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== karaokedata ====&lt;br /&gt;
This table contains karaoke specific information for certain songs&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaralyrics || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraLyFileCRC || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path(music) ====&lt;br /&gt;
This table contains paths and hashes of files in the Music Database.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Paths&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song ====&lt;br /&gt;
This table contains song information such as Name, Track Title, MusicBrainz information, times played, last played, rating, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_artist ====&lt;br /&gt;
This table links songs to artists.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|boolFeatured || integer || Is Artist Featured on song?&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_genre ====&lt;br /&gt;
This table links the songs with their genre.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== thumb ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version(music) ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of the music database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Video Library ==&lt;br /&gt;
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of Kodi. The following information is for version 75.&lt;br /&gt;
&lt;br /&gt;
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== episodeview ====&lt;br /&gt;
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Network&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || First Aired&lt;br /&gt;
|-&lt;br /&gt;
|mpaa || text || Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|strShowPath || text || Show Path URL&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movieview ====&lt;br /&gt;
A view that joins movie to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideoview ====&lt;br /&gt;
A view that joins musicvideo to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowview ====&lt;br /&gt;
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The information in the Video Library is organized into the following tables. Several large tables (such as [[Databases#episode|episode]], [[Databases#movie|movie]], [[Databases#settings|settings]], and [[Databases#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.&lt;br /&gt;
&lt;br /&gt;
==== actorlinkepisode ====&lt;br /&gt;
This table links actors to episodes and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this episode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinkmovie ====&lt;br /&gt;
This table links actors to movies and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinktvshow ====&lt;br /&gt;
This table links actors to TV shows and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this TV show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actors ====&lt;br /&gt;
This table stores actor, artist, director, and writer information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strActor|| integer || Name of the actor, artist, director, or writer&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
This table stores URLs for video art metadata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id|| integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id|| integer || The id of the media this piece of art is for&lt;br /&gt;
|-&lt;br /&gt;
|media_type|| text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor&lt;br /&gt;
|-&lt;br /&gt;
|type|| text|| The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart&lt;br /&gt;
|-&lt;br /&gt;
|url|| text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistlinkmusicvideo ====&lt;br /&gt;
This table links artists to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== bookmark ====&lt;br /&gt;
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idBookmark || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|timeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || integer || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|thumbNailImage || text || Thumbnail for bookmark&lt;br /&gt;
|-&lt;br /&gt;
|player || text || Player used to store bookmark&lt;br /&gt;
|-&lt;br /&gt;
|playerState || text || Player&#039;s internal state in XML&lt;br /&gt;
|-&lt;br /&gt;
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country ====&lt;br /&gt;
This table lists countries.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strCountry || text || Country Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== countrylinkmovie ====&lt;br /&gt;
This table links countries to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Foreign key to [[Databases#country|country table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer ||Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkepisode ====&lt;br /&gt;
This table links directors to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || [Appears to be unused]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmovie ====&lt;br /&gt;
This table links directors to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmusicvideo ====&lt;br /&gt;
This table links directors to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinktvshow ====&lt;br /&gt;
This table links directors to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== episode ====&lt;br /&gt;
This table stores television episode information. Information concerning the series is stored in [[Databases#tvshow|tvshow]]. To link an episode to its parent series, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== files ====&lt;br /&gt;
This table stores filenames and links the path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre ====&lt;br /&gt;
This table stores genre information. For convenience the contents are duplicated in [[Databases#movie|movie]] and [[Databases#tvshow|tvshow]], so a join isn&#039;t necessary.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || text || Genre label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmovie ====&lt;br /&gt;
This table links genres to movies. (The contents are also stored in movies.c14, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmusicvideo ====&lt;br /&gt;
This table links genres to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinktvshow ====&lt;br /&gt;
This table links genres to TV show. (The contents are also stored in tvshow.c08, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movie ====&lt;br /&gt;
This table stores movie information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movielinktvshow ====&lt;br /&gt;
This table links movies to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideo ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path ====&lt;br /&gt;
This table stores path information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || Type of content (tvshows, movies, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|strScraper || text || XML file of scraper used for this path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash&lt;br /&gt;
|-&lt;br /&gt;
|scanRecursive || integer || Recursive scan setting&lt;br /&gt;
|-&lt;br /&gt;
|useFolderNames || bool || User folder names setting&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Custom settings used by scraper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== seasons ====&lt;br /&gt;
This table stores the links between tv show and seasons.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idShow|| integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|season || integer || Season number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== sets ====&lt;br /&gt;
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== settings ====&lt;br /&gt;
This table stores settings for individual files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|Interleaved || bool || Interleaved&lt;br /&gt;
|-&lt;br /&gt;
|Nocache || bool || NoCache&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlace || bool || Deinterlace&lt;br /&gt;
|-&lt;br /&gt;
|FilmGrain|| integer || FilmGrain&lt;br /&gt;
|-&lt;br /&gt;
|ViewMode|| integer || ViewMode&lt;br /&gt;
|-&lt;br /&gt;
|ZoomAmount|| float || ZoomAmount&lt;br /&gt;
|-&lt;br /&gt;
|PixelRatio|| float || PixelRatio&lt;br /&gt;
|-&lt;br /&gt;
|AudioStream || integer || Selected audio stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleStream || integer || Selected subtitle stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleDelay || float || Amount of delay for subtitles&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleOn || bool || Enable subtitles&lt;br /&gt;
|-&lt;br /&gt;
|Brightness || integer || Brightness &lt;br /&gt;
|-&lt;br /&gt;
|Contrast || integer || Contrast &lt;br /&gt;
|-&lt;br /&gt;
|Gamma || integer || Gamma &lt;br /&gt;
|-&lt;br /&gt;
|VolumeAmplification || float || VolumeAmplification &lt;br /&gt;
|-&lt;br /&gt;
|AudioDelay || float || AudioDelay &lt;br /&gt;
|-&lt;br /&gt;
|OutputToAllSpeakers || bool || OutputToAllSpeakers &lt;br /&gt;
|-&lt;br /&gt;
|ResumeTime || integer || ResumeTime &lt;br /&gt;
|-&lt;br /&gt;
|Crop || bool || Crop &lt;br /&gt;
|-&lt;br /&gt;
|CropLeft || integer || CropLeft &lt;br /&gt;
|-&lt;br /&gt;
|CropRight || integer || CropRight &lt;br /&gt;
|-&lt;br /&gt;
|CropTop || integer || CropTop &lt;br /&gt;
|-&lt;br /&gt;
|CropBottom || integer || CropBottom &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== stacktimes ====&lt;br /&gt;
This table stores playing times for files (used for playing multi-file videos).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|times|| text || Times&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== streamdetails ====&lt;br /&gt;
This table contains information regarding codecs used, aspect ratios etc&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles&lt;br /&gt;
|-&lt;br /&gt;
|strVideoCodec|| text || Video codex (xvid etc)&lt;br /&gt;
|-&lt;br /&gt;
|fVideoAspect|| real || Aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
|iVideoWidth|| integer || Width of the video&lt;br /&gt;
|-&lt;br /&gt;
|iVideoHeight|| integer || Height of the video&lt;br /&gt;
|-&lt;br /&gt;
|strAudioCodec|| text || Audio codec (aac, mp3 etc)&lt;br /&gt;
|-&lt;br /&gt;
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)&lt;br /&gt;
|-&lt;br /&gt;
|strAudioLanguage|| text || Language of the audio track&lt;br /&gt;
|-&lt;br /&gt;
|strSubtitleLanguage|| text || Language of the subtitles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio ====&lt;br /&gt;
This table stores studio information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Studio Label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmovie ====&lt;br /&gt;
This table links studios to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmusicvideo ====&lt;br /&gt;
This table links studios to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#movievideo|movievideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinktvshow ====&lt;br /&gt;
This table links studios to tv shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tag ====&lt;br /&gt;
This stores tags.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Tag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== taglinks ====&lt;br /&gt;
This table links tags to various media.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Foreign key to [[Databases#tag|tag table]]&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow ====&lt;br /&gt;
This table stores information about a television series. Information concerning the shows episodes is stored in [[Databases#episode|episode]]. To link a TV show to its episodes, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkepisode ====&lt;br /&gt;
This table links TV shows (series) to episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign Key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign Key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkpath ====&lt;br /&gt;
This table links a TV show to its path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkepisode ====&lt;br /&gt;
This table links writers to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkmovie ====&lt;br /&gt;
This table links writers to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The View Modes Database ==&lt;br /&gt;
Kodi can track a user&#039;s View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating Kodi.&lt;br /&gt;
&lt;br /&gt;
The View Modes database is stored in userdata/Database/ViewModes.db.&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The View Modes database uses only two tables. Most of the useful information is in [[Databases#view|view]].&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== view ====&lt;br /&gt;
This table stores details on the saved view mode for all known paths.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idView || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|window || integer || Window GUI ID&lt;br /&gt;
|-&lt;br /&gt;
|path || text || Path to trigger the view on&lt;br /&gt;
|-&lt;br /&gt;
|viewMode || integer || View Mode&lt;br /&gt;
|-&lt;br /&gt;
|sortMethod || integer || ID of sort method&lt;br /&gt;
|-&lt;br /&gt;
|sortOrder || integer || Sort order (ascending or descending)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Version table]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=126615</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=126615"/>
		<updated>2016-11-07T17:39:21Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* album */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Development]] {{l2| [[userdata folder]] }} }}&lt;br /&gt;
{{see also|Databases/Versions}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the Databases ==&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
=== Building SQL Queries ===&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the Databases with Kodi Python ===&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
== The Music Library ==&lt;br /&gt;
This database contains all information concerning music files that you&#039;ve added to the Music Library. It is used in the Music portion of Kodi. The following information is for version 32.&lt;br /&gt;
&lt;br /&gt;
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== albumview ====&lt;br /&gt;
A view of the album table with some additional fields aggregated from the songs of that album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genres&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Release Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Recording Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL for Album Image&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album user rating&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating)&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer ||Average of number of times songs on album are played &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song on album&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date any song on album was last played&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistview ====&lt;br /&gt;
A view that joins artist to artistinfo.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from Artist Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== songview ====&lt;br /&gt;
A view that joins song to album, path, artist, genre, thumb, and karaokedata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from Song Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Path&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumArtists || text || Album Artists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
&lt;br /&gt;
==== album ====&lt;br /&gt;
An album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album Artist Names (denormalized)&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genres (denormalized)&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb(music)|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL for Album Image&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Recording Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album user rating&lt;br /&gt;
|-&lt;br /&gt;
|lastScraped || text || Date/time data scraped from online sources or NFO files&lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_artist ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integre || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|boolFeatured || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_genre ====&lt;br /&gt;
This links albums with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfo ====&lt;br /&gt;
This table contains additional information about an album, such as Rating, Moods, Styles, Reviews, Image URL, and type.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Album Image&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album Rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfosong ====&lt;br /&gt;
This table links songs to albums and stores the duration of each track.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfoSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Foreign key to [[Databases#albuminfo|albuminfo table]]&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Track #&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|url || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artist ====&lt;br /&gt;
This table stores the name of each artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistinfo ====&lt;br /&gt;
This table stores relevant information about each artist, such as when they were born, Fan Art URL&#039;s, biographical information, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtistInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist&#039;s Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist&#039;s Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== content ====&lt;br /&gt;
This table is related to the scraper.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strScraperPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== discography ====&lt;br /&gt;
Links albums to artists with the year produced.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || text || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strYear || text || Year Album Produced.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== exartistablum ====&lt;br /&gt;
Links artists to albums&lt;br /&gt;
&lt;br /&gt;
==== exartistsong ====&lt;br /&gt;
Links artists to songs&lt;br /&gt;
&lt;br /&gt;
==== exgenrealbum ====&lt;br /&gt;
Links genres to albums&lt;br /&gt;
&lt;br /&gt;
==== exgenresong ====&lt;br /&gt;
Links genres to songs&lt;br /&gt;
&lt;br /&gt;
==== genre(music) ====&lt;br /&gt;
This table contains genre titles.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || varchar(256) || Genre Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== karaokedata ====&lt;br /&gt;
This table contains karaoke specific information for certain songs&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaralyrics || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraLyFileCRC || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path(music) ====&lt;br /&gt;
This table contains paths and hashes of files in the Music Database.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Paths&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song ====&lt;br /&gt;
This table contains song information such as Name, Track Title, MusicBrainz information, times played, last played, rating, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_artist ====&lt;br /&gt;
This table links songs to artists.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|boolFeatured || integer || Is Artist Featured on song?&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_genre ====&lt;br /&gt;
This table links the songs with their genre.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== thumb ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version(music) ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of the music database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Video Library ==&lt;br /&gt;
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of Kodi. The following information is for version 75.&lt;br /&gt;
&lt;br /&gt;
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== episodeview ====&lt;br /&gt;
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Network&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || First Aired&lt;br /&gt;
|-&lt;br /&gt;
|mpaa || text || Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|strShowPath || text || Show Path URL&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movieview ====&lt;br /&gt;
A view that joins movie to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideoview ====&lt;br /&gt;
A view that joins musicvideo to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowview ====&lt;br /&gt;
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The information in the Video Library is organized into the following tables. Several large tables (such as [[Databases#episode|episode]], [[Databases#movie|movie]], [[Databases#settings|settings]], and [[Databases#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.&lt;br /&gt;
&lt;br /&gt;
==== actorlinkepisode ====&lt;br /&gt;
This table links actors to episodes and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this episode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinkmovie ====&lt;br /&gt;
This table links actors to movies and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinktvshow ====&lt;br /&gt;
This table links actors to TV shows and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this TV show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actors ====&lt;br /&gt;
This table stores actor, artist, director, and writer information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strActor|| integer || Name of the actor, artist, director, or writer&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
This table stores URLs for video art metadata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id|| integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id|| integer || The id of the media this piece of art is for&lt;br /&gt;
|-&lt;br /&gt;
|media_type|| text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor&lt;br /&gt;
|-&lt;br /&gt;
|type|| text|| The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart&lt;br /&gt;
|-&lt;br /&gt;
|url|| text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistlinkmusicvideo ====&lt;br /&gt;
This table links artists to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== bookmark ====&lt;br /&gt;
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idBookmark || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|timeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || integer || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|thumbNailImage || text || Thumbnail for bookmark&lt;br /&gt;
|-&lt;br /&gt;
|player || text || Player used to store bookmark&lt;br /&gt;
|-&lt;br /&gt;
|playerState || text || Player&#039;s internal state in XML&lt;br /&gt;
|-&lt;br /&gt;
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country ====&lt;br /&gt;
This table lists countries.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strCountry || text || Country Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== countrylinkmovie ====&lt;br /&gt;
This table links countries to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Foreign key to [[Databases#country|country table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer ||Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkepisode ====&lt;br /&gt;
This table links directors to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || [Appears to be unused]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmovie ====&lt;br /&gt;
This table links directors to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmusicvideo ====&lt;br /&gt;
This table links directors to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinktvshow ====&lt;br /&gt;
This table links directors to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== episode ====&lt;br /&gt;
This table stores television episode information. Information concerning the series is stored in [[Databases#tvshow|tvshow]]. To link an episode to its parent series, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== files ====&lt;br /&gt;
This table stores filenames and links the path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre ====&lt;br /&gt;
This table stores genre information. For convenience the contents are duplicated in [[Databases#movie|movie]] and [[Databases#tvshow|tvshow]], so a join isn&#039;t necessary.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || text || Genre label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmovie ====&lt;br /&gt;
This table links genres to movies. (The contents are also stored in movies.c14, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmusicvideo ====&lt;br /&gt;
This table links genres to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinktvshow ====&lt;br /&gt;
This table links genres to TV show. (The contents are also stored in tvshow.c08, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movie ====&lt;br /&gt;
This table stores movie information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movielinktvshow ====&lt;br /&gt;
This table links movies to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideo ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path ====&lt;br /&gt;
This table stores path information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || Type of content (tvshows, movies, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|strScraper || text || XML file of scraper used for this path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash&lt;br /&gt;
|-&lt;br /&gt;
|scanRecursive || integer || Recursive scan setting&lt;br /&gt;
|-&lt;br /&gt;
|useFolderNames || bool || User folder names setting&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Custom settings used by scraper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== seasons ====&lt;br /&gt;
This table stores the links between tv show and seasons.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idShow|| integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|season || integer || Season number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== sets ====&lt;br /&gt;
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== settings ====&lt;br /&gt;
This table stores settings for individual files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|Interleaved || bool || Interleaved&lt;br /&gt;
|-&lt;br /&gt;
|Nocache || bool || NoCache&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlace || bool || Deinterlace&lt;br /&gt;
|-&lt;br /&gt;
|FilmGrain|| integer || FilmGrain&lt;br /&gt;
|-&lt;br /&gt;
|ViewMode|| integer || ViewMode&lt;br /&gt;
|-&lt;br /&gt;
|ZoomAmount|| float || ZoomAmount&lt;br /&gt;
|-&lt;br /&gt;
|PixelRatio|| float || PixelRatio&lt;br /&gt;
|-&lt;br /&gt;
|AudioStream || integer || Selected audio stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleStream || integer || Selected subtitle stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleDelay || float || Amount of delay for subtitles&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleOn || bool || Enable subtitles&lt;br /&gt;
|-&lt;br /&gt;
|Brightness || integer || Brightness &lt;br /&gt;
|-&lt;br /&gt;
|Contrast || integer || Contrast &lt;br /&gt;
|-&lt;br /&gt;
|Gamma || integer || Gamma &lt;br /&gt;
|-&lt;br /&gt;
|VolumeAmplification || float || VolumeAmplification &lt;br /&gt;
|-&lt;br /&gt;
|AudioDelay || float || AudioDelay &lt;br /&gt;
|-&lt;br /&gt;
|OutputToAllSpeakers || bool || OutputToAllSpeakers &lt;br /&gt;
|-&lt;br /&gt;
|ResumeTime || integer || ResumeTime &lt;br /&gt;
|-&lt;br /&gt;
|Crop || bool || Crop &lt;br /&gt;
|-&lt;br /&gt;
|CropLeft || integer || CropLeft &lt;br /&gt;
|-&lt;br /&gt;
|CropRight || integer || CropRight &lt;br /&gt;
|-&lt;br /&gt;
|CropTop || integer || CropTop &lt;br /&gt;
|-&lt;br /&gt;
|CropBottom || integer || CropBottom &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== stacktimes ====&lt;br /&gt;
This table stores playing times for files (used for playing multi-file videos).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|times|| text || Times&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== streamdetails ====&lt;br /&gt;
This table contains information regarding codecs used, aspect ratios etc&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles&lt;br /&gt;
|-&lt;br /&gt;
|strVideoCodec|| text || Video codex (xvid etc)&lt;br /&gt;
|-&lt;br /&gt;
|fVideoAspect|| real || Aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
|iVideoWidth|| integer || Width of the video&lt;br /&gt;
|-&lt;br /&gt;
|iVideoHeight|| integer || Height of the video&lt;br /&gt;
|-&lt;br /&gt;
|strAudioCodec|| text || Audio codec (aac, mp3 etc)&lt;br /&gt;
|-&lt;br /&gt;
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)&lt;br /&gt;
|-&lt;br /&gt;
|strAudioLanguage|| text || Language of the audio track&lt;br /&gt;
|-&lt;br /&gt;
|strSubtitleLanguage|| text || Language of the subtitles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio ====&lt;br /&gt;
This table stores studio information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Studio Label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmovie ====&lt;br /&gt;
This table links studios to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmusicvideo ====&lt;br /&gt;
This table links studios to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#movievideo|movievideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinktvshow ====&lt;br /&gt;
This table links studios to tv shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tag ====&lt;br /&gt;
This stores tags.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Tag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== taglinks ====&lt;br /&gt;
This table links tags to various media.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Foreign key to [[Databases#tag|tag table]]&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow ====&lt;br /&gt;
This table stores information about a television series. Information concerning the shows episodes is stored in [[Databases#episode|episode]]. To link a TV show to its episodes, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkepisode ====&lt;br /&gt;
This table links TV shows (series) to episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign Key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign Key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkpath ====&lt;br /&gt;
This table links a TV show to its path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkepisode ====&lt;br /&gt;
This table links writers to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkmovie ====&lt;br /&gt;
This table links writers to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The View Modes Database ==&lt;br /&gt;
Kodi can track a user&#039;s View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating Kodi.&lt;br /&gt;
&lt;br /&gt;
The View Modes database is stored in userdata/Database/ViewModes.db.&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The View Modes database uses only two tables. Most of the useful information is in [[Databases#view|view]].&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== view ====&lt;br /&gt;
This table stores details on the saved view mode for all known paths.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idView || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|window || integer || Window GUI ID&lt;br /&gt;
|-&lt;br /&gt;
|path || text || Path to trigger the view on&lt;br /&gt;
|-&lt;br /&gt;
|viewMode || integer || View Mode&lt;br /&gt;
|-&lt;br /&gt;
|sortMethod || integer || ID of sort method&lt;br /&gt;
|-&lt;br /&gt;
|sortOrder || integer || Sort order (ascending or descending)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Version table]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=126614</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=126614"/>
		<updated>2016-11-07T17:30:31Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* albumview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Development]] {{l2| [[userdata folder]] }} }}&lt;br /&gt;
{{see also|Databases/Versions}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the Databases ==&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
=== Building SQL Queries ===&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the Databases with Kodi Python ===&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
== The Music Library ==&lt;br /&gt;
This database contains all information concerning music files that you&#039;ve added to the Music Library. It is used in the Music portion of Kodi. The following information is for version 32.&lt;br /&gt;
&lt;br /&gt;
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== albumview ====&lt;br /&gt;
A view of the album table with some additional fields aggregated from the songs of that album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genres&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Release Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Recording Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL for Album Image&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album user rating&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating)&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer ||Average of number of times songs on album are played &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Music file timestamp of newest song on album&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date any song on album was last played&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistview ====&lt;br /&gt;
A view that joins artist to artistinfo.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from Artist Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== songview ====&lt;br /&gt;
A view that joins song to album, path, artist, genre, thumb, and karaokedata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from Song Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Path&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumArtists || text || Album Artists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
&lt;br /&gt;
==== album ====&lt;br /&gt;
This table contains basic album information.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text|| Artist Name&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genre&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb(music)|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_artist ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integre || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|boolFeatured || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_genre ====&lt;br /&gt;
This links albums with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfo ====&lt;br /&gt;
This table contains additional information about an album, such as Rating, Moods, Styles, Reviews, Image URL, and type.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Album Image&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album Rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfosong ====&lt;br /&gt;
This table links songs to albums and stores the duration of each track.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfoSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Foreign key to [[Databases#albuminfo|albuminfo table]]&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Track #&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|url || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artist ====&lt;br /&gt;
This table stores the name of each artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistinfo ====&lt;br /&gt;
This table stores relevant information about each artist, such as when they were born, Fan Art URL&#039;s, biographical information, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtistInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist&#039;s Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist&#039;s Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== content ====&lt;br /&gt;
This table is related to the scraper.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strScraperPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== discography ====&lt;br /&gt;
Links albums to artists with the year produced.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || text || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strYear || text || Year Album Produced.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== exartistablum ====&lt;br /&gt;
Links artists to albums&lt;br /&gt;
&lt;br /&gt;
==== exartistsong ====&lt;br /&gt;
Links artists to songs&lt;br /&gt;
&lt;br /&gt;
==== exgenrealbum ====&lt;br /&gt;
Links genres to albums&lt;br /&gt;
&lt;br /&gt;
==== exgenresong ====&lt;br /&gt;
Links genres to songs&lt;br /&gt;
&lt;br /&gt;
==== genre(music) ====&lt;br /&gt;
This table contains genre titles.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || varchar(256) || Genre Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== karaokedata ====&lt;br /&gt;
This table contains karaoke specific information for certain songs&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaralyrics || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraLyFileCRC || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path(music) ====&lt;br /&gt;
This table contains paths and hashes of files in the Music Database.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Paths&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song ====&lt;br /&gt;
This table contains song information such as Name, Track Title, MusicBrainz information, times played, last played, rating, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_artist ====&lt;br /&gt;
This table links songs to artists.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|boolFeatured || integer || Is Artist Featured on song?&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_genre ====&lt;br /&gt;
This table links the songs with their genre.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== thumb ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version(music) ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of the music database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Video Library ==&lt;br /&gt;
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of Kodi. The following information is for version 75.&lt;br /&gt;
&lt;br /&gt;
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== episodeview ====&lt;br /&gt;
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Network&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || First Aired&lt;br /&gt;
|-&lt;br /&gt;
|mpaa || text || Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|strShowPath || text || Show Path URL&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movieview ====&lt;br /&gt;
A view that joins movie to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideoview ====&lt;br /&gt;
A view that joins musicvideo to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowview ====&lt;br /&gt;
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The information in the Video Library is organized into the following tables. Several large tables (such as [[Databases#episode|episode]], [[Databases#movie|movie]], [[Databases#settings|settings]], and [[Databases#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.&lt;br /&gt;
&lt;br /&gt;
==== actorlinkepisode ====&lt;br /&gt;
This table links actors to episodes and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this episode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinkmovie ====&lt;br /&gt;
This table links actors to movies and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinktvshow ====&lt;br /&gt;
This table links actors to TV shows and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this TV show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actors ====&lt;br /&gt;
This table stores actor, artist, director, and writer information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strActor|| integer || Name of the actor, artist, director, or writer&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
This table stores URLs for video art metadata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id|| integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id|| integer || The id of the media this piece of art is for&lt;br /&gt;
|-&lt;br /&gt;
|media_type|| text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor&lt;br /&gt;
|-&lt;br /&gt;
|type|| text|| The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart&lt;br /&gt;
|-&lt;br /&gt;
|url|| text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistlinkmusicvideo ====&lt;br /&gt;
This table links artists to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== bookmark ====&lt;br /&gt;
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idBookmark || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|timeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || integer || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|thumbNailImage || text || Thumbnail for bookmark&lt;br /&gt;
|-&lt;br /&gt;
|player || text || Player used to store bookmark&lt;br /&gt;
|-&lt;br /&gt;
|playerState || text || Player&#039;s internal state in XML&lt;br /&gt;
|-&lt;br /&gt;
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country ====&lt;br /&gt;
This table lists countries.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strCountry || text || Country Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== countrylinkmovie ====&lt;br /&gt;
This table links countries to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Foreign key to [[Databases#country|country table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer ||Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkepisode ====&lt;br /&gt;
This table links directors to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || [Appears to be unused]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmovie ====&lt;br /&gt;
This table links directors to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmusicvideo ====&lt;br /&gt;
This table links directors to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinktvshow ====&lt;br /&gt;
This table links directors to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== episode ====&lt;br /&gt;
This table stores television episode information. Information concerning the series is stored in [[Databases#tvshow|tvshow]]. To link an episode to its parent series, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== files ====&lt;br /&gt;
This table stores filenames and links the path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre ====&lt;br /&gt;
This table stores genre information. For convenience the contents are duplicated in [[Databases#movie|movie]] and [[Databases#tvshow|tvshow]], so a join isn&#039;t necessary.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || text || Genre label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmovie ====&lt;br /&gt;
This table links genres to movies. (The contents are also stored in movies.c14, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmusicvideo ====&lt;br /&gt;
This table links genres to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinktvshow ====&lt;br /&gt;
This table links genres to TV show. (The contents are also stored in tvshow.c08, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movie ====&lt;br /&gt;
This table stores movie information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movielinktvshow ====&lt;br /&gt;
This table links movies to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideo ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path ====&lt;br /&gt;
This table stores path information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || Type of content (tvshows, movies, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|strScraper || text || XML file of scraper used for this path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash&lt;br /&gt;
|-&lt;br /&gt;
|scanRecursive || integer || Recursive scan setting&lt;br /&gt;
|-&lt;br /&gt;
|useFolderNames || bool || User folder names setting&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Custom settings used by scraper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== seasons ====&lt;br /&gt;
This table stores the links between tv show and seasons.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idShow|| integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|season || integer || Season number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== sets ====&lt;br /&gt;
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== settings ====&lt;br /&gt;
This table stores settings for individual files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|Interleaved || bool || Interleaved&lt;br /&gt;
|-&lt;br /&gt;
|Nocache || bool || NoCache&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlace || bool || Deinterlace&lt;br /&gt;
|-&lt;br /&gt;
|FilmGrain|| integer || FilmGrain&lt;br /&gt;
|-&lt;br /&gt;
|ViewMode|| integer || ViewMode&lt;br /&gt;
|-&lt;br /&gt;
|ZoomAmount|| float || ZoomAmount&lt;br /&gt;
|-&lt;br /&gt;
|PixelRatio|| float || PixelRatio&lt;br /&gt;
|-&lt;br /&gt;
|AudioStream || integer || Selected audio stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleStream || integer || Selected subtitle stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleDelay || float || Amount of delay for subtitles&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleOn || bool || Enable subtitles&lt;br /&gt;
|-&lt;br /&gt;
|Brightness || integer || Brightness &lt;br /&gt;
|-&lt;br /&gt;
|Contrast || integer || Contrast &lt;br /&gt;
|-&lt;br /&gt;
|Gamma || integer || Gamma &lt;br /&gt;
|-&lt;br /&gt;
|VolumeAmplification || float || VolumeAmplification &lt;br /&gt;
|-&lt;br /&gt;
|AudioDelay || float || AudioDelay &lt;br /&gt;
|-&lt;br /&gt;
|OutputToAllSpeakers || bool || OutputToAllSpeakers &lt;br /&gt;
|-&lt;br /&gt;
|ResumeTime || integer || ResumeTime &lt;br /&gt;
|-&lt;br /&gt;
|Crop || bool || Crop &lt;br /&gt;
|-&lt;br /&gt;
|CropLeft || integer || CropLeft &lt;br /&gt;
|-&lt;br /&gt;
|CropRight || integer || CropRight &lt;br /&gt;
|-&lt;br /&gt;
|CropTop || integer || CropTop &lt;br /&gt;
|-&lt;br /&gt;
|CropBottom || integer || CropBottom &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== stacktimes ====&lt;br /&gt;
This table stores playing times for files (used for playing multi-file videos).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|times|| text || Times&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== streamdetails ====&lt;br /&gt;
This table contains information regarding codecs used, aspect ratios etc&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles&lt;br /&gt;
|-&lt;br /&gt;
|strVideoCodec|| text || Video codex (xvid etc)&lt;br /&gt;
|-&lt;br /&gt;
|fVideoAspect|| real || Aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
|iVideoWidth|| integer || Width of the video&lt;br /&gt;
|-&lt;br /&gt;
|iVideoHeight|| integer || Height of the video&lt;br /&gt;
|-&lt;br /&gt;
|strAudioCodec|| text || Audio codec (aac, mp3 etc)&lt;br /&gt;
|-&lt;br /&gt;
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)&lt;br /&gt;
|-&lt;br /&gt;
|strAudioLanguage|| text || Language of the audio track&lt;br /&gt;
|-&lt;br /&gt;
|strSubtitleLanguage|| text || Language of the subtitles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio ====&lt;br /&gt;
This table stores studio information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Studio Label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmovie ====&lt;br /&gt;
This table links studios to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmusicvideo ====&lt;br /&gt;
This table links studios to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#movievideo|movievideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinktvshow ====&lt;br /&gt;
This table links studios to tv shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tag ====&lt;br /&gt;
This stores tags.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Tag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== taglinks ====&lt;br /&gt;
This table links tags to various media.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Foreign key to [[Databases#tag|tag table]]&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow ====&lt;br /&gt;
This table stores information about a television series. Information concerning the shows episodes is stored in [[Databases#episode|episode]]. To link a TV show to its episodes, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkepisode ====&lt;br /&gt;
This table links TV shows (series) to episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign Key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign Key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkpath ====&lt;br /&gt;
This table links a TV show to its path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkepisode ====&lt;br /&gt;
This table links writers to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkmovie ====&lt;br /&gt;
This table links writers to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The View Modes Database ==&lt;br /&gt;
Kodi can track a user&#039;s View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating Kodi.&lt;br /&gt;
&lt;br /&gt;
The View Modes database is stored in userdata/Database/ViewModes.db.&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The View Modes database uses only two tables. Most of the useful information is in [[Databases#view|view]].&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== view ====&lt;br /&gt;
This table stores details on the saved view mode for all known paths.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idView || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|window || integer || Window GUI ID&lt;br /&gt;
|-&lt;br /&gt;
|path || text || Path to trigger the view on&lt;br /&gt;
|-&lt;br /&gt;
|viewMode || integer || View Mode&lt;br /&gt;
|-&lt;br /&gt;
|sortMethod || integer || ID of sort method&lt;br /&gt;
|-&lt;br /&gt;
|sortOrder || integer || Sort order (ascending or descending)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Version table]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=126613</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=126613"/>
		<updated>2016-11-07T17:26:32Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* albumview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Development]] {{l2| [[userdata folder]] }} }}&lt;br /&gt;
{{see also|Databases/Versions}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the Databases ==&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
=== Building SQL Queries ===&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the Databases with Kodi Python ===&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
== The Music Library ==&lt;br /&gt;
This database contains all information concerning music files that you&#039;ve added to the Music Library. It is used in the Music portion of Kodi. The following information is for version 32.&lt;br /&gt;
&lt;br /&gt;
The music database is stored in userdata/Database/MyMusicXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about songs and albums in the Music Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== albumview ====&lt;br /&gt;
A view of the album table with some additional fields aggregated from the songs of that album.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Album Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genres&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Release Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Recording Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type e.g. &amp;quot;Soundtrack / Live&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL for Album Image&lt;br /&gt;
|-&lt;br /&gt;
|fRating || float || Album rating&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album user rating&lt;br /&gt;
|-&lt;br /&gt;
|iVotes || integer || Album votes (for rating)&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || Compilation flag&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer ||Average of number of times songs on album are played &lt;br /&gt;
|-&lt;br /&gt;
|strReleaseType || text || Internal type - &amp;quot;album&amp;quot; or &amp;quot;single&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || date || Music file timestamp of newest song on album&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || date || Date any song on album was last played&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistview ====&lt;br /&gt;
A view that joins artist to artistinfo.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || ID from Artist Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== songview ====&lt;br /&gt;
A view that joins song to album, path, artist, genre, thumb, and karaokedata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || ID from Song Table&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || ID from Album Table&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Path&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbumArtists || text || Album Artists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
&lt;br /&gt;
==== album ====&lt;br /&gt;
This table contains basic album information.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || varchar(256) || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text|| Artist Name&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Album Genre&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb(music)|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|bCompilation || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_artist ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integre || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|boolFeatured || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== album_genre ====&lt;br /&gt;
This links albums with their genres.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfo ====&lt;br /&gt;
This table contains additional information about an album, such as Rating, Moods, Styles, Reviews, Image URL, and type.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Album Year&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Album Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Album Styles&lt;br /&gt;
|-&lt;br /&gt;
|strThemes || text || Album Themes&lt;br /&gt;
|-&lt;br /&gt;
|strReview || text || Album Review&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Album Image&lt;br /&gt;
|-&lt;br /&gt;
|strLabel || text || Album Label&lt;br /&gt;
|-&lt;br /&gt;
|strType || text || Album Type&lt;br /&gt;
|-&lt;br /&gt;
|iRating || integer || Album Rating&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== albuminfosong ====&lt;br /&gt;
This table links songs to albums and stores the duration of each track.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfoSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbumInfo || integer || Foreign key to [[Databases#albuminfo|albuminfo table]]&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Track #&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|type || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|url || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artist ====&lt;br /&gt;
This table stores the name of each artist.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strArtist || varchar(256) || Artist Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistinfo ====&lt;br /&gt;
This table stores relevant information about each artist, such as when they were born, Fan Art URL&#039;s, biographical information, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtistInfo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strBorn || text || Artist Birthday&lt;br /&gt;
|-&lt;br /&gt;
|strFormed || text || Band Formation Date&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Artist Genres&lt;br /&gt;
|-&lt;br /&gt;
|strMoods || text || Artist Moods&lt;br /&gt;
|-&lt;br /&gt;
|strStyles || text || Artist Styles&lt;br /&gt;
|-&lt;br /&gt;
|strInstruments || text || Artist&#039;s Instruments&lt;br /&gt;
|-&lt;br /&gt;
|strBiography || text || Artist&#039;s Biography&lt;br /&gt;
|-&lt;br /&gt;
|strDied || text || Artist Date Died&lt;br /&gt;
|-&lt;br /&gt;
|strDisbanded || text || Band Disbanded Date&lt;br /&gt;
|-&lt;br /&gt;
|strYearsActive || text || Years Artist is Active&lt;br /&gt;
|-&lt;br /&gt;
|strImage || text || URL of Artist Image&lt;br /&gt;
|-&lt;br /&gt;
|strFanart || text || URL of Fanart&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== content ====&lt;br /&gt;
This table is related to the scraper.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strScraperPath || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== discography ====&lt;br /&gt;
Links albums to artists with the year produced.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum || text || Album Name&lt;br /&gt;
|-&lt;br /&gt;
|strYear || text || Year Album Produced.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== exartistablum ====&lt;br /&gt;
Links artists to albums&lt;br /&gt;
&lt;br /&gt;
==== exartistsong ====&lt;br /&gt;
Links artists to songs&lt;br /&gt;
&lt;br /&gt;
==== exgenrealbum ====&lt;br /&gt;
Links genres to albums&lt;br /&gt;
&lt;br /&gt;
==== exgenresong ====&lt;br /&gt;
Links genres to songs&lt;br /&gt;
&lt;br /&gt;
==== genre(music) ====&lt;br /&gt;
This table contains genre titles.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || varchar(256) || Genre Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== karaokedata ====&lt;br /&gt;
This table contains karaoke specific information for certain songs&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|iKaraNumber || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iKaraDelay || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraEncoding || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaralyrics || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strKaraLyFileCRC || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path(music) ====&lt;br /&gt;
This table contains paths and hashes of files in the Music Database.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || varchar(512) || Media Paths&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song ====&lt;br /&gt;
This table contains song information such as Name, Track Title, MusicBrainz information, times played, last played, rating, etc.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idAlbum || integer || Foreign key to [[Databases#album|album table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strArtists || text || Song Artists&lt;br /&gt;
|-&lt;br /&gt;
|strGenres || text || Song Genres&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || varchar(512) || Song Title&lt;br /&gt;
|-&lt;br /&gt;
|iTrack || integer || Song Track Number&lt;br /&gt;
|-&lt;br /&gt;
|iDuration || integer || Song Duration in seconds&lt;br /&gt;
|-&lt;br /&gt;
|iYear || integer || Song&#039;s Release Year&lt;br /&gt;
|-&lt;br /&gt;
|dwFileNameCRC || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID || text || Song&#039;s MusicBrainz Track ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID || text || Song&#039;s MusicBrainz Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID || text || Song&#039;s MusicBrainz Album ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumArtistID || text || Song&#039;s MusicBrainz Album Artist ID&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTRMID || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iTimesPlayed || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|iStartOffset || integer || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|iEndOffset || integer  || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Foreign key to [[Databases#thumb|thumb table]]&lt;br /&gt;
|-&lt;br /&gt;
|lastplayed || varchar(20) || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|rating || char || Song Rating&lt;br /&gt;
|-&lt;br /&gt;
|comment || text || Song Comment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_artist ====&lt;br /&gt;
This table links songs to artists.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#artist|artist table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|boolFeatured || integer || Is Artist Featured on song?&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== song_genre ====&lt;br /&gt;
This table links the songs with their genre.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre(music)|genre(music) table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSong || integer || Foreign key to [[Databases#song|song table]]&lt;br /&gt;
|-&lt;br /&gt;
|iOrder || integer || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== thumb ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idThumb || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version(music) ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of the music database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Video Library ==&lt;br /&gt;
This database contains all information concerning TV shows, movies, and music videos. It is used in the Videos portion of Kodi. The following information is for version 75.&lt;br /&gt;
&lt;br /&gt;
The video database is stored in userdata/Database/MyVideosXX.db, where XX is the version number.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
Views are standard queries, often long or complicated queries saved in the database for convenience. The views below allow you to easily access all the information about each of the main media types in the Video Library, across all the linking tables.&lt;br /&gt;
&lt;br /&gt;
==== episodeview ====&lt;br /&gt;
A view that joins episode to file and tvshow (through tvshowlinkepisode) and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer ||  Foreign key to the [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|strTitle || text || Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Network&lt;br /&gt;
|-&lt;br /&gt;
|premiered || text || First Aired&lt;br /&gt;
|-&lt;br /&gt;
|mpaa || text || Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|strShowPath || text || Show Path URL&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Foreign key to the [[Databases#seasons|seasons table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movieview ====&lt;br /&gt;
A view that joins movie to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideoview ====&lt;br /&gt;
A view that joins musicvideo to file and path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|strFileName || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|resumeTimeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || double || Time in seconds of the video&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowview ====&lt;br /&gt;
View that joins tvshow to path. Also produces information about total number of episodes as well as number of watched and unwatched episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|totalCount || integer || # of Episodes&lt;br /&gt;
|-&lt;br /&gt;
|watchedcount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|totalSeasons || integer || # of Seasons&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The information in the Video Library is organized into the following tables. Several large tables (such as [[Databases#episode|episode]], [[Databases#movie|movie]], [[Databases#settings|settings]], and [[Databases#tvshow|tvshow]]) contain the bulk of the information, while most of the others are used to link a long string to a common ID key.&lt;br /&gt;
&lt;br /&gt;
==== actorlinkepisode ====&lt;br /&gt;
This table links actors to episodes and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this episode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinkmovie ====&lt;br /&gt;
This table links actors to movies and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this movie&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actorlinktvshow ====&lt;br /&gt;
This table links actors to TV shows and stores role information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || Role the actor played in this TV show&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== actors ====&lt;br /&gt;
This table stores actor, artist, director, and writer information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idActor || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strActor|| integer || Name of the actor, artist, director, or writer&lt;br /&gt;
|-&lt;br /&gt;
|strThumb || text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== art ====&lt;br /&gt;
This table stores URLs for video art metadata.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|art_id|| integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|media_id|| integer || The id of the media this piece of art is for&lt;br /&gt;
|-&lt;br /&gt;
|media_type|| text || The type of media this art applies to - movie, set, tvshow, season, episode, musicvideo or actor&lt;br /&gt;
|-&lt;br /&gt;
|type|| text|| The image type - poster, fanart, thumb, banner, landscape, clearlogo, clearart, characterart or discart&lt;br /&gt;
|-&lt;br /&gt;
|url|| text || Thumbnail URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== artistlinkmusicvideo ====&lt;br /&gt;
This table links artists to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idArtist || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== bookmark ====&lt;br /&gt;
This table stores bookmarks, which are timestamps representing the point in a video where a user stopped playback, an explicit bookmark requested by the user, or an automatically generated episode bookmark.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idBookmark || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|timeInSeconds || double || Time in seconds of bookmark location&lt;br /&gt;
|-&lt;br /&gt;
|totalTimeInSeconds || integer || Time in seconds of the video&lt;br /&gt;
|-&lt;br /&gt;
|thumbNailImage || text || Thumbnail for bookmark&lt;br /&gt;
|-&lt;br /&gt;
|player || text || Player used to store bookmark&lt;br /&gt;
|-&lt;br /&gt;
|playerState || text || Player&#039;s internal state in XML&lt;br /&gt;
|-&lt;br /&gt;
|type || integer || Type of bookmark (0=standard, 1=resume, 2=episode)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== country ====&lt;br /&gt;
This table lists countries.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strCountry || text || Country Name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== countrylinkmovie ====&lt;br /&gt;
This table links countries to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idCountry || integer || Foreign key to [[Databases#country|country table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer ||Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkepisode ====&lt;br /&gt;
This table links directors to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|-&lt;br /&gt;
|strRole || text || [Appears to be unused]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmovie ====&lt;br /&gt;
This table links directors to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinkmusicvideo ====&lt;br /&gt;
This table links directors to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== directorlinktvshow ====&lt;br /&gt;
This table links directors to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idDirector || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== episode ====&lt;br /&gt;
This table stores television episode information. Information concerning the series is stored in [[Databases#tvshow|tvshow]]. To link an episode to its parent series, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text ||  Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  [unknown - listed as Votes]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Writer&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - listed as Thumbnail URL Spoof, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Has the episode been watched? (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Episode length in minutes&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  [unknown - listed as Indentifier]&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  Season Number&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Episode Number&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  [unknown - listed as Original Title, unused?]&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Season formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Episode formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Bookmark&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Not used&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign key to the [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== files ====&lt;br /&gt;
This table stores filenames and links the path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|-&lt;br /&gt;
|strFilename || text || Full name of file including extension&lt;br /&gt;
|-&lt;br /&gt;
|playCount || integer || # of Times Played&lt;br /&gt;
|-&lt;br /&gt;
|lastPlayed || text || Date &amp;amp; Time Last Played&lt;br /&gt;
|-&lt;br /&gt;
|dateAdded || text || Date &amp;amp; Time Added to Library&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genre ====&lt;br /&gt;
This table stores genre information. For convenience the contents are duplicated in [[Databases#movie|movie]] and [[Databases#tvshow|tvshow]], so a join isn&#039;t necessary.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strGenre || text || Genre label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmovie ====&lt;br /&gt;
This table links genres to movies. (The contents are also stored in movies.c14, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinkmusicvideo ====&lt;br /&gt;
This table links genres to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#musicvideo|musicvideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== genrelinktvshow ====&lt;br /&gt;
This table links genres to TV show. (The contents are also stored in tvshow.c08, though.)&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idGenre || integer || Foreign key to [[Databases#genre|genre table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movie ====&lt;br /&gt;
This table stores movie information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Local Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Movie Plot&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Movie Plot Outline&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Movie Tagline&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating Votes&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Writers&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  Year Released&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Thumbnails&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  IMDB ID&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Runtime (UPnP devices see this as seconds)&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  MPAA Rating&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  [http://www.imdb.com/chart/top IMDB Top 250] Ranking&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Director&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Original Movie Title&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  [unknown - listed as Thumbnail URL Spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Studio&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Trailer URL&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  Fanart URLs&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||  Country (Added in r29886[http://trac.kodi.tv/changeset/29886/trunk])&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||  idPath &lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer ||  Foreign Key to [[Databases#sets|sets table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== movielinktvshow ====&lt;br /&gt;
This table links movies to TV shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== musicvideo ====&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text || Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text || [unknown - listed as Thumbnail URL spoof]&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text || Play count (unused?)&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text || Run time&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text || Director&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text || Studios&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text || Year&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text || Plot&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text || Album&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text || Artist&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text || Genre&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text || Track&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text ||&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer ||  Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== path ====&lt;br /&gt;
This table stores path information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strPath || text || Path URL&lt;br /&gt;
|-&lt;br /&gt;
|strContent || text || Type of content (tvshows, movies, etc...)&lt;br /&gt;
|-&lt;br /&gt;
|strScraper || text || XML file of scraper used for this path&lt;br /&gt;
|-&lt;br /&gt;
|strHash || text || Hash&lt;br /&gt;
|-&lt;br /&gt;
|scanRecursive || integer || Recursive scan setting&lt;br /&gt;
|-&lt;br /&gt;
|useFolderNames || bool || User folder names setting&lt;br /&gt;
|-&lt;br /&gt;
|strSettings || text || Custom settings used by scraper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== seasons ====&lt;br /&gt;
This table stores the links between tv show and seasons.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSeason || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|idShow|| integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|season || integer || Season number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== sets ====&lt;br /&gt;
This table stores the id and name for movie sets. Sets are linked to movies in the movie table (idSet column).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idSet || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strSet || text || The name of the set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== settings ====&lt;br /&gt;
This table stores settings for individual files.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|Interleaved || bool || Interleaved&lt;br /&gt;
|-&lt;br /&gt;
|Nocache || bool || NoCache&lt;br /&gt;
|-&lt;br /&gt;
|Deinterlace || bool || Deinterlace&lt;br /&gt;
|-&lt;br /&gt;
|FilmGrain|| integer || FilmGrain&lt;br /&gt;
|-&lt;br /&gt;
|ViewMode|| integer || ViewMode&lt;br /&gt;
|-&lt;br /&gt;
|ZoomAmount|| float || ZoomAmount&lt;br /&gt;
|-&lt;br /&gt;
|PixelRatio|| float || PixelRatio&lt;br /&gt;
|-&lt;br /&gt;
|AudioStream || integer || Selected audio stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleStream || integer || Selected subtitle stream&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleDelay || float || Amount of delay for subtitles&lt;br /&gt;
|-&lt;br /&gt;
|SubtitleOn || bool || Enable subtitles&lt;br /&gt;
|-&lt;br /&gt;
|Brightness || integer || Brightness &lt;br /&gt;
|-&lt;br /&gt;
|Contrast || integer || Contrast &lt;br /&gt;
|-&lt;br /&gt;
|Gamma || integer || Gamma &lt;br /&gt;
|-&lt;br /&gt;
|VolumeAmplification || float || VolumeAmplification &lt;br /&gt;
|-&lt;br /&gt;
|AudioDelay || float || AudioDelay &lt;br /&gt;
|-&lt;br /&gt;
|OutputToAllSpeakers || bool || OutputToAllSpeakers &lt;br /&gt;
|-&lt;br /&gt;
|ResumeTime || integer || ResumeTime &lt;br /&gt;
|-&lt;br /&gt;
|Crop || bool || Crop &lt;br /&gt;
|-&lt;br /&gt;
|CropLeft || integer || CropLeft &lt;br /&gt;
|-&lt;br /&gt;
|CropRight || integer || CropRight &lt;br /&gt;
|-&lt;br /&gt;
|CropTop || integer || CropTop &lt;br /&gt;
|-&lt;br /&gt;
|CropBottom || integer || CropBottom &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== stacktimes ====&lt;br /&gt;
This table stores playing times for files (used for playing multi-file videos).&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|times|| text || Times&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== streamdetails ====&lt;br /&gt;
This table contains information regarding codecs used, aspect ratios etc&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idFile || integer || Foreign Key to [[Databases#files|files table]]&lt;br /&gt;
|-&lt;br /&gt;
|iStreamType || integer || 0 = video, 1 = audio, 2 = subtitles&lt;br /&gt;
|-&lt;br /&gt;
|strVideoCodec|| text || Video codex (xvid etc)&lt;br /&gt;
|-&lt;br /&gt;
|fVideoAspect|| real || Aspect ratio&lt;br /&gt;
|-&lt;br /&gt;
|iVideoWidth|| integer || Width of the video&lt;br /&gt;
|-&lt;br /&gt;
|iVideoHeight|| integer || Height of the video&lt;br /&gt;
|-&lt;br /&gt;
|strAudioCodec|| text || Audio codec (aac, mp3 etc)&lt;br /&gt;
|-&lt;br /&gt;
|iAudioChannels|| integer || Number of audio channels (2 for stereo, 6 for 5.1 etc)&lt;br /&gt;
|-&lt;br /&gt;
|strAudioLanguage|| text || Language of the audio track&lt;br /&gt;
|-&lt;br /&gt;
|strSubtitleLanguage|| text || Language of the subtitles&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studio ====&lt;br /&gt;
This table stores studio information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strStudio || text || Studio Label&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmovie ====&lt;br /&gt;
This table links studios to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinkmusicvideo ====&lt;br /&gt;
This table links studios to music videos.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMVideo || integer || Foreign key to [[Databases#movievideo|movievideo table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== studiolinktvshow ====&lt;br /&gt;
This table links studios to tv shows.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idStudio || integer || Foreign key to [[Databases#studio|studio table]]&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tag ====&lt;br /&gt;
This stores tags.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Tag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== taglinks ====&lt;br /&gt;
This table links tags to various media.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idTag || integer || Foreign key to [[Databases#tag|tag table]]&lt;br /&gt;
|-&lt;br /&gt;
|strTag || integer || Foreign key to a media table&lt;br /&gt;
|-&lt;br /&gt;
|media_type || text || Media type for link&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshow ====&lt;br /&gt;
This table stores information about a television series. Information concerning the shows episodes is stored in [[Databases#episode|episode]]. To link a TV show to its episodes, use [[Databases#tvshowlinkepisode|tvshowlinkepisode]].&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|c00 || text ||  Show Title&lt;br /&gt;
|-&lt;br /&gt;
|c01 || text || Show Plot Summary&lt;br /&gt;
|-&lt;br /&gt;
|c02 || text ||  Status&lt;br /&gt;
|-&lt;br /&gt;
|c03 || text ||  Votes&lt;br /&gt;
|-&lt;br /&gt;
|c04 || text ||  Rating&lt;br /&gt;
|-&lt;br /&gt;
|c05 || text ||  First Aired&lt;br /&gt;
|-&lt;br /&gt;
|c06 || text ||  Thumbnail URL&lt;br /&gt;
|-&lt;br /&gt;
|c07 || text ||  [unknown - Spoof Thumbnail URL?]&lt;br /&gt;
|-&lt;br /&gt;
|c08 || text ||  Genre&lt;br /&gt;
|-&lt;br /&gt;
|c09 || text ||  Original Title&lt;br /&gt;
|-&lt;br /&gt;
|c10 || text ||  Episode Guide URL&lt;br /&gt;
|-&lt;br /&gt;
|c11 || text ||  Fan Art URL&lt;br /&gt;
|-&lt;br /&gt;
|c12 || text ||  SeriesId (when using thetvdb.com scraper)&lt;br /&gt;
|-&lt;br /&gt;
|c13 || text ||  Content Rating&lt;br /&gt;
|-&lt;br /&gt;
|c14 || text ||  Network&lt;br /&gt;
|-&lt;br /&gt;
|c15 || text ||  Title formatted for sorting&lt;br /&gt;
|-&lt;br /&gt;
|c16 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c17 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c18 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c19 || text ||  Not Used&lt;br /&gt;
|-&lt;br /&gt;
|c20 || text ||  [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c21 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c22 || text || [unknown]&lt;br /&gt;
|-&lt;br /&gt;
|c23 || text || [unknown]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkepisode ====&lt;br /&gt;
This table links TV shows (series) to episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign Key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign Key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== tvshowlinkpath ====&lt;br /&gt;
This table links a TV show to its path.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idShow || integer || Foreign key to [[Databases#tvshow|tvshow table]]&lt;br /&gt;
|-&lt;br /&gt;
|idPath || integer || Foreign key to [[Databases#path|path table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkepisode ====&lt;br /&gt;
This table links writers to TV show episodes.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idEpisode || integer || Foreign key to [[Databases#episode|episode table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== writerlinkmovie ====&lt;br /&gt;
This table links writers to movies.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idWriter || integer || Foreign key to [[Databases#actors|actors table]]&lt;br /&gt;
|-&lt;br /&gt;
|idMovie || integer || Foreign key to [[Databases#movie|movie table]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The View Modes Database ==&lt;br /&gt;
Kodi can track a user&#039;s View Mode for every path, so you could browse movies using DVD Thumbs and browse TV shows using Fanart. This database contains the last view and sorting method a user chose for each path while navigating Kodi.&lt;br /&gt;
&lt;br /&gt;
The View Modes database is stored in userdata/Database/ViewModes.db.&lt;br /&gt;
&lt;br /&gt;
=== Tables ===&lt;br /&gt;
The View Modes database uses only two tables. Most of the useful information is in [[Databases#view|view]].&lt;br /&gt;
&lt;br /&gt;
==== version ====&lt;br /&gt;
This table stores database information.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idVersion || integer || Version of database&lt;br /&gt;
|-&lt;br /&gt;
|idCompressCount || integer || Number of times database has been compressed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== view ====&lt;br /&gt;
This table stores details on the saved view mode for all known paths.&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Column Name || Data Type || Description&lt;br /&gt;
|-&lt;br /&gt;
|idView || integer || Primary Key&lt;br /&gt;
|-&lt;br /&gt;
|window || integer || Window GUI ID&lt;br /&gt;
|-&lt;br /&gt;
|path || text || Path to trigger the view on&lt;br /&gt;
|-&lt;br /&gt;
|viewMode || integer || View Mode&lt;br /&gt;
|-&lt;br /&gt;
|sortMethod || integer || ID of sort method&lt;br /&gt;
|-&lt;br /&gt;
|sortOrder || integer || Sort order (ascending or descending)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Version table]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=124637</id>
		<title>Log file/Advanced</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=124637"/>
		<updated>2016-10-20T10:09:05Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* advancedsettings.xml for input devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Troubleshooting]] | [[HOW-TO:Submit a bug report]] | [[Log file]] }}&lt;br /&gt;
&lt;br /&gt;
:{{bigger|&#039;&#039;Not sure what to do, but someone just asked you for a &amp;quot;log file&amp;quot;, &amp;quot;debug log&amp;quot;, &amp;quot;kodi.log&amp;quot;, or &amp;quot;xbmc.log&amp;quot;? &#039;&#039;&#039;[[Log file/Easy|Click here]].&#039;&#039;&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section being=&amp;quot;intro&amp;quot; /&amp;gt;At some point during your foray into {{kodi}}, you will likely come up against a problem that isn&#039;t made 100% clear from errors in the GUI. This is where the log file comes into play. {{kodi}} writes all sorts of useful stuff to its log, which is why it should be included with every bug/problem report. Don&#039;t be afraid of its contents! Often a quick glance through the log will turn up a simple typo or missing file which you can easily fix on your own.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enable debugging = &amp;lt;!-- odd header levels are used intentionally for better readability on this specific page --&amp;gt;&lt;br /&gt;
If someone asks for a debug log then debugging needs to be enabled. There are three ways to do this:&lt;br /&gt;
&lt;br /&gt;
# Select the enable debug options in the &#039;&#039;&#039;[[#GUI settings|GUI settings]]&#039;&#039;&#039;&lt;br /&gt;
# Use an &#039;&#039;&#039;[[#advancedsettings.xml|advancedsettings.xml]]&#039;&#039;&#039; file&lt;br /&gt;
# Toggle debug logging with a &#039;&#039;&#039;[[#Keyboard or remote shortcut|keyboard or remote shortcut]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== GUI settings ==&lt;br /&gt;
Most users only need to enable debug logging in the GUI.&lt;br /&gt;
&lt;br /&gt;
In {{highlight|bordered=yes|[[Settings/System#Logging|Settings -&amp;gt; System -&amp;gt; Logging]]}} toggle the &#039;&#039;&#039;&#039;&#039;Enable debug logging&#039;&#039;&#039;&#039;&#039; setting.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Settings/System|debugging}}&lt;br /&gt;
&lt;br /&gt;
== Turn on debugging using a file (advancedsettings.xml) ==&lt;br /&gt;
{{anchor|advancedsettings.xml}}&lt;br /&gt;
You can manually enable debug logging directly using an [[advancedsettings.xml]] file. This is especially useful if {{kodi}} is crashing during start-up and you are unable to turn debugging on via the GUI. The advancedsettings.xml file is simply a plain text document that is saved in the [[userdata folder]] and read when {{kodi}} first starts up. You can use the following examples to enable debug logging:&lt;br /&gt;
&lt;br /&gt;
{{note|Be sure to format this as a &#039;&#039;&#039;plain text&#039;&#039;&#039; document, and make sure it is titled &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; and make sure the extension is &#039;&#039;just&#039;&#039; &amp;lt;code&amp;gt;.xml&amp;lt;/code&amp;gt; and not something like &amp;quot;.xml.txt&amp;quot; or &amp;quot;.xml.doc&amp;quot;. }}&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for normal debugging ===&lt;br /&gt;
If you want &#039;&#039;&#039;basic debug logging&#039;&#039;&#039; then use this. This the same as enabling logging in the GUI without enabling component-specific logging. Start with this one first if you are not sure which mode to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for input devices ===&lt;br /&gt;
&#039;&#039;Useful as you cannot enable debug logging in the GUI if your input devices don&#039;t work.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you only want debug logging with verbose components for &#039;&#039;&#039;input devices&#039;&#039;&#039; (JSON-RPC, CEC, HTTP, for remotes, smart phone remotes, web remotes, etc) then use this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;64,1024, 16384&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt; &amp;lt;!-- Change this to &amp;quot;false&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for everything ===&lt;br /&gt;
If you want debug logging with &#039;&#039;&#039;all verbose components&#039;&#039;&#039; enabled use this.&lt;br /&gt;
&lt;br /&gt;
{{note|Normally, you don&#039;t want to use this one unless specifically asked for it, as it will create a very hard-to-read debug log.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical notes ===&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
Everything except the &amp;lt;code&amp;gt;&amp;lt;loglevel&amp;gt;&amp;lt;/code&amp;gt; tag is actually taken from guisettings.xml, but they can be used in the advancedsettings.xml file as a way to manually enable them.&lt;br /&gt;
&lt;br /&gt;
As one can see from the previous sections, individual component logging is set using the &amp;lt;code&amp;gt;&amp;lt;setextraloglevel&amp;gt;&amp;lt;/code&amp;gt; tag. A complete list of the components and their setting value follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Component !! setting value&lt;br /&gt;
|-&lt;br /&gt;
| LOGSAMBA || 32&lt;br /&gt;
|-&lt;br /&gt;
| LOGCURL || 64&lt;br /&gt;
|-&lt;br /&gt;
| LOGFFMPEG || 128&lt;br /&gt;
|-&lt;br /&gt;
| LOGDBUS || 512&lt;br /&gt;
|-&lt;br /&gt;
| LOGJSONRPC || 1024&lt;br /&gt;
|-&lt;br /&gt;
| LOGAUDIO || 2048&lt;br /&gt;
|-&lt;br /&gt;
| LOGAIRTUNES || 4096&lt;br /&gt;
|-&lt;br /&gt;
| LOGUPNP || 8192&lt;br /&gt;
|-&lt;br /&gt;
| LOGCEC || 16384&lt;br /&gt;
|-&lt;br /&gt;
| LOGVIDEO || 32768&lt;br /&gt;
|-&lt;br /&gt;
| LOGWEBSERVER || 65536&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
== Password warning ==&lt;br /&gt;
{{Log file password warning}}&lt;br /&gt;
&lt;br /&gt;
== Keyboard or remote shortcut ==&lt;br /&gt;
By plugging in a keyboard, debug mode can be toggled by pressing {{keypress|shift|ctrl|D}}&lt;br /&gt;
&lt;br /&gt;
Other keys, or buttons on remotes, can be used to toggle debug mode. Just use the [[action ID]] &amp;lt;code&amp;gt;toggledebug&amp;lt;/code&amp;gt; along with a custom &#039;&#039;&#039;[[keymap]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= So what do I do with this thing? =&lt;br /&gt;
&lt;br /&gt;
Whatever you do, please &#039;&#039;&#039;DO NOT&#039;&#039;&#039; paste it directly into IRC, a forum post or ticket on the bug tracker.  This not only clutters said text, but the log is nearly impossible to read like this.  If your log file is too big for the following methods, please restart {{kodi}} to start a clean log file file, recreate the problem in as few steps as possible, then stop {{kodi}} and try again.  If it is still too large, try disabling features such as &amp;quot;scan library on startup&amp;quot;, which spam&#039;s a lot of info to the log (unless of course this is where the problem is).&lt;br /&gt;
&lt;br /&gt;
:{{note|{{big|&#039;&#039;&#039;Always include the whole debug log.&#039;&#039;&#039; Don&#039;t assume which portions of the log are relevant or not. }} }}&lt;br /&gt;
&lt;br /&gt;
:{{note|Make sure you have enabled &amp;quot;debug logging&amp;quot;. The normal log file, without debugging enabled, is almost always useless when it comes to troubleshooting!}}&lt;br /&gt;
&lt;br /&gt;
=== In the forums and IRC ===&lt;br /&gt;
Use a pastesite such as http://xbmclogs.com , http://pastebin.com , or http://pastebin.ca on when posting on the forums.  Simply visit one of these sites, paste or upload your log and hit submit.  After a few seconds you&#039;ll have a nice short URL to paste in your post.  Be sure to select an appropriate time to keep your paste around when submitting!&lt;br /&gt;
&lt;br /&gt;
=== On the bug tracker ===&lt;br /&gt;
Just upload the log to your ticket as an attachment.  &#039;&#039;&#039;DO NOT&#039;&#039;&#039; archive (zip,rar,tar,etc) it in anyway!  Trac will let us view it right on the site without downloading.&lt;br /&gt;
&lt;br /&gt;
=== Watch it locally, perhaps spotting errors you can fix or report ===&lt;br /&gt;
Using &#039;tail -f {location}&#039; you can watch the log from a cmd/console (better with 2 displays), or better, via ssh (won&#039;t distract the gui).&lt;br /&gt;
&lt;br /&gt;
= Log files =&lt;br /&gt;
* &#039;&#039;&#039;kodi.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.log&#039;&#039;&#039; - This is the log file of most recent (or currently running) {{kodi}} session.&lt;br /&gt;
* &#039;&#039;&#039;kodi.old.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.old.log&#039;&#039;&#039; - This is the log file from the last Kodi session.  If {{kodi}} crashes AND you have restarted it before viewing the log, this is the one you want.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&#039;&#039;kodi.log&#039;&#039; {{small|(or &#039;&#039;xbmc.log&#039;&#039;)}} and &#039;&#039;kodi.old.log&#039;&#039; {{small|(or &#039;&#039;xbmc.old.log&#039;&#039;)}} are located here, depending on your platform:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 150px&amp;quot; | &#039;&#039;&#039;Operative system&#039;&#039;&#039; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 700px&amp;quot; | &#039;&#039;&#039;File/Folder Paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | {{small| {{note|Directories and files named &amp;lt;code&amp;gt;&#039;&#039;&#039;kodi&#039;&#039;&#039;&amp;lt;/code&amp;gt; were called &amp;lt;code&amp;gt;&#039;&#039;&#039;xbmc&#039;&#039;&#039;&amp;lt;/code&amp;gt; in versions before v14.}} }}&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039;  || {{note|The first folder might be different on various devices:}} &amp;lt;code&amp;gt;&#039;&#039;&amp;lt;data/sdcard/Android&amp;gt;&#039;&#039;/data/org.xbmc.kodi/cache/temp/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
or  &amp;lt;code&amp;gt;/sdcard/Android/data/org.xbmc.kodi/files/.kodi/temp/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS/ATV2&#039;&#039;&#039; || &amp;lt;code&amp;gt;/private/var/mobile/Library/Preferences/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || &amp;lt;code&amp;gt;$HOME/.kodi/temp/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || &amp;lt;code&amp;gt;/Users/&#039;&#039;&amp;lt;username&amp;gt;&#039;&#039;/Library/Logs/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows&#039;&#039;&#039; || &amp;lt;code&amp;gt;%APPDATA%\Kodi\kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[Special protocol]]&#039;&#039;&#039; || &amp;lt;code&amp;gt;special://logpath (this can be used by scripts)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;[[Log file/File manager access]]&#039;&#039;&#039; for how to copy the debug log file using the [[File manager]].&lt;br /&gt;
&lt;br /&gt;
= Easy ways to get and post the log file =&lt;br /&gt;
=== Debug log add-on ===&lt;br /&gt;
{{main|Log file/Easy}}&lt;br /&gt;
You can use the &#039;&#039;&#039;[[Add-on:Kodi Log Uploader|Kodi Log Uploader]]&#039;&#039;&#039; to make the process of getting your debug log easier.&lt;br /&gt;
&lt;br /&gt;
=== Automatic pastebin log in Linux via command line ===&lt;br /&gt;
You can generate a debug.log [http://en.wikipedia.org/wiki/Pastebin Pastebin] link automatically quickly to post anywhere that requires a debug.log.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also:&#039;&#039;&#039;&#039;&#039; [[SSH|Accessing Kodi via SSH]] e.g. Putty&lt;br /&gt;
&lt;br /&gt;
:{{note|Don&#039;t forget to [[#Enable debugging|enable debugging]]}}&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pastebinit -y&lt;br /&gt;
&lt;br /&gt;
cat $HOME/.kodi/temp/kodi.log | pastebinit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;(or cat $HOME/.Kodi/temp/kodi.log | pastebinit)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Submit the link you get in any forums discussion where you post about &#039;&#039;&#039;any&#039;&#039;&#039; problem.&lt;br /&gt;
&lt;br /&gt;
= Technical details about log files =&lt;br /&gt;
{{Editor note|This section might be outdated now that {{kodi}} has component-level logging. Some of it should still be true, but just keep in mind that this section hasn&#039;t been totally cleaned up for v13 and v14 yet.}}&lt;br /&gt;
&amp;lt;!-- {{collapse top}} - this is good stuff I missed the first time around for lack of expansion. I expect even a cursory user will take a peek and wonder what the heck the guts are. --&amp;gt;&lt;br /&gt;
=== Layout ===&lt;br /&gt;
Each event is logged to one line of the {{kodi}} log file which is formatted as follows...&lt;br /&gt;
&amp;lt;pre&amp;gt;[TIMESTAMP] T:[THREADID] M:[FREEMEM] [LEVEL]: [MESSAGE]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;TIMESTAMP&#039;&#039;&#039; - The wall time at which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;THREADID&#039;&#039;&#039; - The thread identification number of the thread in which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;FREEMEM&#039;&#039;&#039; - The amount of memory (in bytes) free at the time of the event.&lt;br /&gt;
* &#039;&#039;&#039;LEVEL&#039;&#039;&#039; - The severity of the event.&lt;br /&gt;
* &#039;&#039;&#039;MESSAGE&#039;&#039;&#039; - A brief description and/or important information about the event.&lt;br /&gt;
&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
There are two different types levels when talking about the {{kodi}} log.  The first is the severity of event that has occurred.  The second controls which severity levels are actually printed out to the log.&lt;br /&gt;
&lt;br /&gt;
;Severity levels&lt;br /&gt;
In order from least to most severe...&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039; - In depth information about the status of {{kodi}}.  This information can pretty much only be deciphered by a developer or long time {{kodi}} power user.&lt;br /&gt;
* &#039;&#039;&#039;INFO&#039;&#039;&#039; - Something has happened.  It&#039;s not a problem, we just thought you might want to know.  Fairly excessive output that most people won&#039;t care about.&lt;br /&gt;
* &#039;&#039;&#039;NOTICE&#039;&#039;&#039; - Similar to INFO but the average Joe might want to know about these events.  This level and above are logged by default.&lt;br /&gt;
* &#039;&#039;&#039;WARNING&#039;&#039;&#039; - Something potentially bad has happened.  If {{kodi}} did something you didn&#039;t expect, this is probably why.  Watch for errors to follow.&lt;br /&gt;
* &#039;&#039;&#039;ERROR&#039;&#039;&#039; - This event is bad.  Something has failed.  You likely noticed problems with the application be it skin artifacts, failure of playback a crash, etc.&lt;br /&gt;
* &#039;&#039;&#039;FATAL&#039;&#039;&#039; - We&#039;re screwed.  {{kodi}} is about to crash.&lt;br /&gt;
&lt;br /&gt;
;Log file control levels&lt;br /&gt;
In order from least to most information provided...&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039; - No logging will occur.  &#039;&#039;kodi.log&#039;&#039; will likely be created but should remain empty.&lt;br /&gt;
* &#039;&#039;&#039;Normal&#039;&#039;&#039; - The default loglevel.  Events with a severity of NOTICE or greater will be logged.&lt;br /&gt;
* &#039;&#039;&#039;Debug&#039;&#039;&#039; - All events are logged.  This level (or higher) is all that you should bother someone else with.&lt;br /&gt;
* &#039;&#039;&#039;Debug w/ Visuals&#039;&#039;&#039; - Same printed log as &#039;&#039;Debug&#039;&#039;, but free memory and CPU usage are rendered on the screen as well.&lt;br /&gt;
* &#039;&#039;&#039;SMB Debug&#039;&#039;&#039; - Same as &#039;&#039;Debug w/ Visuals&#039;&#039; with the addition of ridiculous amounts of Samba debugging info.  Use this only if asked.&lt;br /&gt;
&amp;lt;!-- {{collapse bottom}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[HOW-TO:Submit a bug report]]&lt;br /&gt;
* [[Bug tracker]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Trac]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=124636</id>
		<title>Log file/Advanced</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=124636"/>
		<updated>2016-10-20T10:07:33Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Technical notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Troubleshooting]] | [[HOW-TO:Submit a bug report]] | [[Log file]] }}&lt;br /&gt;
&lt;br /&gt;
:{{bigger|&#039;&#039;Not sure what to do, but someone just asked you for a &amp;quot;log file&amp;quot;, &amp;quot;debug log&amp;quot;, &amp;quot;kodi.log&amp;quot;, or &amp;quot;xbmc.log&amp;quot;? &#039;&#039;&#039;[[Log file/Easy|Click here]].&#039;&#039;&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section being=&amp;quot;intro&amp;quot; /&amp;gt;At some point during your foray into {{kodi}}, you will likely come up against a problem that isn&#039;t made 100% clear from errors in the GUI. This is where the log file comes into play. {{kodi}} writes all sorts of useful stuff to its log, which is why it should be included with every bug/problem report. Don&#039;t be afraid of its contents! Often a quick glance through the log will turn up a simple typo or missing file which you can easily fix on your own.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enable debugging = &amp;lt;!-- odd header levels are used intentionally for better readability on this specific page --&amp;gt;&lt;br /&gt;
If someone asks for a debug log then debugging needs to be enabled. There are three ways to do this:&lt;br /&gt;
&lt;br /&gt;
# Select the enable debug options in the &#039;&#039;&#039;[[#GUI settings|GUI settings]]&#039;&#039;&#039;&lt;br /&gt;
# Use an &#039;&#039;&#039;[[#advancedsettings.xml|advancedsettings.xml]]&#039;&#039;&#039; file&lt;br /&gt;
# Toggle debug logging with a &#039;&#039;&#039;[[#Keyboard or remote shortcut|keyboard or remote shortcut]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== GUI settings ==&lt;br /&gt;
Most users only need to enable debug logging in the GUI.&lt;br /&gt;
&lt;br /&gt;
In {{highlight|bordered=yes|[[Settings/System#Logging|Settings -&amp;gt; System -&amp;gt; Logging]]}} toggle the &#039;&#039;&#039;&#039;&#039;Enable debug logging&#039;&#039;&#039;&#039;&#039; setting.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Settings/System|debugging}}&lt;br /&gt;
&lt;br /&gt;
== Turn on debugging using a file (advancedsettings.xml) ==&lt;br /&gt;
{{anchor|advancedsettings.xml}}&lt;br /&gt;
You can manually enable debug logging directly using an [[advancedsettings.xml]] file. This is especially useful if {{kodi}} is crashing during start-up and you are unable to turn debugging on via the GUI. The advancedsettings.xml file is simply a plain text document that is saved in the [[userdata folder]] and read when {{kodi}} first starts up. You can use the following examples to enable debug logging:&lt;br /&gt;
&lt;br /&gt;
{{note|Be sure to format this as a &#039;&#039;&#039;plain text&#039;&#039;&#039; document, and make sure it is titled &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; and make sure the extension is &#039;&#039;just&#039;&#039; &amp;lt;code&amp;gt;.xml&amp;lt;/code&amp;gt; and not something like &amp;quot;.xml.txt&amp;quot; or &amp;quot;.xml.doc&amp;quot;. }}&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for normal debugging ===&lt;br /&gt;
If you want &#039;&#039;&#039;basic debug logging&#039;&#039;&#039; then use this. This the same as enabling logging in the GUI without enabling component-specific logging. Start with this one first if you are not sure which mode to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for input devices ===&lt;br /&gt;
&#039;&#039;Useful as you cannot enable debug logging in the GUI if your input devices don&#039;t work.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you only want debug logging with verbose components for &#039;&#039;&#039;input devices&#039;&#039;&#039; (JSON-RPC, CEC, HTTP, for remotes, smart phone remotes, web remotes, etc) then use this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;64,2048,32768&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt; &amp;lt;!-- Change this to &amp;quot;false&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for everything ===&lt;br /&gt;
If you want debug logging with &#039;&#039;&#039;all verbose components&#039;&#039;&#039; enabled use this.&lt;br /&gt;
&lt;br /&gt;
{{note|Normally, you don&#039;t want to use this one unless specifically asked for it, as it will create a very hard-to-read debug log.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical notes ===&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
Everything except the &amp;lt;code&amp;gt;&amp;lt;loglevel&amp;gt;&amp;lt;/code&amp;gt; tag is actually taken from guisettings.xml, but they can be used in the advancedsettings.xml file as a way to manually enable them.&lt;br /&gt;
&lt;br /&gt;
As one can see from the previous sections, individual component logging is set using the &amp;lt;code&amp;gt;&amp;lt;setextraloglevel&amp;gt;&amp;lt;/code&amp;gt; tag. A complete list of the components and their setting value follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Component !! setting value&lt;br /&gt;
|-&lt;br /&gt;
| LOGSAMBA || 32&lt;br /&gt;
|-&lt;br /&gt;
| LOGCURL || 64&lt;br /&gt;
|-&lt;br /&gt;
| LOGFFMPEG || 128&lt;br /&gt;
|-&lt;br /&gt;
| LOGDBUS || 512&lt;br /&gt;
|-&lt;br /&gt;
| LOGJSONRPC || 1024&lt;br /&gt;
|-&lt;br /&gt;
| LOGAUDIO || 2048&lt;br /&gt;
|-&lt;br /&gt;
| LOGAIRTUNES || 4096&lt;br /&gt;
|-&lt;br /&gt;
| LOGUPNP || 8192&lt;br /&gt;
|-&lt;br /&gt;
| LOGCEC || 16384&lt;br /&gt;
|-&lt;br /&gt;
| LOGVIDEO || 32768&lt;br /&gt;
|-&lt;br /&gt;
| LOGWEBSERVER || 65536&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
== Password warning ==&lt;br /&gt;
{{Log file password warning}}&lt;br /&gt;
&lt;br /&gt;
== Keyboard or remote shortcut ==&lt;br /&gt;
By plugging in a keyboard, debug mode can be toggled by pressing {{keypress|shift|ctrl|D}}&lt;br /&gt;
&lt;br /&gt;
Other keys, or buttons on remotes, can be used to toggle debug mode. Just use the [[action ID]] &amp;lt;code&amp;gt;toggledebug&amp;lt;/code&amp;gt; along with a custom &#039;&#039;&#039;[[keymap]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= So what do I do with this thing? =&lt;br /&gt;
&lt;br /&gt;
Whatever you do, please &#039;&#039;&#039;DO NOT&#039;&#039;&#039; paste it directly into IRC, a forum post or ticket on the bug tracker.  This not only clutters said text, but the log is nearly impossible to read like this.  If your log file is too big for the following methods, please restart {{kodi}} to start a clean log file file, recreate the problem in as few steps as possible, then stop {{kodi}} and try again.  If it is still too large, try disabling features such as &amp;quot;scan library on startup&amp;quot;, which spam&#039;s a lot of info to the log (unless of course this is where the problem is).&lt;br /&gt;
&lt;br /&gt;
:{{note|{{big|&#039;&#039;&#039;Always include the whole debug log.&#039;&#039;&#039; Don&#039;t assume which portions of the log are relevant or not. }} }}&lt;br /&gt;
&lt;br /&gt;
:{{note|Make sure you have enabled &amp;quot;debug logging&amp;quot;. The normal log file, without debugging enabled, is almost always useless when it comes to troubleshooting!}}&lt;br /&gt;
&lt;br /&gt;
=== In the forums and IRC ===&lt;br /&gt;
Use a pastesite such as http://xbmclogs.com , http://pastebin.com , or http://pastebin.ca on when posting on the forums.  Simply visit one of these sites, paste or upload your log and hit submit.  After a few seconds you&#039;ll have a nice short URL to paste in your post.  Be sure to select an appropriate time to keep your paste around when submitting!&lt;br /&gt;
&lt;br /&gt;
=== On the bug tracker ===&lt;br /&gt;
Just upload the log to your ticket as an attachment.  &#039;&#039;&#039;DO NOT&#039;&#039;&#039; archive (zip,rar,tar,etc) it in anyway!  Trac will let us view it right on the site without downloading.&lt;br /&gt;
&lt;br /&gt;
=== Watch it locally, perhaps spotting errors you can fix or report ===&lt;br /&gt;
Using &#039;tail -f {location}&#039; you can watch the log from a cmd/console (better with 2 displays), or better, via ssh (won&#039;t distract the gui).&lt;br /&gt;
&lt;br /&gt;
= Log files =&lt;br /&gt;
* &#039;&#039;&#039;kodi.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.log&#039;&#039;&#039; - This is the log file of most recent (or currently running) {{kodi}} session.&lt;br /&gt;
* &#039;&#039;&#039;kodi.old.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.old.log&#039;&#039;&#039; - This is the log file from the last Kodi session.  If {{kodi}} crashes AND you have restarted it before viewing the log, this is the one you want.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&#039;&#039;kodi.log&#039;&#039; {{small|(or &#039;&#039;xbmc.log&#039;&#039;)}} and &#039;&#039;kodi.old.log&#039;&#039; {{small|(or &#039;&#039;xbmc.old.log&#039;&#039;)}} are located here, depending on your platform:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 150px&amp;quot; | &#039;&#039;&#039;Operative system&#039;&#039;&#039; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 700px&amp;quot; | &#039;&#039;&#039;File/Folder Paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | {{small| {{note|Directories and files named &amp;lt;code&amp;gt;&#039;&#039;&#039;kodi&#039;&#039;&#039;&amp;lt;/code&amp;gt; were called &amp;lt;code&amp;gt;&#039;&#039;&#039;xbmc&#039;&#039;&#039;&amp;lt;/code&amp;gt; in versions before v14.}} }}&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039;  || {{note|The first folder might be different on various devices:}} &amp;lt;code&amp;gt;&#039;&#039;&amp;lt;data/sdcard/Android&amp;gt;&#039;&#039;/data/org.xbmc.kodi/cache/temp/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
or  &amp;lt;code&amp;gt;/sdcard/Android/data/org.xbmc.kodi/files/.kodi/temp/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS/ATV2&#039;&#039;&#039; || &amp;lt;code&amp;gt;/private/var/mobile/Library/Preferences/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || &amp;lt;code&amp;gt;$HOME/.kodi/temp/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || &amp;lt;code&amp;gt;/Users/&#039;&#039;&amp;lt;username&amp;gt;&#039;&#039;/Library/Logs/kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows&#039;&#039;&#039; || &amp;lt;code&amp;gt;%APPDATA%\Kodi\kodi.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[Special protocol]]&#039;&#039;&#039; || &amp;lt;code&amp;gt;special://logpath (this can be used by scripts)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;[[Log file/File manager access]]&#039;&#039;&#039; for how to copy the debug log file using the [[File manager]].&lt;br /&gt;
&lt;br /&gt;
= Easy ways to get and post the log file =&lt;br /&gt;
=== Debug log add-on ===&lt;br /&gt;
{{main|Log file/Easy}}&lt;br /&gt;
You can use the &#039;&#039;&#039;[[Add-on:Kodi Log Uploader|Kodi Log Uploader]]&#039;&#039;&#039; to make the process of getting your debug log easier.&lt;br /&gt;
&lt;br /&gt;
=== Automatic pastebin log in Linux via command line ===&lt;br /&gt;
You can generate a debug.log [http://en.wikipedia.org/wiki/Pastebin Pastebin] link automatically quickly to post anywhere that requires a debug.log.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also:&#039;&#039;&#039;&#039;&#039; [[SSH|Accessing Kodi via SSH]] e.g. Putty&lt;br /&gt;
&lt;br /&gt;
:{{note|Don&#039;t forget to [[#Enable debugging|enable debugging]]}}&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pastebinit -y&lt;br /&gt;
&lt;br /&gt;
cat $HOME/.kodi/temp/kodi.log | pastebinit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;(or cat $HOME/.Kodi/temp/kodi.log | pastebinit)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Submit the link you get in any forums discussion where you post about &#039;&#039;&#039;any&#039;&#039;&#039; problem.&lt;br /&gt;
&lt;br /&gt;
= Technical details about log files =&lt;br /&gt;
{{Editor note|This section might be outdated now that {{kodi}} has component-level logging. Some of it should still be true, but just keep in mind that this section hasn&#039;t been totally cleaned up for v13 and v14 yet.}}&lt;br /&gt;
&amp;lt;!-- {{collapse top}} - this is good stuff I missed the first time around for lack of expansion. I expect even a cursory user will take a peek and wonder what the heck the guts are. --&amp;gt;&lt;br /&gt;
=== Layout ===&lt;br /&gt;
Each event is logged to one line of the {{kodi}} log file which is formatted as follows...&lt;br /&gt;
&amp;lt;pre&amp;gt;[TIMESTAMP] T:[THREADID] M:[FREEMEM] [LEVEL]: [MESSAGE]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;TIMESTAMP&#039;&#039;&#039; - The wall time at which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;THREADID&#039;&#039;&#039; - The thread identification number of the thread in which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;FREEMEM&#039;&#039;&#039; - The amount of memory (in bytes) free at the time of the event.&lt;br /&gt;
* &#039;&#039;&#039;LEVEL&#039;&#039;&#039; - The severity of the event.&lt;br /&gt;
* &#039;&#039;&#039;MESSAGE&#039;&#039;&#039; - A brief description and/or important information about the event.&lt;br /&gt;
&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
There are two different types levels when talking about the {{kodi}} log.  The first is the severity of event that has occurred.  The second controls which severity levels are actually printed out to the log.&lt;br /&gt;
&lt;br /&gt;
;Severity levels&lt;br /&gt;
In order from least to most severe...&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039; - In depth information about the status of {{kodi}}.  This information can pretty much only be deciphered by a developer or long time {{kodi}} power user.&lt;br /&gt;
* &#039;&#039;&#039;INFO&#039;&#039;&#039; - Something has happened.  It&#039;s not a problem, we just thought you might want to know.  Fairly excessive output that most people won&#039;t care about.&lt;br /&gt;
* &#039;&#039;&#039;NOTICE&#039;&#039;&#039; - Similar to INFO but the average Joe might want to know about these events.  This level and above are logged by default.&lt;br /&gt;
* &#039;&#039;&#039;WARNING&#039;&#039;&#039; - Something potentially bad has happened.  If {{kodi}} did something you didn&#039;t expect, this is probably why.  Watch for errors to follow.&lt;br /&gt;
* &#039;&#039;&#039;ERROR&#039;&#039;&#039; - This event is bad.  Something has failed.  You likely noticed problems with the application be it skin artifacts, failure of playback a crash, etc.&lt;br /&gt;
* &#039;&#039;&#039;FATAL&#039;&#039;&#039; - We&#039;re screwed.  {{kodi}} is about to crash.&lt;br /&gt;
&lt;br /&gt;
;Log file control levels&lt;br /&gt;
In order from least to most information provided...&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039; - No logging will occur.  &#039;&#039;kodi.log&#039;&#039; will likely be created but should remain empty.&lt;br /&gt;
* &#039;&#039;&#039;Normal&#039;&#039;&#039; - The default loglevel.  Events with a severity of NOTICE or greater will be logged.&lt;br /&gt;
* &#039;&#039;&#039;Debug&#039;&#039;&#039; - All events are logged.  This level (or higher) is all that you should bother someone else with.&lt;br /&gt;
* &#039;&#039;&#039;Debug w/ Visuals&#039;&#039;&#039; - Same printed log as &#039;&#039;Debug&#039;&#039;, but free memory and CPU usage are rendered on the screen as well.&lt;br /&gt;
* &#039;&#039;&#039;SMB Debug&#039;&#039;&#039; - Same as &#039;&#039;Debug w/ Visuals&#039;&#039; with the addition of ridiculous amounts of Samba debugging info.  Use this only if asked.&lt;br /&gt;
&amp;lt;!-- {{collapse bottom}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[HOW-TO:Submit a bug report]]&lt;br /&gt;
* [[Bug tracker]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Trac]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113407</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113407"/>
		<updated>2016-02-01T18:24:23Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tags Kodi reads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
Kodi reads the following tags:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;|&lt;br /&gt;
! Kodi Version&lt;br /&gt;
! Vorbis&lt;br /&gt;
! ID3v2&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|strArtist&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|strTitle&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|iTrack&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|iYear&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strGenres&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|mood&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|comment&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rating&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113406</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113406"/>
		<updated>2016-02-01T18:21:19Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Importing into Kodi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Loading Music into Kodi Music Library==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags to populate the libarary, and then lookup and additional bits of artwork and metadata for artists and albums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
Kodi reads the following tags:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Database Field&lt;br /&gt;
! Kodi Version&lt;br /&gt;
! Vorbis&lt;br /&gt;
! ID3v2&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|strArtist&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|strTitle&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|iTrack&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|iYear&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strGenres&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|mood&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|comment&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rating&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113405</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113405"/>
		<updated>2016-02-01T18:19:31Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: /* Tagging with MusicBrainz Picard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. It also helps to avoid problems such as confusion over artists with the same name. Both Mp3tag and Picard tagging software that can add these tags. MusicBrainz Picard is thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software likehttp://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Importing into Kodi ==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags, and lookup and additional bits of artwork and metadata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
Kodi reads the following tags:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Database Field&lt;br /&gt;
! Kodi Version&lt;br /&gt;
! Vorbis&lt;br /&gt;
! ID3v2&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|strArtist&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|strTitle&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|iTrack&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|iYear&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strGenres&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|mood&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|comment&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rating&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113404</id>
		<title>Music tagging</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_tagging&amp;diff=113404"/>
		<updated>2016-02-01T18:15:40Z</updated>

		<summary type="html">&lt;p&gt;DaveBlake: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Music library]] }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting in v16 &amp;quot;Jarvis&amp;quot;, Kodi will ask the user who adds any file music source, if it should be loaded into the library. &lt;br /&gt;
&lt;br /&gt;
We recommend you say yes to this prompt as the Kodi Music library has many extra features that help with music navigation, metadata and artwork retrieval.&lt;br /&gt;
&lt;br /&gt;
Once the music is loaded in Kodi&#039;s library, you can start to organize and browse music in all kinds of awesome ways. We have chart views, artist, genre, and many other views. Starting from v15 &amp;quot;Helix&amp;quot; you can also create your own custom music nodes just like smart playlists. For example you can now create an A-Z artist view, or all music from the 2000&#039;s. See [[Music nodes]] for a guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
== Explanation of Music importing options ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is go to System &amp;gt;&amp;gt; Settings &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Library &lt;br /&gt;
&lt;br /&gt;
And look at the options available:&lt;br /&gt;
&lt;br /&gt;
[[File:Music-Library-settings.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Include Artists who appear only on compilation albums&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turning this option on will the artists lists will show many more artists than you would normally like to see, it will include all artists found on every track of the album rather than just the main album artist(s). An example could be an album by a band, with 1 track that has a collaboration with a rapper on 1 song. With it on the rapper would be listed, off only the band is shown. Unfortunately this option is poorly named, and has nothing to do with compilations. When you tag your music you can either set the album artist(s) or if all the songs in an album have the same artist that that is taken as the album artist. If all the songs in an album have different artists then the album artist is taken as &amp;quot;various artists&amp;quot;. Basically you will normally want to turn this option off if you want a nice clean Artists view. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fetch additional information during updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will grab extra metadata and artwork for artists and albums from online sites (or local NFO files). Since we are a media centre and this kind of stuff is great, we recommend you turn this option on. It will download lots of things with scrapers such as artist biographies, moods, artist thumbnails, album artwork etc. However if you have a large music collection it can take some time, and you have to be confident that your files are well tagged first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Prefer online information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option will overide some of the artist and album data, that was initially derived from the tags in your song files, with information it finds online. The song files themselves are not changed in any way, just the data in the library. Providing that the scraper can uniquely identify the artist or album, this could be used to compensate for minimal tagging, but if you have tagged your music well it is better to let them take precedence, hence we recommend you switch it off normally. This makes it easy to tag your music files and know exactly how they will show up in Kodi. It also makes it easy to change data by simply editing the id3 tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scraper selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This option lets you choose a scraper to grab metadata such as artist biographies, and artwork such as pictures or artists. Kodi uses 2 scrapers here, one for the artist, and another for the albums. The difference being the album scraper is able to grab cover-art and album descriptions, genres and reviews. We recommend you stick with the universal scraper here, which will use the MusicBrainz API to search and a number of different sites such as Fanart.tv, TheAudioDB.com and Allmusic to grab the additional data. Since some of these sites are open, it is possible to add information to these sites and scrape the new data from them instantly.&lt;br /&gt;
&lt;br /&gt;
== Tagging with MusicBrainz Picard ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OK.. lets get one thing straight before we start. Kodi uses the Musicbrainz Artist and Album ID&#039;s to do all its metadata lookups. If you have these tags present in your music files then Kodi does not need to do a name search on your music which could introduce errors. This means that the chances of accurate artwork and metadata retrieval will be hugely increased. To date, the only bit of tagging software that can add these tags is MusicBrainz Picard so thats what we are going to use in this example. Thankfully, once its installed it takes about 4 clicks to tag something perfectly as the tagger app is based on online lookups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: That&#039;s not to say the old method of tagging files(with software like MP3tag http://www.mp3tag.de/en/ or MediaMonkey http://www.mediamonkey.com/) with accurate Artist and Album naming doesn&#039;t work. We just have a better way these days. Ultimately this method still uses the MusicBrainz ID to lookup metadata and artwork, you are just relying on the musicbrainz NameSearch API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So with that said, lets look at how to tag an album in Picard to be loaded into Kodi.&lt;br /&gt;
&lt;br /&gt;
Install (https://picard.musicbrainz.org/) then open Picard . Lets try to Auto Tag an Album:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) Click the Add folder icon in the top left of the toolbar and select the folder the album is in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Click the &amp;quot;Cluster&amp;quot; button (this brings all the files together so picard knows its a single album).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now click &amp;quot;Lookup&amp;quot;. You should now see the album on the right hand side box. (Picard has basically preformed an online search for your music on the MB site and selected what it thinks is the album)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Assuming its found the correct album, thats basically it. All you need to do is click save and Picard will save a whole wealth of new tags in your music.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets now look at those tags:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets click on a file that has 2 artists collaborating. In this case its track number 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03-50_cent-patiently_waiting_ft._eminem.flac&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard2.jpg]]&lt;br /&gt;
&lt;br /&gt;
So this song has 2 artists &amp;quot;50 Cent&amp;quot; and &amp;quot;Eminem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
As you can see it has them listed in the ARTISTS tag. &lt;br /&gt;
&lt;br /&gt;
This is very important as Kodi will now have 2 artists on the album and treat it as a compilation release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Picard3.jpg]]&lt;br /&gt;
&lt;br /&gt;
And if we look further down the list, we can see the release has lots of MBID&#039;s now that Kodi can use for online lookups.&lt;br /&gt;
&lt;br /&gt;
That&#039;s basically it, picard makes music tagging incredibly easy and quick. &lt;br /&gt;
&lt;br /&gt;
NOTE: Picard works by using drag and drop a lot. If it misidentifies a track or release, try dragging it onto a track to match it up. You can also right click on the album &amp;gt;&amp;gt; other verions. To select the correct release.&lt;br /&gt;
&lt;br /&gt;
== Importing into Kodi ==&lt;br /&gt;
&lt;br /&gt;
Lets now add this folder as a source in Kodi and scan in it into the library.&lt;br /&gt;
&lt;br /&gt;
Go to:&lt;br /&gt;
&lt;br /&gt;
Kodi &amp;gt;&amp;gt; Music &amp;gt;&amp;gt; Files &amp;gt;&amp;gt; Add Music &amp;gt;&amp;gt; Select the album folder (or your music folder if you have many albums) &amp;gt;&amp;gt; Scan to library when prompted.&lt;br /&gt;
&lt;br /&gt;
Assuming you have the options to search online for metadata enabled, Kodi will now scan the tags, and lookup and additional bits of artwork and metadata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now browse the library by artist, album or via many different views.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All artwork, artist biographies and details are now loaded into kodi&#039;s library.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can see the biography and additional details by selecting an artist in the Artists view, and hitting the info button (&amp;quot;i&amp;quot; on the keyboard).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Kodimusicimport3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can even change your scraper settings to download the biography in many different languages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags Kodi reads ==&lt;br /&gt;
&lt;br /&gt;
Kodi reads the following tags:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Kodi Database Field&lt;br /&gt;
! Kodi Version&lt;br /&gt;
! Vorbis&lt;br /&gt;
! ID3v2&lt;br /&gt;
! APE&lt;br /&gt;
! MP4&lt;br /&gt;
! ASF&lt;br /&gt;
|-&lt;br /&gt;
|strArtist&lt;br /&gt;
|v16&lt;br /&gt;
|ARTIST&lt;br /&gt;
|TPE1&lt;br /&gt;
|ARTIST&lt;br /&gt;
|\251ART&lt;br /&gt;
|Author&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
|ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ARTISTS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|TPE2 OR ALBUMARTIST or ALBUM ARTIST&lt;br /&gt;
|ALBUMARTIST  or ALBUM ARTIST&lt;br /&gt;
|aART&lt;br /&gt;
|WM/AlbumArtist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
|ALBUMARTISTS or ALBUM ARTISTS&lt;br /&gt;
| ----:com.apple.iTunes:ALBUMARTISTS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strAlbum&lt;br /&gt;
|v16&lt;br /&gt;
|ALBUM&lt;br /&gt;
|TALB&lt;br /&gt;
|ALBUM&lt;br /&gt;
|\251alb&lt;br /&gt;
|WM/AlbumTitle&lt;br /&gt;
|-&lt;br /&gt;
|strTitle&lt;br /&gt;
|v16&lt;br /&gt;
|TITLE&lt;br /&gt;
|TIT2&lt;br /&gt;
|TITLE&lt;br /&gt;
|\251nam&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|iTrack&lt;br /&gt;
|v16&lt;br /&gt;
|TRACKNUMBER&lt;br /&gt;
|TRCK&lt;br /&gt;
|TRACKNUMBER or TRACK&lt;br /&gt;
|trkn&lt;br /&gt;
|WM/TrackNumber or WM/Track&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DISCNUMBER&lt;br /&gt;
|TPOS&lt;br /&gt;
|DISCNUMBER or DISC&lt;br /&gt;
|disk&lt;br /&gt;
|WM/PartOfSet&lt;br /&gt;
|-&lt;br /&gt;
|iYear&lt;br /&gt;
|v16&lt;br /&gt;
|YEAR&lt;br /&gt;
|TYER&lt;br /&gt;
|YEAR&lt;br /&gt;
|\251day&lt;br /&gt;
|WM/Year&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|DATE&lt;br /&gt;
|TDRC, TDRL&lt;br /&gt;
|DATE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|strGenres&lt;br /&gt;
|v16&lt;br /&gt;
|GENRE&lt;br /&gt;
|TCON&lt;br /&gt;
|GENRE&lt;br /&gt;
|\251gen&lt;br /&gt;
|WM/Genre&lt;br /&gt;
|-&lt;br /&gt;
|mood&lt;br /&gt;
|v16&lt;br /&gt;
|MOOD&lt;br /&gt;
|TMOO OR TXXX:MOOD&lt;br /&gt;
|MOOD&lt;br /&gt;
| ----:com.apple.iTunes:MOOD&lt;br /&gt;
|WM/Mood&lt;br /&gt;
|-&lt;br /&gt;
|comment&lt;br /&gt;
|v16&lt;br /&gt;
|COMMENT&lt;br /&gt;
|COMM&lt;br /&gt;
|COMMENT&lt;br /&gt;
|\251cmt&lt;br /&gt;
|(COMMENT)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|CUESHEET&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|TCMP&lt;br /&gt;
|COMPILATION&lt;br /&gt;
|cpil&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|LYRICS&lt;br /&gt;
|USLT&lt;br /&gt;
|LYRICS&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
|REPLAYGAIN_TRACK_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_gain&lt;br /&gt;
|replaygain_track_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
|REPLAYGAIN_ALBUM_GAIN&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_gain&lt;br /&gt;
|replaygain_album_gain&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
|REPLAYGAIN_TRACK_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_track_peak&lt;br /&gt;
|replaygain_track_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
|REPLAYGAIN_ALBUM_PEAK&lt;br /&gt;
| ----:com.apple.iTunes:replaygain_album_peak&lt;br /&gt;
|replaygain_album_peak&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzArtistID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
|MUSICBRAINZ ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Artist Id&lt;br /&gt;
|MusicBrainz/Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzAlbumID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTISTID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist Id&lt;br /&gt;
|MusicBrainz/Album Artist Id&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
|MUSICBRAINZ ALBUM ARTIST&lt;br /&gt;
|MUSICBRAINZ_ALBUMARTIST&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Artist&lt;br /&gt;
|MusicBrainz/Album Artist&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
|MUSICBRAINZ ALBUM ID&lt;br /&gt;
|MUSICBRAINZ_ALBUMID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Album Id&lt;br /&gt;
|MusicBrainz/Album Id&lt;br /&gt;
|-&lt;br /&gt;
|strMusicBrainzTrackID&lt;br /&gt;
|v16&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
|UFID&lt;br /&gt;
|MUSICBRAINZ_TRACKID&lt;br /&gt;
| ----:com.apple.iTunes:MusicBrainz Track Id&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rating&lt;br /&gt;
|v16&lt;br /&gt;
|RATING&lt;br /&gt;
|POPM&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v16&lt;br /&gt;
|METADATA_BLOCK_PICTURE or COVERART or COVERARTMIME&lt;br /&gt;
|APIC&lt;br /&gt;
|&lt;br /&gt;
|covr&lt;br /&gt;
|WM/Picture&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|TCOM&lt;br /&gt;
|COMPOSER&lt;br /&gt;
|\251wrt&lt;br /&gt;
|WM/Composer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
|TPE3&lt;br /&gt;
|CONDUCTOR&lt;br /&gt;
| ----:com.apple.iTunes:CONDUCTOR&lt;br /&gt;
|WM/Conductor&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|LYRICIST&lt;br /&gt;
|TEXT&lt;br /&gt;
|LYRICIST&lt;br /&gt;
| ----:com.apple.iTunes:LYRICIST&lt;br /&gt;
|WM/Writer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
|TPE4&lt;br /&gt;
|REMIXER or MIXARTIST&lt;br /&gt;
| ----:com.apple.iTunes:REMIXER&lt;br /&gt;
|WM/ModifiedBy&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|(TIPL) or TXXX:Ensemble&lt;br /&gt;
|ENSEMBLE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ARRANGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|ENGINEER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|ENGINEER&lt;br /&gt;
| ----:com.apple.iTunes:ENGINEER&lt;br /&gt;
|WM/Engineer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PRODUCER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|PRODUCER&lt;br /&gt;
| ----:com.apple.iTunes:PRODUCER&lt;br /&gt;
|WM/Producer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|DJMIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|DJMIXER&lt;br /&gt;
| ----:com.apple.iTunes:DJMIXER&lt;br /&gt;
|WM/DJMixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|MIXER&lt;br /&gt;
|(TIPL)&lt;br /&gt;
|MIXER&lt;br /&gt;
| ----:com.apple.iTunes:MIXER&lt;br /&gt;
|WM/Mixer&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|v17&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|TMCL&lt;br /&gt;
|PERFORMER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Data Kodi Scrapes ==&lt;br /&gt;
&#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
* Life span (Born, Died) - TADB/AM/MB&lt;br /&gt;
* Formed, Disbanded&lt;br /&gt;
* YearsActive - AM&lt;br /&gt;
* Genres - TADB/AM&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Instruments&lt;br /&gt;
* Biography - TADB&lt;br /&gt;
* Discography - TADB/AM/MB&lt;br /&gt;
* Thumb - fanart.tv/TADB/AM/HT&lt;br /&gt;
* Fanart - fanart.tv/TADB/HT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
* Genres&lt;br /&gt;
* Year&lt;br /&gt;
* Compilation&lt;br /&gt;
* Moods - TADB/AM&lt;br /&gt;
* Styles - TADB/AM&lt;br /&gt;
* Themes - AM&lt;br /&gt;
* Review (description) - TADB&lt;br /&gt;
* Thumb (cover) - fanart.tv/TADB/AM&lt;br /&gt;
* Label&lt;br /&gt;
* Rating - TADB/AM/MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NFO files ==&lt;br /&gt;
{{main|NFO files}}&lt;br /&gt;
Like with most metadata in XBMC, MusicBrainz tags can be added using [[NFO files]]. Both album.nfo and artist.nfo files can contain the MusicBrainz tag or simply contain a URL to the correct page on the MusicBrainz website, similar to how Movies can contain an IMDb URL NFO file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
=== Similar page names ===&lt;br /&gt;
{{#lst:MusicBrainz|similar pages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>DaveBlake</name></author>
	</entry>
</feed>