<?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=Alwinus</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=Alwinus"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/Alwinus"/>
	<updated>2026-06-16T21:48:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=Addon.xml&amp;diff=224891</id>
		<title>Addon.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Addon.xml&amp;diff=224891"/>
		<updated>2021-03-08T13:42:09Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]}}&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every skin, script, or plugin in Kodi contains an &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; file which describes the add-on, providing credits, version information and dependencies. Below, we will explain how this file is structured and which elements must be used to create an add-on for Kodi. You can also consult the examples at the end to see how this file is laid out depending on if you are developing a skin or script.&lt;br /&gt;
&lt;br /&gt;
Every &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; file has the same basic structure, this example is for a video plugin:&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;?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;addon id=&amp;quot;plugin.addon.id&amp;quot; name=&amp;quot;Your Add-on&amp;quot; version=&amp;quot;1.2.3&amp;quot; provider-name=&amp;quot;You&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;requires&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot; version=&amp;quot;2.25.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/requires&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot; library=&amp;quot;addon.py&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;provides&amp;gt;video&amp;lt;/provides&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Your add-on&#039;s summary&amp;lt;/summary&amp;gt;&lt;br /&gt;
    &amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Your add-on&#039;s description&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
    &amp;lt;language&amp;gt;en&amp;lt;/language&amp;gt; &amp;lt;!-- the language of the videos or other content the plugin provides, may be omitted in case the addon does not provide any content --&amp;gt;&lt;br /&gt;
    &amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GPL-2.0-or-later&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;forum&amp;gt;https://forum.kodi.tv/showthread.php?tid=xxxx&amp;lt;/forum&amp;gt; &amp;lt;!-- may be omitted  --&amp;gt;&lt;br /&gt;
    &amp;lt;website&amp;gt;http://myplugin.com&amp;lt;/website&amp;gt; &amp;lt;!-- the url of the website that contains the videos (or the official website of your plugin). May be omitted.  --&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;you@youremail.com&amp;lt;/email&amp;gt; &amp;lt;!-- may be omitted  --&amp;gt;&lt;br /&gt;
    &amp;lt;source&amp;gt;http://github.com/you/plugin.addon.id&amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;news&amp;gt;v1.2.3 (01/02/201x)&lt;br /&gt;
      [new] some new feature&lt;br /&gt;
      [fix] some fix&lt;br /&gt;
    &amp;lt;/news&amp;gt;&lt;br /&gt;
    &amp;lt;assets&amp;gt;&lt;br /&gt;
        &amp;lt;icon&amp;gt;resources/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
        &amp;lt;fanart&amp;gt;resources/fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
        &amp;lt;banner&amp;gt;&amp;lt;/banner&amp;gt; &amp;lt;!-- optional --&amp;gt;&lt;br /&gt;
        &amp;lt;clearlogo&amp;gt;resources/clearlogo.png&amp;lt;/clearlogo&amp;gt; &amp;lt;!-- optional  --&amp;gt;&lt;br /&gt;
        &amp;lt;screenshot&amp;gt;&amp;lt;/screenshot&amp;gt; &amp;lt;!-- optional, max 10  --&amp;gt;&lt;br /&gt;
    &amp;lt;/assets&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a few important things to note in the above sample:&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;&amp;lt;addon&amp;gt;&amp;lt;/code&amp;gt; element must be present, and be the root node. It presents data about the add-on package as a whole.&lt;br /&gt;
* Inside the &amp;lt;code&amp;gt;&amp;lt;addon&amp;gt;&amp;lt;/code&amp;gt; element is a &amp;lt;code&amp;gt;&amp;lt;requires&amp;gt;&amp;lt;/code&amp;gt; element, listing all the dependencies that this add-on needs in order to function.&lt;br /&gt;
* Then there are one or more &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; elements, each of which describes a part of Kodi that the add-on extends.&lt;br /&gt;
* Finally, there is a specific &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; element that extends &amp;lt;code&amp;gt;&amp;quot;xbmc.addon.metadata&amp;quot;&amp;lt;/code&amp;gt;. This describes the add-on to the user.&lt;br /&gt;
* Banners and clearlogos assets exclusive to Kodi v.18+&lt;br /&gt;
= Elements =&lt;br /&gt;
 &lt;br /&gt;
== &amp;lt;addon&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;addon&amp;gt;&amp;lt;/code&amp;gt; element has 4 attributes, all required: &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;provider-name&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;addon id=&amp;quot;script.hello.world&amp;quot; name=&amp;quot;Hello World&amp;quot; version=&amp;quot;0.0.1&amp;quot; provider-name=&amp;quot;Dev1, Dev2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== id attribute ===&lt;br /&gt;
&lt;br /&gt;
The id attribute is the unique identifier used for this add-on.  It must be unique, and must use only lowercase characters, periods, underscores, dashes and numbers.  This identifier is also used as the name of the folder that contains the add-on, so for ease of searching, we suggest you use something like &amp;lt;type&amp;gt;.&amp;lt;uniquename&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== version attribute ===&lt;br /&gt;
&lt;br /&gt;
The version attribute is used by Kodi to determine whether updates are available. This should be use a version scheme like &amp;lt;code&amp;gt;x.y.z&amp;lt;/code&amp;gt; (major.minor.patch). For example: &amp;lt;code&amp;gt;version=&amp;quot;0.0.1&amp;quot;&amp;lt;/code&amp;gt;. Generally, you&#039;ll start with a version of &amp;lt;code&amp;gt;0.y.z&amp;lt;/code&amp;gt; for test releases and once you feel it is ready for a full release, you&#039;d bump the version to &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== How versioning works ====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.9&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.10&amp;lt;/code&amp;gt;   is newer than &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.3.0&amp;lt;/code&amp;gt;   is newer than &amp;lt;code&amp;gt;2.2.9&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~beta&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1~beta&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1~beta3&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~beta2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1~beta10&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~beta1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tip|Text should only be added for a beta version. In other cases version number should only contain numbers.}}&lt;br /&gt;
&lt;br /&gt;
=== name attribute ===&lt;br /&gt;
&lt;br /&gt;
The name attribute is the name of the add-on as it appears in the UI.  This should be in English where it makes sense for it to be so, and is not translatable.&lt;br /&gt;
&lt;br /&gt;
=== provider-name attribute ===&lt;br /&gt;
&lt;br /&gt;
The provider-name attribute is used as the author field.  This could be a team of authors or a single author. If the add-on is maintained by multiple people please separate them with a comma (&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;requires&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;requires&amp;gt;&amp;lt;/code&amp;gt; element contains one or more &amp;lt;code&amp;gt;&amp;lt;import&amp;gt;&amp;lt;/code&amp;gt; elements which specify which other add-ons this particular add-on requires, and which version of those add-ons it requires. These add-ons may be part of Kodi itself, or may be parts of other third-party add-ons.&lt;br /&gt;
&lt;br /&gt;
Kodi will only allow the add-on to be run if suitable versions of the (non-optional) add-ons on which this add-on depends are installed. When a user installs your add-on from an online repository via Kodi&#039;s add-on manager, Kodi attempts to resolve these dependencies, and install anything that your add-on relies on first. The dependency must be provided with the minimum version number your script/skin requires.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
Here is a sample &amp;lt;code&amp;gt;&amp;lt;requires&amp;gt;&amp;lt;/code&amp;gt; block that imports two required modules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;requires&amp;gt;&lt;br /&gt;
  &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot;                 version=&amp;quot;2.25.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;import addon=&amp;quot;script.module.elementtree&amp;quot;   version=&amp;quot;1.2.7&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/requires&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another example, which will only install on LibreELEC. This occurs because the addon will depend on an addon that only exists in LibreELEC. Hence, Kodi will refuse to install the addon in other platforms due to unmet dependencies:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;requires&amp;gt;&lt;br /&gt;
  &amp;lt;import addon=&amp;quot;os.librelec.tv&amp;quot; version=&amp;quot;2.0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/requires&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;import&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;code&amp;gt;&amp;lt;import&amp;gt;&amp;lt;/code&amp;gt; element describes one dependency for an add-on, with two required attributes: &amp;lt;code&amp;gt;addon&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;. There is also an optional attribute called, fittingly, &amp;lt;code&amp;gt;optional&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If your add-on relies on other third-party add-ons, Kodi will automatically install them as well, provided they are available on an existing add-on repository. If they aren&#039;t available on any existing repository, the user must install the other add-ons themselves. Note that you need to include any Python libraries you need directly in your add-on; these can&#039;t be loaded with an &amp;lt;code&amp;gt;&amp;lt;import&amp;gt;&amp;lt;/code&amp;gt; element, since Kodi wouldn&#039;t know what to do with them.&lt;br /&gt;
&lt;br /&gt;
=== addon attribute ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;addon&amp;lt;/code&amp;gt; attribute specifies the id of the required add-on, e.g. &amp;lt;code&amp;gt;script.module.elementtree&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== version attribute ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; attribute specifies the minimum version of the required add-on to be installed.&lt;br /&gt;
&lt;br /&gt;
==== Dependency versions ====&lt;br /&gt;
&lt;br /&gt;
Each different Kodi version might require you to use a higher version of the &amp;lt;code&amp;gt;xbmc.*&amp;lt;/code&amp;gt; add-on dependencies to control on which version of Kodi the add-on can be installed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ Current versions&lt;br /&gt;
! Kodi version !! xbmc.python !! xbmc.gui !! xbmc.json !! xbmc.metadata !! xbmc.addon&lt;br /&gt;
|-&lt;br /&gt;
| Dharma 10.1 &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Deprecated&amp;lt;/font&amp;gt;|| 1.0 || 2.11 || 2.0|| 1.0 || 0.1&lt;br /&gt;
|-&lt;br /&gt;
| Eden 11.0 &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Deprecated&amp;lt;/font&amp;gt; || 2.0 || 3.0 || 4.0 || 1.0 || 11.0&lt;br /&gt;
|-&lt;br /&gt;
| Frodo 12.x &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Deprecated&amp;lt;/font&amp;gt;|| 2.1.0 || 4.0.0 || 6.0.0 || 2.1.0 || 12.0.0&lt;br /&gt;
|-&lt;br /&gt;
| Gotham 13.x || 2.14.0 (ABI 2.1.0) || 5.0.1 || 6.6.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 13.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Helix 14.x || 2.19.0 (ABI 2.1.0) || 5.3.0 || 6.20.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 14.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Isengard 15.x || 2.20.0 (ABI 2.1.0) || 5.9.0 (ABI 5.3.0) || 6.25.1 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 15.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis 16.x || 2.24.0 (ABI 2.1.0) || 5.10.0 || 6.32.4 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 16.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Krypton 17.x || 2.25.0 (ABI 2.1.0) || 5.12.0 || 7.0.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 17.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Leia 18.x || 2.26.0 (ABI 2.1.0) || 5.14.0 || 9.7.2 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 17.9.910 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Matrix 19.x || 3.0.0 (ABI 3.0.0) || 5.15.0 (ABI 5.14.0) || 11.2.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 18.9.701 (ABI 12.0.0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each Kodi version contain a certain backwards compatibility. For example add-ons made for Gotham 13.x can still work ion Jarvis 16.x. Do note that this might change in the future. The &#039;&#039;&#039;ABI&#039;&#039;&#039; version you see in the table above is the backwards compatibility version for which add-ons are still marked &amp;quot;working&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== optional attribute ===&lt;br /&gt;
&lt;br /&gt;
The dependency may be made optional by setting the &amp;lt;code&amp;gt;optional&amp;lt;/code&amp;gt; attribute to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;. This will only install the dependency when the add-on actually needs it. Even if this dependency is missing, the add-on can still be installed.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;extension&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; element describes the technical aspects of this add-on. It will have at least a point attribute which will give the part of Kodi that the add-on extends. For instance, the &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; file for the Confluence skin extends the &amp;lt;code&amp;gt;xbmc.gui.skin&amp;lt;/code&amp;gt; part of xbmc. All available extension points are given below.&lt;br /&gt;
&lt;br /&gt;
The various extension points that Kodi provides are given in the list below.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!Extension point&lt;br /&gt;
!Add-on Category&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Skinning|xbmc.gui.skin]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Skin&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.webinterface&amp;lt;/code&amp;gt;&lt;br /&gt;
|Web interface&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Add-on repositories|xbmc.addon.repository]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Service_add-ons|xbmc.service]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Services&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.albums&amp;lt;/code&amp;gt;&lt;br /&gt;
|Album information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.artists&amp;lt;/code&amp;gt;&lt;br /&gt;
|Artist information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.movies&amp;lt;/code&amp;gt;&lt;br /&gt;
|Movie information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.musicvideos&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music video information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.tvshows&amp;lt;/code&amp;gt;&lt;br /&gt;
|TV information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.library&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.ui.screensaver&amp;lt;/code&amp;gt;&lt;br /&gt;
|Screensaver&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.player.musicviz&amp;lt;/code&amp;gt;&lt;br /&gt;
|Visualization&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Plugin sources|xbmc.python.pluginsource]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music Add-ons (audio) / Picture Add-ons (image) / Program Add-ons (executable) / Video Add-ons (video)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Script_sources|xbmc.python.script]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music Add-ons (audio) / Picture Add-ons (image) / Program Add-ons (executable) / Video Add-ons (video)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.python.weather&amp;lt;/code&amp;gt;&lt;br /&gt;
|Weather&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.subtitle.module&amp;lt;/code&amp;gt;&lt;br /&gt;
|Subtitle service module&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Script_lyrics|xbmc.python.lyrics]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Lyrics&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.python.library&amp;lt;/code&amp;gt;&lt;br /&gt;
|These don&#039;t show up in the addon browser and are purely as support for other scripts.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.python.module&amp;lt;/code&amp;gt;&lt;br /&gt;
|Provides an additional python library. mainly for use in script.module.* addons.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.addon.video&amp;lt;/code&amp;gt;&lt;br /&gt;
|Video Add-ons (video)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.addon.audio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music Add-ons (audio)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.addon.image&amp;lt;/code&amp;gt;&lt;br /&gt;
|Picture Add-ons (image)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.font&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional font files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.images&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional image files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.language&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional language files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.uisounds&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional sound files&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Add-ons that don&#039;t correspond to a specific add-on category can not be installed by users. These are usually supporting or shared add-ons that are installed automatically by the add-ons that require them.&lt;br /&gt;
&lt;br /&gt;
=== xbmc.python.pluginsource ===&lt;br /&gt;
{{See also|Plugin sources}}&lt;br /&gt;
&lt;br /&gt;
The most common extension point that will be used by plugin addon developers is &amp;lt;code&amp;gt;xbmc.python.pluginsource&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== library attribute ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; element has an extra attribute: &amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;. This is the name of the Python script (startup script) that will be run when the add-on is activated. This file must exist in the root of your add-on directory.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;provides&amp;gt; element ====&lt;br /&gt;
&lt;br /&gt;
The extension has an additional child element named &amp;lt;code&amp;gt;&amp;lt;provides&amp;gt;&amp;lt;/code&amp;gt;, which contains a whitespace separated list of &amp;lt;code&amp;gt;image&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;, and/or &amp;lt;code&amp;gt;executable&amp;lt;/code&amp;gt;. This determines in what area (or context) of the Kodi system your addon will make itself visible in (please note that this applies only to plugin extension points):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!Provides&lt;br /&gt;
!Appears in&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;image&amp;lt;/code&amp;gt;&lt;br /&gt;
|Pictures&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt;&lt;br /&gt;
|Video&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;executable&amp;lt;/code&amp;gt;&lt;br /&gt;
|Programs&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;(blank)&#039;&#039;&lt;br /&gt;
|See Note&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|If the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; element is not defined, behaviour will depend on the structure of your addon. If it has a single extension point (e.g. a single &#039;&#039;&#039;xbmc.python.script&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.python.pluginsource&#039;&#039;&#039;), kodi will default to &amp;quot;executable&amp;quot; (thus your addon will be shown in programs). If your addon has multiple extension points and none specifies a &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; element, different entries for your addon will be shown in &amp;quot;programs&amp;quot; (multiple fallbacks to &amp;quot;executable&amp;quot;). If your addon has multiple extension points and only one (or some) define the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; tag it really depends on the order of the extension points. If the first extension point (your addon &#039;&#039;&#039;main extension point&#039;&#039;&#039;) defines the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; element, kodi will assume all the other (empty) extension points provide the same content. Otherwise it will set the content for all the extension points that specify the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; tag and fallback all the others to &amp;quot;executable&amp;quot;. &#039;&#039;&#039;At the moment, there is no way to hide an addon from the interface.&#039;&#039;&#039;  |reminder}}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot; library=&amp;quot;gpodderxbmc.py&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;provides&amp;gt;audio video&amp;lt;/provides&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== xbmc.addon.metadata ===&lt;br /&gt;
&lt;br /&gt;
This special extension point &#039;&#039;must&#039;&#039; be provided by all add-ons, and is the way that your add-on is described to users of the Kodi add-on manager.&lt;br /&gt;
&lt;br /&gt;
==== Available elements ====&lt;br /&gt;
&lt;br /&gt;
There are several elements that this should contain. Most of these elements are required (except the deprecated tag). However, in case the elements do not apply (e.g. language, website, email) they can be omitted from the addon.xml file. Language specific elements must always be present in English as a minimum.&lt;br /&gt;
&lt;br /&gt;
Many of these elements can be translated into multiple languages and should be added once for each supported language. The &amp;lt;code&amp;gt;lang&amp;lt;/code&amp;gt; attribute should contain a [https://en.wikipedia.org/wiki/Locale_(computer_software) locale identifier]. If omitted, it defaults to en_GB. (Note: Kodi v14 and older uses ISO-639 code. See [[List of language codes (ISO-639:1988)]]).&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;summary&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
One or more &amp;lt;code&amp;gt;&amp;lt;summary&amp;gt;&amp;lt;/code&amp;gt; elements provide a short summary of what the add-on does. This should be a single sentence. It may be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Hello World script provides some basic examples on how to create your first script.&amp;lt;/summary&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;description&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
One or more &amp;lt;code&amp;gt;&amp;lt;description&amp;gt;&amp;lt;/code&amp;gt; elements provide a more detailed summary of what the add-on does. It may be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Hello World script provides some basic examples on how to create your first script&lt;br /&gt;
 and hopefully will increase the number of Kodi users to start creating their own addons.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;disclaimer&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
One or more &amp;lt;code&amp;gt;&amp;lt;disclaimer&amp;gt;&amp;lt;/code&amp;gt; elements that indicate what (if any) things the user should know about the add-on. There is no need to have a disclaimer if you don&#039;t want one, though if something requires settings, or only works in a particular country then you may want to state this here. It may be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;Feel free to use this script. For information visit the wiki.&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;news&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Used in Kodi v17 Krypton and later only. Older versions are forward compatible.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;news&amp;gt;&amp;lt;/code&amp;gt; element should contains a simple description of the major changes made to the add-on (new functionality, big fixes, etc). This is displayed in the Kodi addon installation/update system. (In the author&#039;s opinion, too many add-ons skip this piece of information, making it difficult for users to determine whether a particular problem that they may have been having has been fixed or not.)&lt;br /&gt;
Please keep it short (it&#039;s limited to 1500 characters), you might want to only include the changes for the last version here.&lt;br /&gt;
&lt;br /&gt;
Here is an example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;news&amp;gt;v0.1.2  (2014-1-15)&lt;br /&gt;
- Added notification for Ubuntu users checking through apt command&amp;lt;/news&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;platform&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;platform&amp;gt;&amp;lt;/code&amp;gt; tag specifies which platforms (operating systems, hardware, architecture) this add-on runs on. Many add-ons will run on all platforms, so &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; is an option. If the platform tag is missing, we assume the add-on runs on all platforms. A combination of these is also possible. Currently available options are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;linux&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx-x86_64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx32&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx-i686&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ios&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ios-armv7&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ios-aarch64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windx&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windows&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windows-i686&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windows-x86_64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windowsstore&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android-armv7&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android-aarch64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android-i686&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v19 Matrix and later.}}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tvos&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tvos-aarch64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;language&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/code&amp;gt; elements indicate the language(s) of the &#039;&#039;content&#039;&#039; provided by your add-on. It applies to plugins, scripts, scrapers etc. This allows browsing the add-on list by language. When there is no specific language provided in your content, omit it from the addon.xml.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;language&amp;gt;en de fr&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;license&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;license&amp;gt;&amp;lt;/code&amp;gt; element indicates what license is used for this add-on. In general, the [https://spdx.org/licenses/ SPDX identifier] for the license is advised when compared to the full license name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;license&amp;gt;GPL-2.0-or-later&amp;lt;/license&amp;gt; &amp;lt;!-- SPDX identifier --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;license&amp;gt;GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&amp;lt;/license&amp;gt; &amp;lt;!-- Full license name --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;forum&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;forum&amp;gt;&amp;lt;/code&amp;gt; element provides the forum thread URL for this specific add-on. Leave this blank if there is no forum thread.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;forum&amp;gt;http://www.myaddonwebsite.com/forum.php?thread=12345&amp;lt;/forum&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;website&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;website&amp;gt;&amp;lt;/code&amp;gt; element provides the website URL for this specific add-on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;website&amp;gt;http://www.myaddonwebsite.com/&amp;lt;/website&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;nowiki&amp;gt;&amp;lt;source&amp;gt;&amp;lt;/nowiki&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; element provides the URL for the source code for this specific add-on.&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;source&amp;gt;http://github.com/someone/myaddon&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;email&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;email&amp;gt;&amp;lt;/code&amp;gt; element provides the email address of the author if he wishes to do so for this specific add-on. Here are two examples of how you can make it look (the second one it harder for spambots to use). This can be left blank if you do not want to make your email address public.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;foo@bar.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    or&lt;br /&gt;
&amp;lt;email&amp;gt;foo at bar dot com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;lifecyclestate&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v19 Matrix and later.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;lifecyclestate&amp;gt;&amp;lt;/code&amp;gt; tag will mark the add-on as broken or deprecated in the Kodi repo and provide the reason why. A dialog will be presented to every user that has the addon installed, so please try to be specific about the related reason. Also, the lifecyclestate tag presupposes that a version bump has been made to the addon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;lifecyclestate type=&amp;quot;deprecated&amp;quot;&amp;gt;Description why deprecated&amp;lt;/lifecyclestate&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can also optionally be translated into several languages.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;lifecyclestate type=&amp;quot;broken&amp;quot; lang=&amp;quot;en_GB&amp;quot;&amp;gt;Description why broken&amp;lt;/lifecyclestate&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible types for here:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|  &#039;&#039;&#039;broken&#039;&#039;&#039;&lt;br /&gt;
|  To mark addon as broken and no more usable.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;deprecated&#039;&#039;&#039;&lt;br /&gt;
|  To mark addon as deprected and to have e.g. replaced by another addon.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;normal&#039;&#039;&#039;&lt;br /&gt;
|  To set addon as normal. This value is not really needed, only available to be able to declare all possible life paths.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;broken&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v18 Leia and earlier. For matrix and later, see [[Addon.xml#.3Clifecyclestate.3E|lifecyclestate]]}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;broken&amp;gt;&amp;lt;/code&amp;gt; tag will mark the add-on as broken in the Kodi repo and provide the reason why. A dialog will be presented to every user that has the addon installed, so please try to be specific about the broken reason. Also, the broken tag presupposes that a version bump has been made to the addon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;broken&amp;gt;deprecated&amp;lt;/broken&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;assets&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v17 Krypton and later.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;assets&amp;gt;&amp;lt;/code&amp;gt; element is a manifest that describes the various assets the add-on provides and where they are located. Supported sub-elements (some optional) are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;icon&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#icon_png_element|icon.png]] - if an icon.png file exists it must be listed here (mandatory since Kodi v17 Krypton)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;fanart&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#fanart_jpg_element|fanart.jpg]] - if a fanart.jpg file exists it must be listed here (mandatory since Kodi v17 Krypton)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;screenshot&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#screenshot_specifications|screenshots]] - &#039;&#039;&#039;(optional)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v18 Leia and later.}}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;banner&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#banner_element|banner.jpg]] - &#039;&#039;&#039;(optional)&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;clearlogo&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#clearlogo_element|clearlogo.png]] - &#039;&#039;&#039;(optional)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If some elements are empty or not specified, it will be treated as non-existing/not provided. From all the above items, only icon and fanart are mandatory for addons since Kodi v17 Krypton and later.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;assets&amp;gt;&lt;br /&gt;
    &amp;lt;icon&amp;gt;resources/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;resources/fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;banner&amp;gt;resources/banner.jpg&amp;lt;/banner&amp;gt;&lt;br /&gt;
    &amp;lt;clearlogo&amp;gt;resources/clearlogo.png&amp;lt;/clearlogo&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-01.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-02.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-03.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-04.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
&amp;lt;/assets&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the above example definition, the files must be placed in the &amp;lt;code&amp;gt;resources&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;reuselanguageinvoker&amp;gt; =====&lt;br /&gt;
{{note|Kodi v18 Leia and later.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;reuselanguageinvoker&amp;gt;&amp;lt;/code&amp;gt; element is a feature introduced with Kodi 18.0 that changes the way the python invoker works in Kodi - trying to reuse the invoker instances as much as possible. As a result, the addon performance is greatly improved. However, note that for the element to work some changes may be required in your addon. Namely, since the invoker is reused, make sure &amp;lt;code&amp;gt;sys.argv&amp;lt;/code&amp;gt; is always passed to your entrypoint and propagated throughout your codebase. Do not store it as a class variable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;reuselanguageinvoker&amp;gt;true&amp;lt;/reuselanguageinvoker&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is advised to set this element to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; while developing the addon, making it only &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; for the production version (and after testing).&lt;br /&gt;
&lt;br /&gt;
== Skin specific elements ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|  &#039;&#039;&#039;effectslowdown&#039;&#039;&#039;&lt;br /&gt;
|  A multiplier that is applied to all &amp;lt;animation&amp;gt; effect lengths in the skin. Useful to slow down all animations globally so that you can better configure timings and see interactions between animating controls.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;debugging&#039;&#039;&#039;&lt;br /&gt;
|  When set to true, it&#039;ll display onscreen debug information (xml filename, mouse position and focused control type and name) in the skin.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;res&#039;&#039;&#039;&lt;br /&gt;
|  Support for arbitrary skin resolutions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== How window xml files are found ===&lt;br /&gt;
&lt;br /&gt;
Kodi can run in many differing resolutions, and a skin should try and cater to all these resolutions. The easiest way is to develop for one specific resolution and make sure that all controls contain &amp;lt;width&amp;gt; and &amp;lt;height&amp;gt; tags. That way, Kodi can scale the controls to the new screen resolution.&lt;br /&gt;
&lt;br /&gt;
However, you may choose to develop alternative window xml files for differing resolutions (such as for HDTV resolutions, or for widescreen versus 4x3 resolutions).&lt;br /&gt;
&lt;br /&gt;
The order that Kodi looks for it&#039;s skin files are as follows:&lt;br /&gt;
&lt;br /&gt;
# It first looks in the current screenmode folder (one of 1080i, 720p, NTSC16x9, NTSC, PAL16x9 or PAL)&lt;br /&gt;
# If the current screenmode is 1080i and there&#039;s no 1080i folder, it then looks in the 720p folder.&lt;br /&gt;
# Finally, it looks in the &#039;&#039;&#039;res&#039;&#039;&#039; folder.&lt;br /&gt;
&lt;br /&gt;
This allows you to just put any window files that do not require special treatment for 16x9 resolutions etc. in the &amp;lt;defaultresolution&amp;gt; folder, preventing needless repetition.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== addon.xml for skins ==&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;addon id=&amp;quot;skin.estuary&amp;quot; version=&amp;quot;2.0.22&amp;quot; name=&amp;quot;Estuary&amp;quot; provider-name=&amp;quot;phil65, Ichabod Fletchman&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;requires&amp;gt;&lt;br /&gt;
		&amp;lt;import addon=&amp;quot;xbmc.gui&amp;quot; version=&amp;quot;5.14.0&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/requires&amp;gt;&lt;br /&gt;
	&amp;lt;extension point=&amp;quot;xbmc.gui.skin&amp;quot; debugging=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1440&amp;quot; aspect=&amp;quot;4:3&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1280&amp;quot; aspect=&amp;quot;3:2&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1200&amp;quot; aspect=&amp;quot;16:10&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2040&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;17:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;16:9&amp;quot; default=&amp;quot;true&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2560&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;21:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2338&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;19.5:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2160&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;18:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/extension&amp;gt;&lt;br /&gt;
	&amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Estuary skin by phil65. (Kodi&#039;s default skin)&amp;lt;/summary&amp;gt;&lt;br /&gt;
		&amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Estuary is the default skin for Kodi 17.0 and above. It attempts to be easy for first time Kodi users to understand and use.&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;Estuary is the default skin for Kodi, removing it may cause issues&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
		&amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
		&amp;lt;license&amp;gt;CC-BY-4.0, GPL-2.0-or-later&amp;lt;/license&amp;gt;&lt;br /&gt;
		&amp;lt;forum&amp;gt;http://forum.kodi.tv/&amp;lt;/forum&amp;gt;&lt;br /&gt;
		&amp;lt;source&amp;gt;https://github.com/xbmc/skin.estuary/&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;assets&amp;gt;&lt;br /&gt;
			&amp;lt;icon&amp;gt;resources/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
			&amp;lt;fanart&amp;gt;resources/fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-01.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-02.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-03.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-04.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-05.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-06.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-07.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-08.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
		&amp;lt;/assets&amp;gt;&lt;br /&gt;
	&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
One thing to note is that &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;all tag names are lower case.&amp;lt;/font&amp;gt; XML tag names are case sensitive!&lt;br /&gt;
&lt;br /&gt;
== addon.xml for scripts ==&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;?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;addon&lt;br /&gt;
    id=&amp;quot;script.artwork.downloader&amp;quot;&lt;br /&gt;
    name=&amp;quot;Artwork Downloader&amp;quot;&lt;br /&gt;
    version=&amp;quot;12.0.12&amp;quot;&lt;br /&gt;
    provider-name=&amp;quot;Martijn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;requires&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot;                 version=&amp;quot;2.25.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;script.module.elementtree&amp;quot;   version=&amp;quot;1.2.7&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;script.module.simplejson&amp;quot;    version=&amp;quot;2.0.10&amp;quot; optional=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;script.common.plugin.cache&amp;quot;  version=&amp;quot;1.3.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/requires&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.script&amp;quot;         library=&amp;quot;default.py&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;provides&amp;gt;executable&amp;lt;/provides&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.service&amp;quot; library=&amp;quot;service.py&amp;quot; start=&amp;quot;login&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Downloads Artwork for TV shows, Movies and Musicvideos in your library&amp;lt;/summary&amp;gt;&lt;br /&gt;
    &amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Downloads all available artwork for TV shows, Movies and Musicvideos in your library. Check the options for supported artwork[CR]Artwork sources:[CR]www.fanart.tv[CR]www.thetvdb.com[CR]www.themoviedb.org[CR]Remark:[CR]Check your skin to see what type of artwork is supported![CR]Each TV Show/Movie must have its own folder![CR]Skin integration:[CR]See readme file&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;For bugs, requests or general questions visit the Artwork Downloader thread on the Kodi forum.&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
    &amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GPL-2.0-or-later&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;forum&amp;gt;...&amp;lt;/forum&amp;gt;&lt;br /&gt;
    &amp;lt;website&amp;gt;...&amp;lt;/website&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;...&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;source&amp;gt;...&amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;news&amp;gt;&lt;br /&gt;
      v12.0.12:&lt;br /&gt;
        - Changes ....&lt;br /&gt;
    &amp;lt;/news&amp;gt;&lt;br /&gt;
    &amp;lt;assets&amp;gt;&lt;br /&gt;
        &amp;lt;icon&amp;gt;resources/images/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
        &amp;lt;fanart&amp;gt;resources/images/fanart.png&amp;lt;/fanart&amp;gt;&lt;br /&gt;
        &amp;lt;screenshot&amp;gt;resources/images/screenshot.png&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;/assets&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common errors ===&lt;br /&gt;
&lt;br /&gt;
If you are getting errors when installing your Kodi addon, then you may have errors in your addon.xml file, which could be any of the following:&lt;br /&gt;
&lt;br /&gt;
# Invalid characters - does any of your description text, addon name, etc. have any of the following? !, ?, -, etc&lt;br /&gt;
# Too large description can sometimes cause issues&lt;br /&gt;
# You may have an opening tag but not a closing tag further in the file e.g. &amp;lt;description&amp;gt; but not later on &amp;lt;/description&amp;gt;&lt;br /&gt;
# If you have directly updated your code and are still finding errors which you know you have fixed, it&#039;s possible your cache is still holding the previous version. Try clearing contents of the following folders (or if this fails, reboot your Kodi device):&lt;br /&gt;
* .kodi/addons/temp&lt;br /&gt;
* .kodi/temp/temp&lt;br /&gt;
* .kodi/temp/archive_cache&lt;br /&gt;
&lt;br /&gt;
= Schema Definition =&lt;br /&gt;
&lt;br /&gt;
The XML schema definition for &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; is located [https://github.com/xbmc/xbmc/blob/master/addons/xbmc.addon/metadata.xsd here].&lt;br /&gt;
&lt;br /&gt;
{{Leia updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on development]]&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Addon.xml&amp;diff=224890</id>
		<title>Addon.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Addon.xml&amp;diff=224890"/>
		<updated>2021-03-08T13:40:45Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]}}&lt;br /&gt;
{{TOC right}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every skin, script, or plugin in Kodi contains an &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; file which describes the add-on, providing credits, version information and dependencies. Below, we will explain how this file is structured and which elements must be used to create an add-on for Kodi. You can also consult the examples at the end to see how this file is laid out depending on if you are developing a skin or script.&lt;br /&gt;
&lt;br /&gt;
Every &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; file has the same basic structure, this example is for a video plugin:&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;?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;addon id=&amp;quot;plugin.addon.id&amp;quot; name=&amp;quot;Your Add-on&amp;quot; version=&amp;quot;1.2.3&amp;quot; provider-name=&amp;quot;You&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;requires&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot; version=&amp;quot;2.25.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/requires&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot; library=&amp;quot;addon.py&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;provides&amp;gt;video&amp;lt;/provides&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Your add-on&#039;s summary&amp;lt;/summary&amp;gt;&lt;br /&gt;
    &amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Your add-on&#039;s description&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
    &amp;lt;language&amp;gt;en&amp;lt;/language&amp;gt; &amp;lt;!-- the language of the videos or other content the plugin provides, may be omitted in case the addon does not provide any content --&amp;gt;&lt;br /&gt;
    &amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GPL-2.0-or-later&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;forum&amp;gt;https://forum.kodi.tv/showthread.php?tid=xxxx&amp;lt;/forum&amp;gt; &amp;lt;!-- may be omitted  --&amp;gt;&lt;br /&gt;
    &amp;lt;website&amp;gt;http://myplugin.com&amp;lt;/website&amp;gt; &amp;lt;!-- the url of the website that contains the videos (or the official website of your plugin). May be omitted.  --&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;you@youremail.com&amp;lt;/email&amp;gt; &amp;lt;!-- may be omitted  --&amp;gt;&lt;br /&gt;
    &amp;lt;source&amp;gt;http://github.com/you/plugin.addon.id&amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;news&amp;gt;v1.2.3 (01/02/201x)&lt;br /&gt;
      [new] some new feature&lt;br /&gt;
      [fix] some fix&lt;br /&gt;
    &amp;lt;/news&amp;gt;&lt;br /&gt;
    &amp;lt;assets&amp;gt;&lt;br /&gt;
        &amp;lt;icon&amp;gt;resources/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
        &amp;lt;fanart&amp;gt;resources/fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
        &amp;lt;banner&amp;gt;&amp;lt;/banner&amp;gt; &amp;lt;!-- optional --&amp;gt;&lt;br /&gt;
        &amp;lt;clearlogo&amp;gt;resources/clearlogo.png&amp;lt;/clearlogo&amp;gt; &amp;lt;!-- optional  --&amp;gt;&lt;br /&gt;
        &amp;lt;screenshot&amp;gt;&amp;lt;/screenshot&amp;gt; &amp;lt;!-- optional, max 10  --&amp;gt;&lt;br /&gt;
    &amp;lt;/assets&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a few important things to note in the above sample:&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;&amp;lt;addon&amp;gt;&amp;lt;/code&amp;gt; element must be present, and be the root node. It presents data about the add-on package as a whole.&lt;br /&gt;
* Inside the &amp;lt;code&amp;gt;&amp;lt;addon&amp;gt;&amp;lt;/code&amp;gt; element is a &amp;lt;code&amp;gt;&amp;lt;requires&amp;gt;&amp;lt;/code&amp;gt; element, listing all the dependencies that this add-on needs in order to function.&lt;br /&gt;
* Then there are one or more &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; elements, each of which describes a part of Kodi that the add-on extends.&lt;br /&gt;
* Finally, there is a specific &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; element that extends &amp;lt;code&amp;gt;&amp;quot;xbmc.addon.metadata&amp;quot;&amp;lt;/code&amp;gt;. This describes the add-on to the user.&lt;br /&gt;
* Banners and clearlogos assets exclusive to Kodi v.18+&lt;br /&gt;
= Elements =&lt;br /&gt;
 &lt;br /&gt;
== &amp;lt;addon&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;addon&amp;gt;&amp;lt;/code&amp;gt; element has 4 attributes, all required: &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;provider-name&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;addon id=&amp;quot;script.hello.world&amp;quot; name=&amp;quot;Hello World&amp;quot; version=&amp;quot;0.0.1&amp;quot; provider-name=&amp;quot;Dev1, Dev2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== id attribute ===&lt;br /&gt;
&lt;br /&gt;
The id attribute is the unique identifier used for this add-on.  It must be unique, and must use only lowercase characters, periods, underscores, dashes and numbers.  This identifier is also used as the name of the folder that contains the add-on, so for ease of searching, we suggest you use something like &amp;lt;type&amp;gt;.&amp;lt;uniquename&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== version attribute ===&lt;br /&gt;
&lt;br /&gt;
The version attribute is used by Kodi to determine whether updates are available. This should be use a version scheme like &amp;lt;code&amp;gt;x.y.z&amp;lt;/code&amp;gt; (major.minor.patch). For example: &amp;lt;code&amp;gt;version=&amp;quot;0.0.1&amp;quot;&amp;lt;/code&amp;gt;. Generally, you&#039;ll start with a version of &amp;lt;code&amp;gt;0.y.z&amp;lt;/code&amp;gt; for test releases and once you feel it is ready for a full release, you&#039;d bump the version to &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== How versioning works ====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.9&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.10&amp;lt;/code&amp;gt;   is newer than &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.3.0&amp;lt;/code&amp;gt;   is newer than &amp;lt;code&amp;gt;2.2.9&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~beta&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1~beta&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1~beta3&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~beta2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;2.2.1~beta10&amp;lt;/code&amp;gt; is newer than &amp;lt;code&amp;gt;2.2.1~beta1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{tip|Text should only be added for a beta version. In other cases version number should only contain numbers.}}&lt;br /&gt;
&lt;br /&gt;
=== name attribute ===&lt;br /&gt;
&lt;br /&gt;
The name attribute is the name of the add-on as it appears in the UI.  This should be in English where it makes sense for it to be so, and is not translatable.&lt;br /&gt;
&lt;br /&gt;
=== provider-name attribute ===&lt;br /&gt;
&lt;br /&gt;
The provider-name attribute is used as the author field.  This could be a team of authors or a single author. If the add-on is maintained by multiple people please separate them with a comma (&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;requires&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;requires&amp;gt;&amp;lt;/code&amp;gt; element contains one or more &amp;lt;code&amp;gt;&amp;lt;import&amp;gt;&amp;lt;/code&amp;gt; elements which specify which other add-ons this particular add-on requires, and which version of those add-ons it requires. These add-ons may be part of Kodi itself, or may be parts of other third-party add-ons.&lt;br /&gt;
&lt;br /&gt;
Kodi will only allow the add-on to be run if suitable versions of the (non-optional) add-ons on which this add-on depends are installed. When a user installs your add-on from an online repository via Kodi&#039;s add-on manager, Kodi attempts to resolve these dependencies, and install anything that your add-on relies on first. The dependency must be provided with the minimum version number your script/skin requires.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
Here is a sample &amp;lt;code&amp;gt;&amp;lt;requires&amp;gt;&amp;lt;/code&amp;gt; block that imports two required modules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;requires&amp;gt;&lt;br /&gt;
  &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot;                 version=&amp;quot;2.25.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;import addon=&amp;quot;script.module.elementtree&amp;quot;   version=&amp;quot;1.2.7&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/requires&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another example, which will only install on LibreELEC. This occurs because the addon will depend on an addon that only exists in LibreELEC. Hence, Kodi will refuse to install the addon in other platforms due to unmet dependencies:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;requires&amp;gt;&lt;br /&gt;
  &amp;lt;import addon=&amp;quot;os.librelec.tv&amp;quot; version=&amp;quot;2.0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/requires&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;import&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;code&amp;gt;&amp;lt;import&amp;gt;&amp;lt;/code&amp;gt; element describes one dependency for an add-on, with two required attributes: &amp;lt;code&amp;gt;addon&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;. There is also an optional attribute called, fittingly, &amp;lt;code&amp;gt;optional&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If your add-on relies on other third-party add-ons, Kodi will automatically install them as well, provided they are available on an existing add-on repository. If they aren&#039;t available on any existing repository, the user must install the other add-ons themselves. Note that you need to include any Python libraries you need directly in your add-on; these can&#039;t be loaded with an &amp;lt;code&amp;gt;&amp;lt;import&amp;gt;&amp;lt;/code&amp;gt; element, since Kodi wouldn&#039;t know what to do with them.&lt;br /&gt;
&lt;br /&gt;
=== addon attribute ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;addon&amp;lt;/code&amp;gt; attribute specifies the id of the required add-on, e.g. &amp;lt;code&amp;gt;script.module.elementtree&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== version attribute ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; attribute specifies the minimum version of the required add-on to be installed.&lt;br /&gt;
&lt;br /&gt;
==== Dependency versions ====&lt;br /&gt;
&lt;br /&gt;
Each different Kodi version might require you to use a higher version of the &amp;lt;code&amp;gt;xbmc.*&amp;lt;/code&amp;gt; add-on dependencies to control on which version of Kodi the add-on can be installed.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ Current versions&lt;br /&gt;
! Kodi version !! xbmc.python !! xbmc.gui !! xbmc.json !! xbmc.metadata !! xbmc.addon&lt;br /&gt;
|-&lt;br /&gt;
| Dharma 10.1 &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Deprecated&amp;lt;/font&amp;gt;|| 1.0 || 2.11 || 2.0|| 1.0 || 0.1&lt;br /&gt;
|-&lt;br /&gt;
| Eden 11.0 &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Deprecated&amp;lt;/font&amp;gt; || 2.0 || 3.0 || 4.0 || 1.0 || 11.0&lt;br /&gt;
|-&lt;br /&gt;
| Frodo 12.x &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Deprecated&amp;lt;/font&amp;gt;|| 2.1.0 || 4.0.0 || 6.0.0 || 2.1.0 || 12.0.0&lt;br /&gt;
|-&lt;br /&gt;
| Gotham 13.x || 2.14.0 (ABI 2.1.0) || 5.0.1 || 6.6.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 13.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Helix 14.x || 2.19.0 (ABI 2.1.0) || 5.3.0 || 6.20.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 14.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Isengard 15.x || 2.20.0 (ABI 2.1.0) || 5.9.0 (ABI 5.3.0) || 6.25.1 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 15.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis 16.x || 2.24.0 (ABI 2.1.0) || 5.10.0 || 6.32.4 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 16.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Krypton 17.x || 2.25.0 (ABI 2.1.0) || 5.12.0 || 7.0.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 17.0.0 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Leia 18.x || 2.26.0 (ABI 2.1.0) || 5.14.0 || 9.7.2 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 17.9.910 (ABI 12.0.0)&lt;br /&gt;
|-&lt;br /&gt;
| Matrix 19.x || 3.0.0 (ABI 3.0.0) || 5.15.0 (ABI 5.14.0) || 11.2.0 (ABI 6.0.0) || 2.1.0 (ABI 1.0) || 18.9.701 (ABI 12.0.0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Each Kodi version contain a certain backwards compatibility. For example add-ons made for Gotham 13.x can still work ion Jarvis 16.x. Do note that this might change in the future. The &#039;&#039;&#039;ABI&#039;&#039;&#039; version you see in the table above is the backwards compatibility version for which add-ons are still marked &amp;quot;working&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== optional attribute ===&lt;br /&gt;
&lt;br /&gt;
The dependency may be made optional by setting the &amp;lt;code&amp;gt;optional&amp;lt;/code&amp;gt; attribute to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;. This will only install the dependency when the add-on actually needs it. Even if this dependency is missing, the add-on can still be installed.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;extension&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; element describes the technical aspects of this add-on. It will have at least a point attribute which will give the part of Kodi that the add-on extends. For instance, the &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; file for the Confluence skin extends the &amp;lt;code&amp;gt;xbmc.gui.skin&amp;lt;/code&amp;gt; part of xbmc. All available extension points are given below.&lt;br /&gt;
&lt;br /&gt;
The various extension points that Kodi provides are given in the list below.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!Extension point&lt;br /&gt;
!Add-on Category&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Skinning|xbmc.gui.skin]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Skin&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.webinterface&amp;lt;/code&amp;gt;&lt;br /&gt;
|Web interface&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Add-on repositories|xbmc.addon.repository]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Service_add-ons|xbmc.service]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Services&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.albums&amp;lt;/code&amp;gt;&lt;br /&gt;
|Album information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.artists&amp;lt;/code&amp;gt;&lt;br /&gt;
|Artist information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.movies&amp;lt;/code&amp;gt;&lt;br /&gt;
|Movie information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.musicvideos&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music video information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.tvshows&amp;lt;/code&amp;gt;&lt;br /&gt;
|TV information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.metadata.scraper.library&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;None&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.ui.screensaver&amp;lt;/code&amp;gt;&lt;br /&gt;
|Screensaver&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.player.musicviz&amp;lt;/code&amp;gt;&lt;br /&gt;
|Visualization&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Plugin sources|xbmc.python.pluginsource]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music Add-ons (audio) / Picture Add-ons (image) / Program Add-ons (executable) / Video Add-ons (video)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Script_sources|xbmc.python.script]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music Add-ons (audio) / Picture Add-ons (image) / Program Add-ons (executable) / Video Add-ons (video)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.python.weather&amp;lt;/code&amp;gt;&lt;br /&gt;
|Weather&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.subtitle.module&amp;lt;/code&amp;gt;&lt;br /&gt;
|Subtitle service module&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[[Script_lyrics|xbmc.python.lyrics]]&amp;lt;/code&amp;gt;&lt;br /&gt;
|Lyrics&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.python.library&amp;lt;/code&amp;gt;&lt;br /&gt;
|These don&#039;t show up in the addon browser and are purely as support for other scripts.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.python.module&amp;lt;/code&amp;gt;&lt;br /&gt;
|Provides an additional python library. mainly for use in script.module.* addons.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.addon.video&amp;lt;/code&amp;gt;&lt;br /&gt;
|Video Add-ons (video)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.addon.audio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music Add-ons (audio)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;xbmc.addon.image&amp;lt;/code&amp;gt;&lt;br /&gt;
|Picture Add-ons (image)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.font&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional font files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.images&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional image files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.language&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional language files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;kodi.resource.uisounds&amp;lt;/code&amp;gt;&lt;br /&gt;
|Additional sound files&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Add-ons that don&#039;t correspond to a specific add-on category can not be installed by users. These are usually supporting or shared add-ons that are installed automatically by the add-ons that require them.&lt;br /&gt;
&lt;br /&gt;
=== xbmc.python.pluginsource ===&lt;br /&gt;
{{See also|Plugin sources}}&lt;br /&gt;
&lt;br /&gt;
The most common extension point that will be used by plugin addon developers is &amp;lt;code&amp;gt;xbmc.python.pluginsource&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== library attribute ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; element has an extra attribute: &amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;. This is the name of the Python script (startup script) that will be run when the add-on is activated. This file must exist in the root of your add-on directory.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;provides&amp;gt; element ====&lt;br /&gt;
&lt;br /&gt;
The extension has an additional child element named &amp;lt;code&amp;gt;&amp;lt;provides&amp;gt;&amp;lt;/code&amp;gt;, which contains a whitespace separated list of &amp;lt;code&amp;gt;image&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;, and/or &amp;lt;code&amp;gt;executable&amp;lt;/code&amp;gt;. This determines in what area (or context) of the Kodi system your addon will make itself visible in (please note that this applies only to plugin extension points):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
!Provides&lt;br /&gt;
!Appears in&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;image&amp;lt;/code&amp;gt;&lt;br /&gt;
|Pictures&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Music&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt;&lt;br /&gt;
|Video&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;executable&amp;lt;/code&amp;gt;&lt;br /&gt;
|Programs&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;(blank)&#039;&#039;&lt;br /&gt;
|See Note&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|If the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; element is not defined, behaviour will depend on the structure of your addon. If it has a single extension point (e.g. a single &#039;&#039;&#039;xbmc.python.script&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.python.pluginsource&#039;&#039;&#039;), kodi will default to &amp;quot;executable&amp;quot; (thus your addon will be shown in programs). If your addon has multiple extension points and none specifies a &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; element, different entries for your addon will be shown in &amp;quot;programs&amp;quot; (multiple fallbacks to &amp;quot;executable&amp;quot;). If your addon has multiple extension points and only one (or some) define the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; tag it really depends on the order of the extension points. If the first extension point (your addon &#039;&#039;&#039;main extension point&#039;&#039;&#039;) defines the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; element, kodi will assume all the other (empty) extension points provide the same content. Otherwise it will set the content for all the extension points that specify the &#039;&#039;&#039;&amp;lt;provides&amp;gt;&#039;&#039;&#039; tag and fallback all the others to &amp;quot;executable&amp;quot;. &#039;&#039;&#039;At the moment, there is no way to hide an addon from the interface.&#039;&#039;&#039;  |reminder}}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot; library=&amp;quot;gpodderxbmc.py&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;provides&amp;gt;audio video&amp;lt;/provides&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== xbmc.addon.metadata ===&lt;br /&gt;
&lt;br /&gt;
This special extension point &#039;&#039;must&#039;&#039; be provided by all add-ons, and is the way that your add-on is described to users of the Kodi add-on manager.&lt;br /&gt;
&lt;br /&gt;
==== Available elements ====&lt;br /&gt;
&lt;br /&gt;
There are several elements that this should contain. Most of these elements are required (except the deprecated tag). However, in case the elements do not apply (e.g. language, website, email) they can be omitted from the addon.xml file. Language specific elements must always be present in English as a minimum.&lt;br /&gt;
&lt;br /&gt;
Many of these elements can be translated into multiple languages and should be added once for each supported language. The &amp;lt;code&amp;gt;lang&amp;lt;/code&amp;gt; attribute should contain a [https://en.wikipedia.org/wiki/Locale_(computer_software) locale identifier]. If omitted, it defaults to en_GB. (Note: Kodi v14 and older uses ISO-639 code. See [[List of language codes (ISO-639:1988)]]).&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;summary&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
One or more &amp;lt;code&amp;gt;&amp;lt;summary&amp;gt;&amp;lt;/code&amp;gt; elements provide a short summary of what the add-on does. This should be a single sentence. It may be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Hello World script provides some basic examples on how to create your first script.&amp;lt;/summary&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;description&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
One or more &amp;lt;code&amp;gt;&amp;lt;description&amp;gt;&amp;lt;/code&amp;gt; elements provide a more detailed summary of what the add-on does. It may be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Hello World script provides some basic examples on how to create your first script&lt;br /&gt;
 and hopefully will increase the number of Kodi users to start creating their own addons.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;disclaimer&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
One or more &amp;lt;code&amp;gt;&amp;lt;disclaimer&amp;gt;&amp;lt;/code&amp;gt; elements that indicate what (if any) things the user should know about the add-on. There is no need to have a disclaimer if you don&#039;t want one, though if something requires settings, or only works in a particular country then you may want to state this here. It may be translated into multiple languages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;Feel free to use this script. For information visit the wiki.&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;news&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Used in Kodi v17 Krypton and later only. Older versions are forward compatible.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;news&amp;gt;&amp;lt;/code&amp;gt; element should contains a simple description of the major changes made to the add-on (new functionality, big fixes, etc). This is displayed in the Kodi addon installation/update system. (In the author&#039;s opinion, too many add-ons skip this piece of information, making it difficult for users to determine whether a particular problem that they may have been having has been fixed or not.)&lt;br /&gt;
Please keep it short (it&#039;s limited to 1500 characters), you might want to only include the changes for the last version here.&lt;br /&gt;
&lt;br /&gt;
Here is an example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;news&amp;gt;v0.1.2  (2014-1-15)&lt;br /&gt;
- Added notification for Ubuntu users checking through apt command&amp;lt;/news&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;platform&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;platform&amp;gt;&amp;lt;/code&amp;gt; tag specifies which platforms (operating systems, hardware, architecture) this add-on runs on. Many add-ons will run on all platforms, so &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; is an option. If the platform tag is missing, we assume the add-on runs on all platforms. A combination of these is also possible. Currently available options are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;linux&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx-x86_64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx32&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;osx-i686&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ios&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ios-armv7&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ios-aarch64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windx&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windows&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windows-i686&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windows-x86_64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;windowsstore&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android-armv7&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android-aarch64&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;android-i686&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v19 Matrix and later.}}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tvos&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tvos-aarch64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;language&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/code&amp;gt; elements indicate the language(s) of the &#039;&#039;content&#039;&#039; provided by your add-on. It applies to plugins, scripts, scrapers etc. This allows browsing the add-on list by language. When there is no specific language provided in your content, omit it from the addon.xml.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;language&amp;gt;en de fr&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;license&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;license&amp;gt;&amp;lt;/code&amp;gt; element indicates what license is used for this add-on. In general, the [https://spdx.org/licenses/ SPDX identifier] for the license is advised when compared to the full license name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;license&amp;gt;GPL-2.0-or-later&amp;lt;/license&amp;gt; &amp;lt;!-- SPDX identifier --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;license&amp;gt;GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&amp;lt;/license&amp;gt; &amp;lt;!-- Full license name --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;forum&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;forum&amp;gt;&amp;lt;/code&amp;gt; element provides the forum thread URL for this specific add-on. Leave this blank if there is no forum thread.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;forum&amp;gt;http://www.myaddonwebsite.com/forum.php?thread=12345&amp;lt;/forum&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;website&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;website&amp;gt;&amp;lt;/code&amp;gt; element provides the website URL for this specific add-on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;website&amp;gt;http://www.myaddonwebsite.com/&amp;lt;/website&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;nowiki&amp;gt;&amp;lt;source&amp;gt;&amp;lt;/nowiki&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; element provides the URL for the source code for this specific add-on.&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;source&amp;gt;http://github.com/someone/myaddon&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;email&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;email&amp;gt;&amp;lt;/code&amp;gt; element provides the email address of the author if he wishes to do so for this specific add-on. Here are two examples of how you can make it look (the second one it harder for spambots to use). This can be left blank if you do not want to make your email address public.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;foo@bar.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    or&lt;br /&gt;
&amp;lt;email&amp;gt;foo at bar dot com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;lifecyclestate&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v19 Matrix and later.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;lifecyclestate&amp;gt;&amp;lt;/code&amp;gt; tag will mark the add-on as broken or deprecated in the Kodi repo and provide the reason why. A dialog will be presented to every user that has the addon installed, so please try to be specific about the related reason. Also, the lifecyclestate tag presupposes that a version bump has been made to the addon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;lifecyclestate type=&amp;quot;deprecated&amp;quot;&amp;gt;Description why deprecated&amp;lt;/lifecyclestate&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can also optionally be translated into several languages.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;lifecyclestate type=&amp;quot;broken&amp;quot; lang=&amp;quot;en_GB&amp;quot;&amp;gt;Description why broken&amp;lt;/lifecyclestate&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible types for here:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|  &#039;&#039;&#039;broken&#039;&#039;&#039;&lt;br /&gt;
|  To mark addon as broken and no more usable.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;deprecated&#039;&#039;&#039;&lt;br /&gt;
|  To mark addon as deprected and to have e.g. replaced by another addon.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;normal&#039;&#039;&#039;&lt;br /&gt;
|  To set addon as normal. This value is not really needed, only available to be able to declare all possible life paths.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;broken&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v18 Leia and earlier. For matrix and later, see [[Addon.xml#lifecyclestate|lifecyclestate]]}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;broken&amp;gt;&amp;lt;/code&amp;gt; tag will mark the add-on as broken in the Kodi repo and provide the reason why. A dialog will be presented to every user that has the addon installed, so please try to be specific about the broken reason. Also, the broken tag presupposes that a version bump has been made to the addon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;broken&amp;gt;deprecated&amp;lt;/broken&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;assets&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v17 Krypton and later.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;assets&amp;gt;&amp;lt;/code&amp;gt; element is a manifest that describes the various assets the add-on provides and where they are located. Supported sub-elements (some optional) are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;icon&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#icon_png_element|icon.png]] - if an icon.png file exists it must be listed here (mandatory since Kodi v17 Krypton)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;fanart&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#fanart_jpg_element|fanart.jpg]] - if a fanart.jpg file exists it must be listed here (mandatory since Kodi v17 Krypton)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;screenshot&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#screenshot_specifications|screenshots]] - &#039;&#039;&#039;(optional)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
{{note|Kodi v18 Leia and later.}}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;banner&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#banner_element|banner.jpg]] - &#039;&#039;&#039;(optional)&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;clearlogo&amp;gt;&amp;lt;/code&amp;gt; See [[Add-on_structure#clearlogo_element|clearlogo.png]] - &#039;&#039;&#039;(optional)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If some elements are empty or not specified, it will be treated as non-existing/not provided. From all the above items, only icon and fanart are mandatory for addons since Kodi v17 Krypton and later.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;assets&amp;gt;&lt;br /&gt;
    &amp;lt;icon&amp;gt;resources/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
    &amp;lt;fanart&amp;gt;resources/fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
    &amp;lt;banner&amp;gt;resources/banner.jpg&amp;lt;/banner&amp;gt;&lt;br /&gt;
    &amp;lt;clearlogo&amp;gt;resources/clearlogo.png&amp;lt;/clearlogo&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-01.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-02.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-03.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;screenshot&amp;gt;resources/screenshot-04.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
&amp;lt;/assets&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the above example definition, the files must be placed in the &amp;lt;code&amp;gt;resources&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;reuselanguageinvoker&amp;gt; =====&lt;br /&gt;
{{note|Kodi v18 Leia and later.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;reuselanguageinvoker&amp;gt;&amp;lt;/code&amp;gt; element is a feature introduced with Kodi 18.0 that changes the way the python invoker works in Kodi - trying to reuse the invoker instances as much as possible. As a result, the addon performance is greatly improved. However, note that for the element to work some changes may be required in your addon. Namely, since the invoker is reused, make sure &amp;lt;code&amp;gt;sys.argv&amp;lt;/code&amp;gt; is always passed to your entrypoint and propagated throughout your codebase. Do not store it as a class variable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;reuselanguageinvoker&amp;gt;true&amp;lt;/reuselanguageinvoker&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is advised to set this element to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; while developing the addon, making it only &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; for the production version (and after testing).&lt;br /&gt;
&lt;br /&gt;
== Skin specific elements ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|  &#039;&#039;&#039;effectslowdown&#039;&#039;&#039;&lt;br /&gt;
|  A multiplier that is applied to all &amp;lt;animation&amp;gt; effect lengths in the skin. Useful to slow down all animations globally so that you can better configure timings and see interactions between animating controls.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;debugging&#039;&#039;&#039;&lt;br /&gt;
|  When set to true, it&#039;ll display onscreen debug information (xml filename, mouse position and focused control type and name) in the skin.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;res&#039;&#039;&#039;&lt;br /&gt;
|  Support for arbitrary skin resolutions.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== How window xml files are found ===&lt;br /&gt;
&lt;br /&gt;
Kodi can run in many differing resolutions, and a skin should try and cater to all these resolutions. The easiest way is to develop for one specific resolution and make sure that all controls contain &amp;lt;width&amp;gt; and &amp;lt;height&amp;gt; tags. That way, Kodi can scale the controls to the new screen resolution.&lt;br /&gt;
&lt;br /&gt;
However, you may choose to develop alternative window xml files for differing resolutions (such as for HDTV resolutions, or for widescreen versus 4x3 resolutions).&lt;br /&gt;
&lt;br /&gt;
The order that Kodi looks for it&#039;s skin files are as follows:&lt;br /&gt;
&lt;br /&gt;
# It first looks in the current screenmode folder (one of 1080i, 720p, NTSC16x9, NTSC, PAL16x9 or PAL)&lt;br /&gt;
# If the current screenmode is 1080i and there&#039;s no 1080i folder, it then looks in the 720p folder.&lt;br /&gt;
# Finally, it looks in the &#039;&#039;&#039;res&#039;&#039;&#039; folder.&lt;br /&gt;
&lt;br /&gt;
This allows you to just put any window files that do not require special treatment for 16x9 resolutions etc. in the &amp;lt;defaultresolution&amp;gt; folder, preventing needless repetition.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== addon.xml for skins ==&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;addon id=&amp;quot;skin.estuary&amp;quot; version=&amp;quot;2.0.22&amp;quot; name=&amp;quot;Estuary&amp;quot; provider-name=&amp;quot;phil65, Ichabod Fletchman&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;requires&amp;gt;&lt;br /&gt;
		&amp;lt;import addon=&amp;quot;xbmc.gui&amp;quot; version=&amp;quot;5.14.0&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/requires&amp;gt;&lt;br /&gt;
	&amp;lt;extension point=&amp;quot;xbmc.gui.skin&amp;quot; debugging=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1440&amp;quot; aspect=&amp;quot;4:3&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1280&amp;quot; aspect=&amp;quot;3:2&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1200&amp;quot; aspect=&amp;quot;16:10&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2040&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;17:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;1920&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;16:9&amp;quot; default=&amp;quot;true&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2560&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;21:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2338&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;19.5:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;res width=&amp;quot;2160&amp;quot; height=&amp;quot;1080&amp;quot; aspect=&amp;quot;18:9&amp;quot; default=&amp;quot;false&amp;quot; folder=&amp;quot;xml&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/extension&amp;gt;&lt;br /&gt;
	&amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Estuary skin by phil65. (Kodi&#039;s default skin)&amp;lt;/summary&amp;gt;&lt;br /&gt;
		&amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Estuary is the default skin for Kodi 17.0 and above. It attempts to be easy for first time Kodi users to understand and use.&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;Estuary is the default skin for Kodi, removing it may cause issues&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
		&amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
		&amp;lt;license&amp;gt;CC-BY-4.0, GPL-2.0-or-later&amp;lt;/license&amp;gt;&lt;br /&gt;
		&amp;lt;forum&amp;gt;http://forum.kodi.tv/&amp;lt;/forum&amp;gt;&lt;br /&gt;
		&amp;lt;source&amp;gt;https://github.com/xbmc/skin.estuary/&amp;lt;/source&amp;gt;&lt;br /&gt;
		&amp;lt;assets&amp;gt;&lt;br /&gt;
			&amp;lt;icon&amp;gt;resources/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
			&amp;lt;fanart&amp;gt;resources/fanart.jpg&amp;lt;/fanart&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-01.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-02.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-03.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-04.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-05.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-06.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-07.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
			&amp;lt;screenshot&amp;gt;resources/screenshot-08.jpg&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
		&amp;lt;/assets&amp;gt;&lt;br /&gt;
	&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
One thing to note is that &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;all tag names are lower case.&amp;lt;/font&amp;gt; XML tag names are case sensitive!&lt;br /&gt;
&lt;br /&gt;
== addon.xml for scripts ==&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;?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;addon&lt;br /&gt;
    id=&amp;quot;script.artwork.downloader&amp;quot;&lt;br /&gt;
    name=&amp;quot;Artwork Downloader&amp;quot;&lt;br /&gt;
    version=&amp;quot;12.0.12&amp;quot;&lt;br /&gt;
    provider-name=&amp;quot;Martijn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;requires&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot;                 version=&amp;quot;2.25.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;script.module.elementtree&amp;quot;   version=&amp;quot;1.2.7&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;script.module.simplejson&amp;quot;    version=&amp;quot;2.0.10&amp;quot; optional=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;script.common.plugin.cache&amp;quot;  version=&amp;quot;1.3.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/requires&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.script&amp;quot;         library=&amp;quot;default.py&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;provides&amp;gt;executable&amp;lt;/provides&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.service&amp;quot; library=&amp;quot;service.py&amp;quot; start=&amp;quot;login&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;Downloads Artwork for TV shows, Movies and Musicvideos in your library&amp;lt;/summary&amp;gt;&lt;br /&gt;
    &amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;Downloads all available artwork for TV shows, Movies and Musicvideos in your library. Check the options for supported artwork[CR]Artwork sources:[CR]www.fanart.tv[CR]www.thetvdb.com[CR]www.themoviedb.org[CR]Remark:[CR]Check your skin to see what type of artwork is supported![CR]Each TV Show/Movie must have its own folder![CR]Skin integration:[CR]See readme file&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;disclaimer lang=&amp;quot;en_GB&amp;quot;&amp;gt;For bugs, requests or general questions visit the Artwork Downloader thread on the Kodi forum.&amp;lt;/disclaimer&amp;gt;&lt;br /&gt;
    &amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GPL-2.0-or-later&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;forum&amp;gt;...&amp;lt;/forum&amp;gt;&lt;br /&gt;
    &amp;lt;website&amp;gt;...&amp;lt;/website&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;...&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;source&amp;gt;...&amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;news&amp;gt;&lt;br /&gt;
      v12.0.12:&lt;br /&gt;
        - Changes ....&lt;br /&gt;
    &amp;lt;/news&amp;gt;&lt;br /&gt;
    &amp;lt;assets&amp;gt;&lt;br /&gt;
        &amp;lt;icon&amp;gt;resources/images/icon.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
        &amp;lt;fanart&amp;gt;resources/images/fanart.png&amp;lt;/fanart&amp;gt;&lt;br /&gt;
        &amp;lt;screenshot&amp;gt;resources/images/screenshot.png&amp;lt;/screenshot&amp;gt;&lt;br /&gt;
    &amp;lt;/assets&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common errors ===&lt;br /&gt;
&lt;br /&gt;
If you are getting errors when installing your Kodi addon, then you may have errors in your addon.xml file, which could be any of the following:&lt;br /&gt;
&lt;br /&gt;
# Invalid characters - does any of your description text, addon name, etc. have any of the following? !, ?, -, etc&lt;br /&gt;
# Too large description can sometimes cause issues&lt;br /&gt;
# You may have an opening tag but not a closing tag further in the file e.g. &amp;lt;description&amp;gt; but not later on &amp;lt;/description&amp;gt;&lt;br /&gt;
# If you have directly updated your code and are still finding errors which you know you have fixed, it&#039;s possible your cache is still holding the previous version. Try clearing contents of the following folders (or if this fails, reboot your Kodi device):&lt;br /&gt;
* .kodi/addons/temp&lt;br /&gt;
* .kodi/temp/temp&lt;br /&gt;
* .kodi/temp/archive_cache&lt;br /&gt;
&lt;br /&gt;
= Schema Definition =&lt;br /&gt;
&lt;br /&gt;
The XML schema definition for &amp;lt;code&amp;gt;addon.xml&amp;lt;/code&amp;gt; is located [https://github.com/xbmc/xbmc/blob/master/addons/xbmc.addon/metadata.xsd here].&lt;br /&gt;
&lt;br /&gt;
{{Leia updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on development]]&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=183875</id>
		<title>User:Alwinus</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=183875"/>
		<updated>2019-10-06T14:23:19Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=alwinus=&lt;br /&gt;
===Team-KODI Developer===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Real Name:&#039;&#039;&#039; || Alwin Esch&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Nationality:&#039;&#039;&#039; || German&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Residence:&#039;&#039;&#039; || Saarbrücken, Germany&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Contact===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Timezone:&#039;&#039;&#039; || Central European Time (CET) i.e. GMT+1/+2&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IRC username:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KODI e-mail alias:&#039;&#039;&#039; ||  alwinus@kodi.tv&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KODI Forum account:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KODI Wiki account:&#039;&#039;&#039; || Alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;github.com:&#039;&#039;&#039; || AlwinEsch&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SourceForge.net:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Website:&#039;&#039;&#039; ||  http://esmasol.de&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Official:Code_guidelines_and_formatting_conventions&amp;diff=103026</id>
		<title>Official:Code guidelines and formatting conventions</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Official:Code_guidelines_and_formatting_conventions&amp;diff=103026"/>
		<updated>2015-11-09T23:52:38Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: /* Headers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]}}&lt;br /&gt;
These are conventions which we try to follow when writing code for Kodi. They are this way mainly for reasons of taste, however, sticking to a common set of formatting rules also makes it slightly easier to read through our sources. If you want to submit patches, please try to follow these rules.&lt;br /&gt;
&lt;br /&gt;
As such we don&#039;t follow these rules slavishly, in certain cases it is ok (and in fact favorable) to stray from them.&lt;br /&gt;
== Indentation ==&lt;br /&gt;
Use spaces as tab policy with an indentation size of 2&lt;br /&gt;
&lt;br /&gt;
=== Namespaces ===&lt;br /&gt;
Namespaces are not required to use any indentation to simplify nested namespaces and wrapping .cpp files in a namespace&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
namespace KODI&lt;br /&gt;
{&lt;br /&gt;
namespace UTILS&lt;br /&gt;
{&lt;br /&gt;
class ILogger&lt;br /&gt;
{&lt;br /&gt;
  void Log(...) = 0;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Included header files *.h, are to sort alphabetical to prevent double used file definition and allow better overview&lt;br /&gt;
* On cpp define used header first to confirm needed headers are present on them itself&lt;br /&gt;
* As next use the global system headers e.g. &amp;lt;cassert&amp;gt; or &amp;quot;system.h&amp;quot;&lt;br /&gt;
* Then insert all the headers needed for the file itself&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;PVRManager.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;utility&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;Application.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Util.h&amp;quot;&lt;br /&gt;
#include &amp;quot;addons/AddonInstaller.h&amp;quot;&lt;br /&gt;
#include &amp;quot;dialogs/GUIDialogExtendedProgressBar.h&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
#include &amp;quot;messaging/helpers/DialogHelper.h&amp;quot;&lt;br /&gt;
#include &amp;quot;music/tags/MusicInfoTag.h&amp;quot;&lt;br /&gt;
#include &amp;quot;network/Network.h&amp;quot;&lt;br /&gt;
#include &amp;quot;pvr/addons/PVRClients.h&amp;quot;&lt;br /&gt;
#include &amp;quot;pvr/channels/PVRChannel.h&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
#include &amp;quot;settings/Settings.h&amp;quot;&lt;br /&gt;
#include &amp;quot;threads/SingleLock.h&amp;quot;&lt;br /&gt;
#include &amp;quot;utils/JobManager.h&amp;quot;&lt;br /&gt;
#include &amp;quot;utils/log.h&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
#include &amp;quot;utils/Variant.h&amp;quot;&lt;br /&gt;
#include &amp;quot;video/VideoDatabase.h&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Braces ==&lt;br /&gt;
Braces should go to newline and your code should look like the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (int i = 0; i &amp;lt; t; i++)&lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Dummy()&lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Whitespaces ==&lt;br /&gt;
Conventional operators should be surrounded by a whitespace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a = (b + c) * d;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reserved words should be separated from opening parentheses by a whitespace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while (true)&lt;br /&gt;
for (int i = 0; i &amp;lt; x; ++i)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commas should be followed by a whitespace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void Dummy::Method(int a, int b, int c);&lt;br /&gt;
int d, e;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Semicolons should be followed by a whitespace if there is more than one expression per line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for (int i = 0; i &amp;lt; x; ++i)&lt;br /&gt;
doSomething(e); doSomething(f); // this is probably bad style anyway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Control statements ==&lt;br /&gt;
Insert new line before &lt;br /&gt;
* &#039;&#039;else&#039;&#039; in an &#039;&#039;if&#039;&#039; statement &lt;br /&gt;
* &#039;&#039;catch&#039;&#039; in a &#039;&#039;try&#039;&#039; statement&lt;br /&gt;
* &#039;&#039;while&#039;&#039; in a &#039;&#039;do&#039;&#039; statement&lt;br /&gt;
&lt;br /&gt;
=== if else ===&lt;br /&gt;
* put &#039;&#039;then&#039;&#039; statement, &#039;&#039;return&#039;&#039; or &#039;&#039;throw&#039;&#039; to new line&lt;br /&gt;
* keep &#039;&#039;else if&#039;&#039; on one line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (true) &lt;br /&gt;
  return;&lt;br /&gt;
&lt;br /&gt;
if (true) &lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
} &lt;br /&gt;
else if (false) &lt;br /&gt;
{&lt;br /&gt;
  return;&lt;br /&gt;
} &lt;br /&gt;
else&lt;br /&gt;
  return;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== switch / case ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
switch (cmd)&lt;br /&gt;
{&lt;br /&gt;
  case x:&lt;br /&gt;
  {&lt;br /&gt;
    doSomething();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
  case x:&lt;br /&gt;
  case z:&lt;br /&gt;
    return true;&lt;br /&gt;
  default:&lt;br /&gt;
    doSomething();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
=== Namespaces ===&lt;br /&gt;
Namespaces should be in uppercase letters&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
namespace KODI&lt;br /&gt;
{&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Constants ===&lt;br /&gt;
Use upper case with underscore spacing where necessary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const int MY_CONSTANT = 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enums ===&lt;br /&gt;
Use CamelCase for the enum name and upper case for the values.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
enum Dummy&lt;br /&gt;
{&lt;br /&gt;
  VALUE_X,&lt;br /&gt;
  VALUE_Y&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interfaces ===&lt;br /&gt;
We use CamelCase for interface names and they should be prefixed with an uppercase I.&lt;br /&gt;
Filename should match the interface name, e.g. ILogger.h&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class ILogger&lt;br /&gt;
{&lt;br /&gt;
  void Log(...) = 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
We use CamelCase for class names and they should be prefixed with an uppercase C.&lt;br /&gt;
Filename should match the class name without the prefixed C, e.g. Logger.cpp&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class CLogger : public ILogger&lt;br /&gt;
{&lt;br /&gt;
  void Log(...)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
We use CamelCase for method names and first letter should be upper case.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyDummyClass::DoSomething();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variables ===&lt;br /&gt;
We use CamelCase for variables. Type prefixing is optional.&lt;br /&gt;
&lt;br /&gt;
==== Global Variables ====&lt;br /&gt;
Prefix global variables with &#039;&#039;g_&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int g_globalVariableA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Member Variables ====&lt;br /&gt;
Prefix member variables with &#039;&#039;m_&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int m_variableA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conventions ==&lt;br /&gt;
=== Casts ===&lt;br /&gt;
New code should use C++ style casts and not older C style casts. When modifying existing code the developer can choose to update it to C++ style casts or leave as is.&lt;br /&gt;
Remember that whenever a dynamic_cast is used the result can be a nullptr and needs to be checked accordingly.&lt;br /&gt;
&lt;br /&gt;
=== NULL vs nullptr ===&lt;br /&gt;
Prefer the use of nullptr instead of NULL. nullptr is a typesafe version and as such can&#039;t be implicitly converted to int or anything else.&lt;br /&gt;
&lt;br /&gt;
=== auto ===&lt;br /&gt;
Feel free to use auto wherever it improves readability. Good places are iterators or when dealing with containers.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
std::map&amp;lt;std::string, std::vector&amp;lt;int&amp;gt;&amp;gt;::iterator i = var.begin();&lt;br /&gt;
vs&lt;br /&gt;
auto i = var.being();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== for loops ===&lt;br /&gt;
Use newer style foreach loops whenever it makes sense. If iterators are used see above about using auto.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for (auto&amp;amp; : var)&lt;br /&gt;
{&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use const auto&amp;amp; if there&#039;s no reason to modify the value.&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Official:Code_guidelines_and_formatting_conventions&amp;diff=103025</id>
		<title>Official:Code guidelines and formatting conventions</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Official:Code_guidelines_and_formatting_conventions&amp;diff=103025"/>
		<updated>2015-11-09T23:49:11Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: Add guideline for included source code headers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]}}&lt;br /&gt;
These are conventions which we try to follow when writing code for Kodi. They are this way mainly for reasons of taste, however, sticking to a common set of formatting rules also makes it slightly easier to read through our sources. If you want to submit patches, please try to follow these rules.&lt;br /&gt;
&lt;br /&gt;
As such we don&#039;t follow these rules slavishly, in certain cases it is ok (and in fact favorable) to stray from them.&lt;br /&gt;
== Indentation ==&lt;br /&gt;
Use spaces as tab policy with an indentation size of 2&lt;br /&gt;
&lt;br /&gt;
=== Namespaces ===&lt;br /&gt;
Namespaces are not required to use any indentation to simplify nested namespaces and wrapping .cpp files in a namespace&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
namespace KODI&lt;br /&gt;
{&lt;br /&gt;
namespace UTILS&lt;br /&gt;
{&lt;br /&gt;
class ILogger&lt;br /&gt;
{&lt;br /&gt;
  void Log(...) = 0;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Headers ===&lt;br /&gt;
Included source files *.cpp and *.h, are to sort alphabetical to prevent double used file definition and allow better overview&lt;br /&gt;
* On cpp define used header first to confirm needed headers are present on them itself&lt;br /&gt;
* As next use the global system headers e.g. &amp;lt;cassert&amp;gt; or &amp;quot;system.h&amp;quot;&lt;br /&gt;
* Then insert all the headers needed for the file itself&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;PVRManager.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
#include &amp;lt;utility&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;Application.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Util.h&amp;quot;&lt;br /&gt;
#include &amp;quot;addons/AddonInstaller.h&amp;quot;&lt;br /&gt;
#include &amp;quot;dialogs/GUIDialogExtendedProgressBar.h&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
#include &amp;quot;messaging/helpers/DialogHelper.h&amp;quot;&lt;br /&gt;
#include &amp;quot;music/tags/MusicInfoTag.h&amp;quot;&lt;br /&gt;
#include &amp;quot;network/Network.h&amp;quot;&lt;br /&gt;
#include &amp;quot;pvr/addons/PVRClients.h&amp;quot;&lt;br /&gt;
#include &amp;quot;pvr/channels/PVRChannel.h&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
#include &amp;quot;settings/Settings.h&amp;quot;&lt;br /&gt;
#include &amp;quot;threads/SingleLock.h&amp;quot;&lt;br /&gt;
#include &amp;quot;utils/JobManager.h&amp;quot;&lt;br /&gt;
#include &amp;quot;utils/log.h&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
#include &amp;quot;utils/Variant.h&amp;quot;&lt;br /&gt;
#include &amp;quot;video/VideoDatabase.h&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Braces ==&lt;br /&gt;
Braces should go to newline and your code should look like the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (int i = 0; i &amp;lt; t; i++)&lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Dummy()&lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Whitespaces ==&lt;br /&gt;
Conventional operators should be surrounded by a whitespace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a = (b + c) * d;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reserved words should be separated from opening parentheses by a whitespace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while (true)&lt;br /&gt;
for (int i = 0; i &amp;lt; x; ++i)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commas should be followed by a whitespace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void Dummy::Method(int a, int b, int c);&lt;br /&gt;
int d, e;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Semicolons should be followed by a whitespace if there is more than one expression per line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for (int i = 0; i &amp;lt; x; ++i)&lt;br /&gt;
doSomething(e); doSomething(f); // this is probably bad style anyway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Control statements ==&lt;br /&gt;
Insert new line before &lt;br /&gt;
* &#039;&#039;else&#039;&#039; in an &#039;&#039;if&#039;&#039; statement &lt;br /&gt;
* &#039;&#039;catch&#039;&#039; in a &#039;&#039;try&#039;&#039; statement&lt;br /&gt;
* &#039;&#039;while&#039;&#039; in a &#039;&#039;do&#039;&#039; statement&lt;br /&gt;
&lt;br /&gt;
=== if else ===&lt;br /&gt;
* put &#039;&#039;then&#039;&#039; statement, &#039;&#039;return&#039;&#039; or &#039;&#039;throw&#039;&#039; to new line&lt;br /&gt;
* keep &#039;&#039;else if&#039;&#039; on one line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (true) &lt;br /&gt;
  return;&lt;br /&gt;
&lt;br /&gt;
if (true) &lt;br /&gt;
{&lt;br /&gt;
  [...]&lt;br /&gt;
} &lt;br /&gt;
else if (false) &lt;br /&gt;
{&lt;br /&gt;
  return;&lt;br /&gt;
} &lt;br /&gt;
else&lt;br /&gt;
  return;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== switch / case ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
switch (cmd)&lt;br /&gt;
{&lt;br /&gt;
  case x:&lt;br /&gt;
  {&lt;br /&gt;
    doSomething();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
  case x:&lt;br /&gt;
  case z:&lt;br /&gt;
    return true;&lt;br /&gt;
  default:&lt;br /&gt;
    doSomething();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
=== Namespaces ===&lt;br /&gt;
Namespaces should be in uppercase letters&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
namespace KODI&lt;br /&gt;
{&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Constants ===&lt;br /&gt;
Use upper case with underscore spacing where necessary.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const int MY_CONSTANT = 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enums ===&lt;br /&gt;
Use CamelCase for the enum name and upper case for the values.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
enum Dummy&lt;br /&gt;
{&lt;br /&gt;
  VALUE_X,&lt;br /&gt;
  VALUE_Y&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interfaces ===&lt;br /&gt;
We use CamelCase for interface names and they should be prefixed with an uppercase I.&lt;br /&gt;
Filename should match the interface name, e.g. ILogger.h&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class ILogger&lt;br /&gt;
{&lt;br /&gt;
  void Log(...) = 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
We use CamelCase for class names and they should be prefixed with an uppercase C.&lt;br /&gt;
Filename should match the class name without the prefixed C, e.g. Logger.cpp&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class CLogger : public ILogger&lt;br /&gt;
{&lt;br /&gt;
  void Log(...)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
We use CamelCase for method names and first letter should be upper case.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyDummyClass::DoSomething();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variables ===&lt;br /&gt;
We use CamelCase for variables. Type prefixing is optional.&lt;br /&gt;
&lt;br /&gt;
==== Global Variables ====&lt;br /&gt;
Prefix global variables with &#039;&#039;g_&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int g_globalVariableA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Member Variables ====&lt;br /&gt;
Prefix member variables with &#039;&#039;m_&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int m_variableA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conventions ==&lt;br /&gt;
=== Casts ===&lt;br /&gt;
New code should use C++ style casts and not older C style casts. When modifying existing code the developer can choose to update it to C++ style casts or leave as is.&lt;br /&gt;
Remember that whenever a dynamic_cast is used the result can be a nullptr and needs to be checked accordingly.&lt;br /&gt;
&lt;br /&gt;
=== NULL vs nullptr ===&lt;br /&gt;
Prefer the use of nullptr instead of NULL. nullptr is a typesafe version and as such can&#039;t be implicitly converted to int or anything else.&lt;br /&gt;
&lt;br /&gt;
=== auto ===&lt;br /&gt;
Feel free to use auto wherever it improves readability. Good places are iterators or when dealing with containers.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
std::map&amp;lt;std::string, std::vector&amp;lt;int&amp;gt;&amp;gt;::iterator i = var.begin();&lt;br /&gt;
vs&lt;br /&gt;
auto i = var.being();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== for loops ===&lt;br /&gt;
Use newer style foreach loops whenever it makes sense. If iterators are used see above about using auto.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for (auto&amp;amp; : var)&lt;br /&gt;
{&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use const auto&amp;amp; if there&#039;s no reason to modify the value.&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:VDR_VNSI_Client&amp;diff=97858</id>
		<title>Add-on:VDR VNSI Client</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:VDR_VNSI_Client&amp;diff=97858"/>
		<updated>2015-06-22T22:48:49Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- See http://kodi.wiki/index.php?title=Template:Addon and http://kodi.wiki/index.php?title=Help:Add-on_page for help editing this page --&amp;gt;&lt;br /&gt;
{{Addon &lt;br /&gt;
 | Name = VDR VNSI Client&lt;br /&gt;
 | provider-name = Team Kodi&lt;br /&gt;
 | ID = pvr.vdr.vnsi&lt;br /&gt;
 | latest-version = 1.0.0&lt;br /&gt;
 | extension point = xbmc.pvrclient&lt;br /&gt;
 | provides = &lt;br /&gt;
 | Platform = all&lt;br /&gt;
 | broken = &lt;br /&gt;
 | icon url = &lt;br /&gt;
 | repo = https://github.com/kodi-pvr/pvr.vdr.vnsi&lt;br /&gt;
 | zip = &lt;br /&gt;
 | Summary = PVR client to connect VDR to Kodi over the VNSI interface&lt;br /&gt;
 | Description = VDR frontend; supporting streaming of Live TV &amp;amp;amp; Recordings, EPG, Timers over the VNSI plugin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;For setting up VDR in Kodi, see &#039;&#039;&#039;[[PVR/Backend/VDR]]&#039;&#039;&#039;.&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:VDR_VNSI_Client&amp;diff=97857</id>
		<title>Add-on:VDR VNSI Client</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:VDR_VNSI_Client&amp;diff=97857"/>
		<updated>2015-06-22T22:47:51Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- See http://wiki.xbmc.org/index.php?title=Template:Addon and http://wiki.xbmc.org/index.php?title=Help:Add-on_page for help editing this page --&amp;gt;&lt;br /&gt;
{{Addon &lt;br /&gt;
 | Name = VDR VNSI Client&lt;br /&gt;
 | provider-name = Team Kodi&lt;br /&gt;
 | ID = pvr.vdr.vnsi&lt;br /&gt;
 | latest-version = 1.0.0&lt;br /&gt;
 | extension point = xbmc.pvrclient&lt;br /&gt;
 | provides = &lt;br /&gt;
 | Platform = all&lt;br /&gt;
 | broken = &lt;br /&gt;
 | icon url = &lt;br /&gt;
 | repo = https://github.com/kodi-pvr/pvr.vdr.vnsi&lt;br /&gt;
 | zip = &lt;br /&gt;
 | Summary = PVR client to connect VDR to Kodi over the VNSI interface&lt;br /&gt;
 | Description = VDR frontend; supporting streaming of Live TV &amp;amp;amp; Recordings, EPG, Timers over the VNSI plugin&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;For setting up VDR in Kodi, see &#039;&#039;&#039;[[PVR/Backend/VDR]]&#039;&#039;&#039;.&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97856</id>
		<title>User:Alwinus</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97856"/>
		<updated>2015-06-22T22:40:31Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: /* Contact */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=alwinus=&lt;br /&gt;
===Team-KODI Developer===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Real Name:&#039;&#039;&#039; || Alwin Esch&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Nationality:&#039;&#039;&#039; || German&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Residence:&#039;&#039;&#039; || Moenchengladbach, Germany&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Contact===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Timezone:&#039;&#039;&#039; || Central European Time (CET) i.e. GMT+1/+2&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IRC username:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KODI e-mail alias:&#039;&#039;&#039; ||  alwinus@kodi.tv&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KODI Forum account:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KODI Wiki account:&#039;&#039;&#039; || Alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;github.com:&#039;&#039;&#039; || AlwinEsch&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SourceForge.net:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Website:&#039;&#039;&#039; ||  http://esmasol.de&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97855</id>
		<title>User:Alwinus</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97855"/>
		<updated>2015-06-22T22:39:27Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: /* alwinus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=alwinus=&lt;br /&gt;
===Team-KODI Developer===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Real Name:&#039;&#039;&#039; || Alwin Esch&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Nationality:&#039;&#039;&#039; || German&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Residence:&#039;&#039;&#039; || Moenchengladbach, Germany&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Contact===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Timezone:&#039;&#039;&#039; || Central European Time (CET) i.e. GMT+1/+2&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IRC username:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;KODI e-mail alias:&#039;&#039;&#039; ||  alwinus@kodi.tv&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;XBMC Forum account:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;XBMC Wiki account:&#039;&#039;&#039; || Alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;github.com:&#039;&#039;&#039; || AlwinEsch&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SourceForge.net:&#039;&#039;&#039; || alwinus&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Website:&#039;&#039;&#039; ||  http://esmasol.de&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97854</id>
		<title>User:Alwinus</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97854"/>
		<updated>2015-06-22T22:29:16Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: /* alwinus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=alwinus=&lt;br /&gt;
Team-KODI Developer&amp;lt;br/&amp;gt;&lt;br /&gt;
Real Name: Alwin Esch&lt;br /&gt;
Nationality: German&lt;br /&gt;
Residence: Moenchengladbach, Germany&lt;br /&gt;
&lt;br /&gt;
===Contact===&lt;br /&gt;
Timezone: Central European Time (CET) i.e. GMT+1/+2&amp;lt;br&amp;gt;&lt;br /&gt;
IRC username: alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
KODI e-mail alias: alwinus@kodi.tv&amp;lt;br&amp;gt;&lt;br /&gt;
XBMC Forum account: alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
XBMC Wiki account: Alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
github.com: AlwinEsch&amp;lt;br&amp;gt;&lt;br /&gt;
SourceForge.net: alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
Website/blog: http://esmasol.de&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97853</id>
		<title>User:Alwinus</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Alwinus&amp;diff=97853"/>
		<updated>2015-06-22T22:27:23Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=alwinus=&lt;br /&gt;
Team-KODI Developer&amp;lt;br/&amp;gt;&lt;br /&gt;
Real Name: Alwin Esch&lt;br /&gt;
===Contact===&lt;br /&gt;
Timezone: Central European Time (CET) i.e. GMT+1/+2&amp;lt;br&amp;gt;&lt;br /&gt;
IRC username: alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
KODI e-mail alias: alwinus@kodi.tv&amp;lt;br&amp;gt;&lt;br /&gt;
XBMC Forum account: alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
XBMC Wiki account: Alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
github.com: AlwinEsch&amp;lt;br&amp;gt;&lt;br /&gt;
SourceForge.net: alwinus&amp;lt;br&amp;gt;&lt;br /&gt;
Website/blog: http://esmasol.de&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Team_Kodi/Members&amp;diff=97852</id>
		<title>Archive:Team Kodi/Members</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Team_Kodi/Members&amp;diff=97852"/>
		<updated>2015-06-22T22:22:25Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: /* Developers (General) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]}}&lt;br /&gt;
{{notice|&#039;&#039;&#039;PLEASE DON&#039;T E-MAIL OR PM ANYONE DIRECTLY ABOUT SUPPORT! INSTEAD USE THE COMMUNITY FORUM OR IRC-CHANNELS!&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=intro /&amp;gt;Team Kodi is the formal group of people who develop and maintain [[Kodi]], the [http://kodi.tv Kodi websites], and/or other supporting roles.&amp;lt;section end=intro /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;This list is likely incomplete, so give us a nudge if we forgot you&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{{warning|This is probably very outdated... We&#039;re working on a better way to list active members. If you see anything wrong on this page them please poke a team member about it (or just Ned).}}&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
= Active members =&lt;br /&gt;
&lt;br /&gt;
== XBMC Foundation Voting Board Members and Non-Voting Officers ==&lt;br /&gt;
{{Main|XBMC Foundation}}&lt;br /&gt;
{{#lst:XBMC Foundation|intro}}&lt;br /&gt;
{{#lst:XBMC Foundation|Foundation members}}&lt;br /&gt;
&lt;br /&gt;
== Project Managers ==&lt;br /&gt;
* [[User:Pike|Pike]] - The Bossman&lt;br /&gt;
* [[User:Natethomas|Natethomas]] - Community Manager&lt;br /&gt;
* [[User:Martijn|Martijn]] - GitHub Project Manager&lt;br /&gt;
&lt;br /&gt;
== Developers (General) ==&lt;br /&gt;
* abelier - video decoding&lt;br /&gt;
* [[User:alanwww1|alanwww1]] - Translations, Intel related stuff&lt;br /&gt;
* [[User:Alcoheca|Alcoheca]]&lt;br /&gt;
* [[User:Alwinus|Alwinus]] - C++ add-on systems&lt;br /&gt;
* [[User:amet|amet]]&lt;br /&gt;
* [[User:Anssi|Anssi]]&lt;br /&gt;
* [[User:Arnova|Arnova]] - Curl/webdav filesystem(s), general bug fixes&lt;br /&gt;
* [[User:bobo1on1|bobo1on1]] - Video Playback, General Bugfixes&lt;br /&gt;
* [[User:Chadoe|Chadoe]] - general bug fixes&lt;br /&gt;
* [[User:opdenkamp|opdenkamp]] - PVR, EPG&lt;br /&gt;
* [[User:dteirney|dteirney]] - MythTV Integration&lt;br /&gt;
* [[User:elupus|elupus]] - Kodi video player (DVDPlayer) god&lt;br /&gt;
* [[User:firnsy|firnsy]] - Database&lt;br /&gt;
* [[User:Fneufneu|Fneufneu]] - BSD Developer&lt;br /&gt;
* [[User:freezy|freezy]] - Android Remote Developer&lt;br /&gt;
* [[User:garbear|garbear]]&lt;br /&gt;
* [[User:gnif|gnif]] - Audio, Audio Engine&lt;br /&gt;
* [[User:jfcarroll|jfcarroll]] - swig integration, binary addon developer&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]] - Jedi-Master&lt;br /&gt;
* JoeTheFox - iPhone Remote Developer&lt;br /&gt;
* [[User:Malard|Malard]] - Web&lt;br /&gt;
* [[User:Memphiz|Memphiz]] - vfs, zeroconf, AirPlay and general stuff&lt;br /&gt;
* [[User:Montellese|Montellese]] - JSONRPC&lt;br /&gt;
* night199uk - Music library&lt;br /&gt;
* [[User:olympia|olympia]] - scraper developer/repo maintainer&lt;br /&gt;
* [[User:phi2039|phi2039]] - Audio, Assembly, and anything that sounds like it might be challenging...&lt;br /&gt;
* [[User:pieh|pieh]] - General code tinkering&lt;br /&gt;
* [[User:taxigps|taxigps]]&lt;br /&gt;
* [[User:Topfs2|Topfs2]] - JSONRPC, ARM, power, storage, dbus&lt;br /&gt;
* [[User:the_alien|the_alien]] - Android Remote Developer&lt;br /&gt;
* [[User:VDRfan|VDRfan]] - General&lt;br /&gt;
* [[User:Herrnst|Herrnst]] - LCD display coding&lt;br /&gt;
* [[User:Voyager|Voyager]] - hunting bugs in library, dvdplayer etc.&lt;br /&gt;
* [[User:ulion|ulion]]&lt;br /&gt;
&lt;br /&gt;
== Developers (Linux) ==&lt;br /&gt;
* [[User:AlTheKiller|AlTheKiller]]&lt;br /&gt;
* [[User:Amejia|Amejia]] - Debian, etc.&lt;br /&gt;
* [[User:Anssi|Anssi]]&lt;br /&gt;
* [[User:Arnova|Arnova]]&lt;br /&gt;
* [[User:bobo1on1|bobo1on1]]&lt;br /&gt;
* [[User:opdenkamp|opdenkamp]]&lt;br /&gt;
* [[User:Erhnam|Erhnam]] - XBMCFreak creater, Live Distro developer&lt;br /&gt;
* [[User:firnsy|firnsy]]&lt;br /&gt;
* [[User:l.capriotti|l.capriotti]] - LiveUSB Distro&lt;br /&gt;
* [[User:malloc|malloc]]&lt;br /&gt;
* [[User:monkeyman 67156|monkeyman 67156]]&lt;br /&gt;
* [[User:Phaeodaria|Phaeodaria]]&lt;br /&gt;
* [[User:sraue|sraue]] - OpenELEC.tv Developer&lt;br /&gt;
* [[User:Topfs2|Topfs2]]&lt;br /&gt;
* [[User:VDRfan|VDRfan]]&lt;br /&gt;
* [[User:FernetMenta|FernetMenta]] linux, video, windowing, pvr etc developer&lt;br /&gt;
* [[User:wsnipex|wsnipex]] Linux PPA&lt;br /&gt;
* [[User:fritsch|fritsch]] Linux, ActiveAE, Pulseaudio, VAAPI, User Support, OpenELEC&lt;br /&gt;
&lt;br /&gt;
== Developers (Mac and iOS) ==&lt;br /&gt;
* [[User:Beenje|Beenje]] - PowerPC (PPC) specialist&lt;br /&gt;
* [[User:davilla|davilla]]&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]]&lt;br /&gt;
* [[User:Memphiz|Memphiz]] - dark side padawan&lt;br /&gt;
* [[User:ulion|ulion]]&lt;br /&gt;
&lt;br /&gt;
== Developers (Windows) ==&lt;br /&gt;
* [[User:a11599|a11599]] - primarily windows video and dxva&lt;br /&gt;
* [[User:blinkseb|blinkseb]]&lt;br /&gt;
* [[User:bobo1on1|bobo1on1]]&lt;br /&gt;
* [[User:Chadoe|Chadoe]]&lt;br /&gt;
* [[User:CrystalP|CrystalP]]&lt;br /&gt;
* [[User:jhsrennie|jhsrennie]]&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]]&lt;br /&gt;
* [[User:tiben20|tiben20]] - butcher by day, coder by night&lt;br /&gt;
* [[User:WiSo|WiSo (aka wsoltys)]]&lt;br /&gt;
* [[User:DDDamian|DDDamian]]&lt;br /&gt;
* [[User:DanielaE|DanielaE]]&lt;br /&gt;
* [[User:Voyager|Voyager]] - general Windows, hunting bugs in library, dvdplayer etc.&lt;br /&gt;
* [[User:Koying|Koying]] Windows, Android, mysql&lt;br /&gt;
&lt;br /&gt;
== Developers (ARM) ==&lt;br /&gt;
* [[User:McGeagh|McGeagh]]&lt;br /&gt;
* [[User:Phaeodaria|Phaeodaria]]&lt;br /&gt;
* [[User:Topfs2|Topfs2]]&lt;br /&gt;
&lt;br /&gt;
== Skinners / Graphic-artists ==&lt;br /&gt;
* da-anda - graphics&lt;br /&gt;
* [[User:freezy|freezy]]&lt;br /&gt;
* [[User:Jezz_X|Jezz_X]] - Team skinner &amp;amp; Project Manager of the [http://sourceforge.net/projects/xboxmediacenter Kodi Skinning Project]&lt;br /&gt;
* [[User:ronie|ronie]] - xml coding&lt;br /&gt;
* [[User:tree_jammer|tree_jammer]] - graphics&lt;br /&gt;
&lt;br /&gt;
== Addon Developers ==&lt;br /&gt;
* [[User:Clumsy|Clumsy]]&lt;br /&gt;
* [[User:opdenkamp|opdenkamp]] - PVR, EPG&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]] - on an as-needed basis&lt;br /&gt;
* [[User:Martijn|Martijn]] - python addons&lt;br /&gt;
* [[User:ronie|ronie]] - python addons&lt;br /&gt;
&lt;br /&gt;
== Q/A Testers ==&lt;br /&gt;
* [[User:keith|keith]] - QA for iOS and OSX projects&lt;br /&gt;
* [[User:kricker|kricker]]&lt;br /&gt;
* [[User:alanwww1|alanwww1]] - QA for Intel HW, VAAPI&lt;br /&gt;
* [[User:Gabbott|Gabbott]]&lt;br /&gt;
* [[User:Milhouse|Milhouse]]&lt;br /&gt;
&lt;br /&gt;
== Website services ==&lt;br /&gt;
* [[User:Clumsy|Clumsy]] - Forum Moderator&lt;br /&gt;
* da-anda - Forum administration&lt;br /&gt;
* [[User:DonJ|DonJ]] - Server and Mirror Contact&lt;br /&gt;
* [[User:joebrady|joebrady]] - Forum Moderator&lt;br /&gt;
* [[User:Ned Scott|Ned Scott]] - Wiki&lt;br /&gt;
* [[User:Prae5|Prae5]] - Forum Moderator&lt;br /&gt;
* [[User:Sho|Sho]] - WIKI Structure Guru&lt;br /&gt;
* [[User:Zag|Zag]] - Add-on Frontend, Website, General Community Stuff&lt;br /&gt;
* [[User:kibje|Kib]] - Server Administrator&lt;br /&gt;
&lt;br /&gt;
== Google Summer of Code 2012 ==&lt;br /&gt;
:&#039;&#039;See also: http://www.google-melange.com/gsoc/org/google/gsoc2012/xbmc &#039;&#039;&lt;br /&gt;
* Alasdair Campbell (Alcoheca) - Improved UPnP serving and client &lt;br /&gt;
** Joakim Plate (elupus) - Mentor&lt;br /&gt;
* Andres Mejia (amejia) - Kodi Test Suite &lt;br /&gt;
** Bob van Loosen (bobo1on1) - Mentor&lt;br /&gt;
* Montellese - Advanced Library Filtering in Kodi&lt;br /&gt;
** Jonathan Marshall (jmarshall) - Mentor&lt;br /&gt;
* topfs2 - Clean scraping API &lt;br /&gt;
** spiff - Mentor&lt;br /&gt;
* Nathan Betzen (natethomas) - GSoC admin&lt;br /&gt;
&lt;br /&gt;
= Semi-active =&lt;br /&gt;
* [[User:Gamester17|Gamester17]] - formally an active forum moderator, but he still contributes to the wiki.&lt;br /&gt;
&lt;br /&gt;
= Inactive members =&lt;br /&gt;
&lt;br /&gt;
== Project Founders (All Retired) ==&lt;br /&gt;
* [[User:Frodo|Frodo]] - now [http://www.team-mediaportal.com MediaPortal] head programmer/founder&lt;br /&gt;
* [[User:RUNTiME|RUNTiME]] - now [http://www.runtime360.com runtime360.com] &amp;amp; [http://www.runtime360.com/projects/transcode-360/ Transcode 360]&lt;br /&gt;
* [[User:d7o3g4q|d7o3g4q (a.k.a. Duo Egaq)]] M.I.A. (Missing In Action)&lt;br /&gt;
&lt;br /&gt;
== Developers (Currently Inactive or Retired) ==&lt;br /&gt;
* [[User:AlTheKiller|AlTheKiller]]&lt;br /&gt;
* [[User:davilla|davilla]]&lt;br /&gt;
* [[User:MaestroDD|MaestroDD]] - Mac OS X, and Apple TV&lt;br /&gt;
* [[User:wattazoum|wattazoum]] - Kodi for Linux packaging specialist&lt;br /&gt;
* [[User:AreaScout|AreaScout]]&lt;br /&gt;
* [[User:oldnemesis|oldnemesis]]&lt;br /&gt;
* [[User:motd2k|motd2k]]&lt;br /&gt;
* [[User:Rudd|Rudd]]&lt;br /&gt;
* [[User:Kraqh3d|Kraqh3d]]&lt;br /&gt;
* [[User:C-Quel|C-Quel]]&lt;br /&gt;
* [[User:Agathorn|Agathorn]]&lt;br /&gt;
* [[User:Tut-ankh-amon|tut-ankh-amon]]&lt;br /&gt;
* [[User:nad|nad]] - [[WebServerHTTP-API|Kodi HTTP API Mastermind]]&lt;br /&gt;
* [[User:MrC|MrC]] - Kodi Visualisation/Screensaver Mastermind&lt;br /&gt;
* [[User:c0diq|c0diq]] - UPnP (Universial Plug And Play) Mastermind&lt;br /&gt;
* [[User:Yuvalt|Yuvalt]] - Kodi Linux port specialist&lt;br /&gt;
* [[User:Vulkanr|Vulkanr]] - Kodi Linux and Mac port specialist&lt;br /&gt;
* [[User:D4rk|D4rk]] - Kodi Linux and Mac port specialist&lt;br /&gt;
* [[User:Bobbin007|Bobbin007]]&lt;br /&gt;
* [[User:Tslayer|Tslayer]]&lt;br /&gt;
* [[User:GeminiServer|GeminiServer]] - Low-level Hardware Guru&lt;br /&gt;
* [[User:Darkie|Darkie]]&lt;br /&gt;
* [[User:Forza|Forza]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:Butcher|Butcher]]&lt;br /&gt;
* [[User:Ysbox|Ysbox]]&lt;br /&gt;
* [[User:Guybrush|Guybrush]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:Kreet|Kreet]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:monkeyhappy|monkeyhappy]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:elan|elan (a.k.a. leafmuncher)]] - Kodi for Mac port specialist&lt;br /&gt;
* [[User:LiquidIce629|LiquidIce629]] - [[The Web Interface|Kodi Web GUI control-interface]] ([http://www.cliqklabs.com/xbmcwebgui/ Website])&lt;br /&gt;
* [[User:Spiff|Spiff]]&lt;br /&gt;
* [[User:theuni|theuni]] - Business Relation Manager&lt;br /&gt;
&lt;br /&gt;
== Skinners / Graphic-artists (Retired) ==&lt;br /&gt;
* [[User:CHI3f|CHI3f]] - XML Guru and all round Good Guy&lt;br /&gt;
* [[User:SmokeHead|SmokeHead]] - Photoshop Guru (Missing In Action)&lt;br /&gt;
* [[User:Chokemaniac|ChokeManiac]] - Project Mayhem&lt;br /&gt;
&lt;br /&gt;
== Python Scripters (Retired/Inactive) ==&lt;br /&gt;
* [[User:Voinage|Voinage]] - Python Plugin coder&lt;br /&gt;
* [[User:rwparris2|rwparris2]] - Python Plugin coder&lt;br /&gt;
* [[User:Nuka1195|Nuka1195]] - Python Script coder&lt;br /&gt;
&lt;br /&gt;
== Web Services (Retired/Inactive) ==&lt;br /&gt;
* [[User:Granqvist|Granqvist]] - Web Developer&lt;br /&gt;
* [[User:blittan|blittan]] - Web and Python Developer&lt;br /&gt;
&lt;br /&gt;
== Testers (Retired/Inactive) ==&lt;br /&gt;
* [[User:DDay|DDay]] - [http://forums.xbox-scene.com/index.php?showforum=180 Xbox-Scene.com Forum Mod God]&lt;br /&gt;
* [[User:TeknoJuce|TeknoJuce]] CrAzY Canuck&lt;br /&gt;
* [[User:Modhack|Modhack]] - French Guru [http://manuel.xboxmediacenter.fr .fr manuel]&lt;br /&gt;
* [[User:Donno|Donno]] - 1337 d00d&lt;br /&gt;
* [[User:SandmanCL|SandmanCL]] - Quality Assurance&lt;br /&gt;
* [[User:ShortySco|ShortySco]] - Quality Assurance&lt;br /&gt;
* [[User:Scape|sCAPe]] - Beta-Tester&lt;br /&gt;
&lt;br /&gt;
== #Kodi (FreeNode) IRC Support ==&lt;br /&gt;
* [[User:Bizzeh|Bizzeh]] - Mr. Hater (&amp;quot;I want to be in all sections&amp;quot;) ([http://www.bizzeh.com Blog])&lt;br /&gt;
* [[User:Cocoliso|Cocoliso]] - Spanish&lt;br /&gt;
* [[User:DOS4GW|DOS4GW]] - Multi-lingual&lt;br /&gt;
* [[User:Jedi79|Jedi79]]&lt;br /&gt;
* [[User:MattAAron|MattAAron]]&lt;br /&gt;
* [[User:No1CaNTeL|No1CaNTeL]]&lt;br /&gt;
* [[User:xLoial|xLoial]] - Seasoned newbie&lt;br /&gt;
&lt;br /&gt;
== Forum and Online Manual (WIKI) Moderators (Retired/Inactive) ==&lt;br /&gt;
* [[User:Dankula|Dankula]] - WIKI Editor&lt;br /&gt;
* [[User:Loto_Bak|Loto_Bak]] - Al&#039;round support man&lt;br /&gt;
* [[User:nimbles|nimbles]]&lt;br /&gt;
* [[User:No_Good|No Good]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Team Kodi]]&lt;br /&gt;
[[Category:Team Kodi specific notes]]&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Team_Kodi/Members&amp;diff=97851</id>
		<title>Archive:Team Kodi/Members</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Team_Kodi/Members&amp;diff=97851"/>
		<updated>2015-06-22T22:20:48Z</updated>

		<summary type="html">&lt;p&gt;Alwinus: /* Developers (Currently Inactive or Retired) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]}}&lt;br /&gt;
{{notice|&#039;&#039;&#039;PLEASE DON&#039;T E-MAIL OR PM ANYONE DIRECTLY ABOUT SUPPORT! INSTEAD USE THE COMMUNITY FORUM OR IRC-CHANNELS!&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=intro /&amp;gt;Team Kodi is the formal group of people who develop and maintain [[Kodi]], the [http://kodi.tv Kodi websites], and/or other supporting roles.&amp;lt;section end=intro /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;This list is likely incomplete, so give us a nudge if we forgot you&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{{warning|This is probably very outdated... We&#039;re working on a better way to list active members. If you see anything wrong on this page them please poke a team member about it (or just Ned).}}&lt;br /&gt;
{{TOCright}}&lt;br /&gt;
= Active members =&lt;br /&gt;
&lt;br /&gt;
== XBMC Foundation Voting Board Members and Non-Voting Officers ==&lt;br /&gt;
{{Main|XBMC Foundation}}&lt;br /&gt;
{{#lst:XBMC Foundation|intro}}&lt;br /&gt;
{{#lst:XBMC Foundation|Foundation members}}&lt;br /&gt;
&lt;br /&gt;
== Project Managers ==&lt;br /&gt;
* [[User:Pike|Pike]] - The Bossman&lt;br /&gt;
* [[User:Natethomas|Natethomas]] - Community Manager&lt;br /&gt;
* [[User:Martijn|Martijn]] - GitHub Project Manager&lt;br /&gt;
&lt;br /&gt;
== Developers (General) ==&lt;br /&gt;
* abelier - video decoding&lt;br /&gt;
* [[User:alanwww1|alanwww1]] - Translations, Intel related stuff&lt;br /&gt;
* [[User:Alcoheca|Alcoheca]]&lt;br /&gt;
* [[User:amet|amet]]&lt;br /&gt;
* [[User:Anssi|Anssi]]&lt;br /&gt;
* [[User:Arnova|Arnova]] - Curl/webdav filesystem(s), general bug fixes&lt;br /&gt;
* [[User:bobo1on1|bobo1on1]] - Video Playback, General Bugfixes&lt;br /&gt;
* [[User:Chadoe|Chadoe]] - general bug fixes&lt;br /&gt;
* [[User:opdenkamp|opdenkamp]] - PVR, EPG&lt;br /&gt;
* [[User:dteirney|dteirney]] - MythTV Integration&lt;br /&gt;
* [[User:elupus|elupus]] - Kodi video player (DVDPlayer) god&lt;br /&gt;
* [[User:firnsy|firnsy]] - Database&lt;br /&gt;
* [[User:Fneufneu|Fneufneu]] - BSD Developer&lt;br /&gt;
* [[User:freezy|freezy]] - Android Remote Developer&lt;br /&gt;
* [[User:garbear|garbear]]&lt;br /&gt;
* [[User:gnif|gnif]] - Audio, Audio Engine&lt;br /&gt;
* [[User:jfcarroll|jfcarroll]] - swig integration, binary addon developer&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]] - Jedi-Master&lt;br /&gt;
* JoeTheFox - iPhone Remote Developer&lt;br /&gt;
* [[User:Malard|Malard]] - Web&lt;br /&gt;
* [[User:Memphiz|Memphiz]] - vfs, zeroconf, AirPlay and general stuff&lt;br /&gt;
* [[User:Montellese|Montellese]] - JSONRPC&lt;br /&gt;
* night199uk - Music library&lt;br /&gt;
* [[User:olympia|olympia]] - scraper developer/repo maintainer&lt;br /&gt;
* [[User:phi2039|phi2039]] - Audio, Assembly, and anything that sounds like it might be challenging...&lt;br /&gt;
* [[User:pieh|pieh]] - General code tinkering&lt;br /&gt;
* [[User:taxigps|taxigps]]&lt;br /&gt;
* [[User:Topfs2|Topfs2]] - JSONRPC, ARM, power, storage, dbus&lt;br /&gt;
* [[User:the_alien|the_alien]] - Android Remote Developer&lt;br /&gt;
* [[User:VDRfan|VDRfan]] - General&lt;br /&gt;
* [[User:Herrnst|Herrnst]] - LCD display coding&lt;br /&gt;
* [[User:Voyager|Voyager]] - hunting bugs in library, dvdplayer etc.&lt;br /&gt;
* [[User:ulion|ulion]]&lt;br /&gt;
&lt;br /&gt;
== Developers (Linux) ==&lt;br /&gt;
* [[User:AlTheKiller|AlTheKiller]]&lt;br /&gt;
* [[User:Amejia|Amejia]] - Debian, etc.&lt;br /&gt;
* [[User:Anssi|Anssi]]&lt;br /&gt;
* [[User:Arnova|Arnova]]&lt;br /&gt;
* [[User:bobo1on1|bobo1on1]]&lt;br /&gt;
* [[User:opdenkamp|opdenkamp]]&lt;br /&gt;
* [[User:Erhnam|Erhnam]] - XBMCFreak creater, Live Distro developer&lt;br /&gt;
* [[User:firnsy|firnsy]]&lt;br /&gt;
* [[User:l.capriotti|l.capriotti]] - LiveUSB Distro&lt;br /&gt;
* [[User:malloc|malloc]]&lt;br /&gt;
* [[User:monkeyman 67156|monkeyman 67156]]&lt;br /&gt;
* [[User:Phaeodaria|Phaeodaria]]&lt;br /&gt;
* [[User:sraue|sraue]] - OpenELEC.tv Developer&lt;br /&gt;
* [[User:Topfs2|Topfs2]]&lt;br /&gt;
* [[User:VDRfan|VDRfan]]&lt;br /&gt;
* [[User:FernetMenta|FernetMenta]] linux, video, windowing, pvr etc developer&lt;br /&gt;
* [[User:wsnipex|wsnipex]] Linux PPA&lt;br /&gt;
* [[User:fritsch|fritsch]] Linux, ActiveAE, Pulseaudio, VAAPI, User Support, OpenELEC&lt;br /&gt;
&lt;br /&gt;
== Developers (Mac and iOS) ==&lt;br /&gt;
* [[User:Beenje|Beenje]] - PowerPC (PPC) specialist&lt;br /&gt;
* [[User:davilla|davilla]]&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]]&lt;br /&gt;
* [[User:Memphiz|Memphiz]] - dark side padawan&lt;br /&gt;
* [[User:ulion|ulion]]&lt;br /&gt;
&lt;br /&gt;
== Developers (Windows) ==&lt;br /&gt;
* [[User:a11599|a11599]] - primarily windows video and dxva&lt;br /&gt;
* [[User:blinkseb|blinkseb]]&lt;br /&gt;
* [[User:bobo1on1|bobo1on1]]&lt;br /&gt;
* [[User:Chadoe|Chadoe]]&lt;br /&gt;
* [[User:CrystalP|CrystalP]]&lt;br /&gt;
* [[User:jhsrennie|jhsrennie]]&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]]&lt;br /&gt;
* [[User:tiben20|tiben20]] - butcher by day, coder by night&lt;br /&gt;
* [[User:WiSo|WiSo (aka wsoltys)]]&lt;br /&gt;
* [[User:DDDamian|DDDamian]]&lt;br /&gt;
* [[User:DanielaE|DanielaE]]&lt;br /&gt;
* [[User:Voyager|Voyager]] - general Windows, hunting bugs in library, dvdplayer etc.&lt;br /&gt;
* [[User:Koying|Koying]] Windows, Android, mysql&lt;br /&gt;
&lt;br /&gt;
== Developers (ARM) ==&lt;br /&gt;
* [[User:McGeagh|McGeagh]]&lt;br /&gt;
* [[User:Phaeodaria|Phaeodaria]]&lt;br /&gt;
* [[User:Topfs2|Topfs2]]&lt;br /&gt;
&lt;br /&gt;
== Skinners / Graphic-artists ==&lt;br /&gt;
* da-anda - graphics&lt;br /&gt;
* [[User:freezy|freezy]]&lt;br /&gt;
* [[User:Jezz_X|Jezz_X]] - Team skinner &amp;amp; Project Manager of the [http://sourceforge.net/projects/xboxmediacenter Kodi Skinning Project]&lt;br /&gt;
* [[User:ronie|ronie]] - xml coding&lt;br /&gt;
* [[User:tree_jammer|tree_jammer]] - graphics&lt;br /&gt;
&lt;br /&gt;
== Addon Developers ==&lt;br /&gt;
* [[User:Clumsy|Clumsy]]&lt;br /&gt;
* [[User:opdenkamp|opdenkamp]] - PVR, EPG&lt;br /&gt;
* [[User:Jmarshall|Jmarshall]] - on an as-needed basis&lt;br /&gt;
* [[User:Martijn|Martijn]] - python addons&lt;br /&gt;
* [[User:ronie|ronie]] - python addons&lt;br /&gt;
&lt;br /&gt;
== Q/A Testers ==&lt;br /&gt;
* [[User:keith|keith]] - QA for iOS and OSX projects&lt;br /&gt;
* [[User:kricker|kricker]]&lt;br /&gt;
* [[User:alanwww1|alanwww1]] - QA for Intel HW, VAAPI&lt;br /&gt;
* [[User:Gabbott|Gabbott]]&lt;br /&gt;
* [[User:Milhouse|Milhouse]]&lt;br /&gt;
&lt;br /&gt;
== Website services ==&lt;br /&gt;
* [[User:Clumsy|Clumsy]] - Forum Moderator&lt;br /&gt;
* da-anda - Forum administration&lt;br /&gt;
* [[User:DonJ|DonJ]] - Server and Mirror Contact&lt;br /&gt;
* [[User:joebrady|joebrady]] - Forum Moderator&lt;br /&gt;
* [[User:Ned Scott|Ned Scott]] - Wiki&lt;br /&gt;
* [[User:Prae5|Prae5]] - Forum Moderator&lt;br /&gt;
* [[User:Sho|Sho]] - WIKI Structure Guru&lt;br /&gt;
* [[User:Zag|Zag]] - Add-on Frontend, Website, General Community Stuff&lt;br /&gt;
* [[User:kibje|Kib]] - Server Administrator&lt;br /&gt;
&lt;br /&gt;
== Google Summer of Code 2012 ==&lt;br /&gt;
:&#039;&#039;See also: http://www.google-melange.com/gsoc/org/google/gsoc2012/xbmc &#039;&#039;&lt;br /&gt;
* Alasdair Campbell (Alcoheca) - Improved UPnP serving and client &lt;br /&gt;
** Joakim Plate (elupus) - Mentor&lt;br /&gt;
* Andres Mejia (amejia) - Kodi Test Suite &lt;br /&gt;
** Bob van Loosen (bobo1on1) - Mentor&lt;br /&gt;
* Montellese - Advanced Library Filtering in Kodi&lt;br /&gt;
** Jonathan Marshall (jmarshall) - Mentor&lt;br /&gt;
* topfs2 - Clean scraping API &lt;br /&gt;
** spiff - Mentor&lt;br /&gt;
* Nathan Betzen (natethomas) - GSoC admin&lt;br /&gt;
&lt;br /&gt;
= Semi-active =&lt;br /&gt;
* [[User:Gamester17|Gamester17]] - formally an active forum moderator, but he still contributes to the wiki.&lt;br /&gt;
&lt;br /&gt;
= Inactive members =&lt;br /&gt;
&lt;br /&gt;
== Project Founders (All Retired) ==&lt;br /&gt;
* [[User:Frodo|Frodo]] - now [http://www.team-mediaportal.com MediaPortal] head programmer/founder&lt;br /&gt;
* [[User:RUNTiME|RUNTiME]] - now [http://www.runtime360.com runtime360.com] &amp;amp; [http://www.runtime360.com/projects/transcode-360/ Transcode 360]&lt;br /&gt;
* [[User:d7o3g4q|d7o3g4q (a.k.a. Duo Egaq)]] M.I.A. (Missing In Action)&lt;br /&gt;
&lt;br /&gt;
== Developers (Currently Inactive or Retired) ==&lt;br /&gt;
* [[User:AlTheKiller|AlTheKiller]]&lt;br /&gt;
* [[User:davilla|davilla]]&lt;br /&gt;
* [[User:MaestroDD|MaestroDD]] - Mac OS X, and Apple TV&lt;br /&gt;
* [[User:wattazoum|wattazoum]] - Kodi for Linux packaging specialist&lt;br /&gt;
* [[User:AreaScout|AreaScout]]&lt;br /&gt;
* [[User:oldnemesis|oldnemesis]]&lt;br /&gt;
* [[User:motd2k|motd2k]]&lt;br /&gt;
* [[User:Rudd|Rudd]]&lt;br /&gt;
* [[User:Kraqh3d|Kraqh3d]]&lt;br /&gt;
* [[User:C-Quel|C-Quel]]&lt;br /&gt;
* [[User:Agathorn|Agathorn]]&lt;br /&gt;
* [[User:Tut-ankh-amon|tut-ankh-amon]]&lt;br /&gt;
* [[User:nad|nad]] - [[WebServerHTTP-API|Kodi HTTP API Mastermind]]&lt;br /&gt;
* [[User:MrC|MrC]] - Kodi Visualisation/Screensaver Mastermind&lt;br /&gt;
* [[User:c0diq|c0diq]] - UPnP (Universial Plug And Play) Mastermind&lt;br /&gt;
* [[User:Yuvalt|Yuvalt]] - Kodi Linux port specialist&lt;br /&gt;
* [[User:Vulkanr|Vulkanr]] - Kodi Linux and Mac port specialist&lt;br /&gt;
* [[User:D4rk|D4rk]] - Kodi Linux and Mac port specialist&lt;br /&gt;
* [[User:Bobbin007|Bobbin007]]&lt;br /&gt;
* [[User:Tslayer|Tslayer]]&lt;br /&gt;
* [[User:GeminiServer|GeminiServer]] - Low-level Hardware Guru&lt;br /&gt;
* [[User:Darkie|Darkie]]&lt;br /&gt;
* [[User:Forza|Forza]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:Butcher|Butcher]]&lt;br /&gt;
* [[User:Ysbox|Ysbox]]&lt;br /&gt;
* [[User:Guybrush|Guybrush]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:Kreet|Kreet]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:monkeyhappy|monkeyhappy]] - M.I.A. (Missing In Action)&lt;br /&gt;
* [[User:elan|elan (a.k.a. leafmuncher)]] - Kodi for Mac port specialist&lt;br /&gt;
* [[User:LiquidIce629|LiquidIce629]] - [[The Web Interface|Kodi Web GUI control-interface]] ([http://www.cliqklabs.com/xbmcwebgui/ Website])&lt;br /&gt;
* [[User:Spiff|Spiff]]&lt;br /&gt;
* [[User:theuni|theuni]] - Business Relation Manager&lt;br /&gt;
&lt;br /&gt;
== Skinners / Graphic-artists (Retired) ==&lt;br /&gt;
* [[User:CHI3f|CHI3f]] - XML Guru and all round Good Guy&lt;br /&gt;
* [[User:SmokeHead|SmokeHead]] - Photoshop Guru (Missing In Action)&lt;br /&gt;
* [[User:Chokemaniac|ChokeManiac]] - Project Mayhem&lt;br /&gt;
&lt;br /&gt;
== Python Scripters (Retired/Inactive) ==&lt;br /&gt;
* [[User:Voinage|Voinage]] - Python Plugin coder&lt;br /&gt;
* [[User:rwparris2|rwparris2]] - Python Plugin coder&lt;br /&gt;
* [[User:Nuka1195|Nuka1195]] - Python Script coder&lt;br /&gt;
&lt;br /&gt;
== Web Services (Retired/Inactive) ==&lt;br /&gt;
* [[User:Granqvist|Granqvist]] - Web Developer&lt;br /&gt;
* [[User:blittan|blittan]] - Web and Python Developer&lt;br /&gt;
&lt;br /&gt;
== Testers (Retired/Inactive) ==&lt;br /&gt;
* [[User:DDay|DDay]] - [http://forums.xbox-scene.com/index.php?showforum=180 Xbox-Scene.com Forum Mod God]&lt;br /&gt;
* [[User:TeknoJuce|TeknoJuce]] CrAzY Canuck&lt;br /&gt;
* [[User:Modhack|Modhack]] - French Guru [http://manuel.xboxmediacenter.fr .fr manuel]&lt;br /&gt;
* [[User:Donno|Donno]] - 1337 d00d&lt;br /&gt;
* [[User:SandmanCL|SandmanCL]] - Quality Assurance&lt;br /&gt;
* [[User:ShortySco|ShortySco]] - Quality Assurance&lt;br /&gt;
* [[User:Scape|sCAPe]] - Beta-Tester&lt;br /&gt;
&lt;br /&gt;
== #Kodi (FreeNode) IRC Support ==&lt;br /&gt;
* [[User:Bizzeh|Bizzeh]] - Mr. Hater (&amp;quot;I want to be in all sections&amp;quot;) ([http://www.bizzeh.com Blog])&lt;br /&gt;
* [[User:Cocoliso|Cocoliso]] - Spanish&lt;br /&gt;
* [[User:DOS4GW|DOS4GW]] - Multi-lingual&lt;br /&gt;
* [[User:Jedi79|Jedi79]]&lt;br /&gt;
* [[User:MattAAron|MattAAron]]&lt;br /&gt;
* [[User:No1CaNTeL|No1CaNTeL]]&lt;br /&gt;
* [[User:xLoial|xLoial]] - Seasoned newbie&lt;br /&gt;
&lt;br /&gt;
== Forum and Online Manual (WIKI) Moderators (Retired/Inactive) ==&lt;br /&gt;
* [[User:Dankula|Dankula]] - WIKI Editor&lt;br /&gt;
* [[User:Loto_Bak|Loto_Bak]] - Al&#039;round support man&lt;br /&gt;
* [[User:nimbles|nimbles]]&lt;br /&gt;
* [[User:No_Good|No Good]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Team Kodi]]&lt;br /&gt;
[[Category:Team Kodi specific notes]]&lt;/div&gt;</summary>
		<author><name>Alwinus</name></author>
	</entry>
</feed>