<?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=Graysky</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=Graysky"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/Graysky"/>
	<updated>2026-06-15T05:38:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=243711</id>
		<title>HOW-TO:Install Kodi on Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=243711"/>
		<updated>2023-01-19T10:50:29Z</updated>

		<summary type="html">&lt;p&gt;Graysky: update Arch ARM selection&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Raspberry Pi]]|page={{FULLPAGENAME}} }}&lt;br /&gt;
The basic hardware you will need is &lt;br /&gt;
* the R-Pi board itself&lt;br /&gt;
* a power supply (Micro-USB, 5V, upto 2500 mA)&lt;br /&gt;
* a (micro)SDHC memory card to install the software. (Because video decoding is more resource-intensive than many other operations, it may be more important to have a fast/high quality memory card for Kodi than for other uses.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basic options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
;Easy / Kodi centric distributions&lt;br /&gt;
* &#039;&#039;&#039;[[LibreELEC]] -&#039;&#039;&#039; [https://libreelec.tv/downloads_new/ Download] • [https://wiki.libreelec.tv Wiki] • [http://forum.libreelec.tv Forum]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[OSMC]] -&#039;&#039;&#039; [https://osmc.tv/ Home] [https://osmc.tv/download/ Installing] • [https://osmc.tv/wiki Wiki] • [https://discourse.osmc.tv Support Forum] &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[XBian]] -&#039;&#039;&#039; [http://xbian.org/getxbian/ Installing] • [http://xbian.org/faq/ FAQ] • [http://xbian.org/getting-started/ Starters guide] • [http://forum.xbian.org/ Forum]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Advanced / can be used with Kodi&lt;br /&gt;
* &#039;&#039;&#039;Arch Linux ARM -&#039;&#039;&#039; [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4 RPi4] • [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3 RPi3] • [http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 RPi2] • [http://archlinuxarm.org/platforms/armv6/raspberry-pi RPi1]&lt;br /&gt;
&lt;br /&gt;
Note that Arch ARM provides different Kodi packages optimized for different RPi models.  All builds offer some flavor of HW accelerated decoding just like LibreELEC.  The following packages will supply the current stable version of Kodi:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rpi kodi-rpi] for RPi 3/4/400&lt;br /&gt;
&lt;br /&gt;
[https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rpi-legacy kodi-rpi-legacy] for RPi 2&lt;br /&gt;
&lt;br /&gt;
Users wanting to track the master branch may select:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rpi kodi-rpi-git] for RPi 3/4/400 only&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Batocera Linux -&#039;&#039;&#039; [https://batocera-linux.xorhub.com/#learn Learn More]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Buildroot]]&#039;&#039;&#039; - For experienced users only !&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CarPC -&#039;&#039;&#039; [http://www.engineering-diy.blogspot.ro/2015/01/raspberrypi-carpc-tutorial.html Guide]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Raspberry Pi OS -&#039;&#039;&#039; Up-to-date versions &#039;&#039;&#039;(Currently Leia 18.7)&#039;&#039;&#039; of Kodi are now on the default Raspbian repositories. See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#Raspberry Pi OS|full guide here]]&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Recalbox -&#039;&#039;&#039; [http://www.recalbox.com/diyrecalbox Installing]&lt;br /&gt;
&amp;lt;section end=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RetroPie - &#039;&#039;&#039; See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#RetroPie|full guide here]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Specific install guides ==&lt;br /&gt;
For installs that don&#039;t directly include and/or boot into Kodi automatically.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi OS ===&lt;br /&gt;
{{editor note|We need to expand on this section, but here are the basic commands if you are familiar with the command-line:}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Current Version - 18.7)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;PVR Addons&lt;br /&gt;
* PVR Addons can be installed directly from the command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install PACKAGENAMEHERE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
but replace &#039;&#039;&#039;PACKAGENAMEHERE&#039;&#039;&#039; with the PVR addon required.&lt;br /&gt;
&amp;lt;pre&amp;gt;example: sudo apt-get install kodi-pvr-hts&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PVR client add-on should now be installed. If Kodi was already running, restart it to load the add-on.&lt;br /&gt;
&lt;br /&gt;
=== RetroPie ===&lt;br /&gt;
Here&#039;s a [https://www.youtube.com/watch?v=MyeCQS7ITnU youtube guide]:&lt;br /&gt;
&lt;br /&gt;
{{#widget:YouTube|id=MyeCQS7ITnU}}&lt;br /&gt;
&lt;br /&gt;
== Compiling Kodi ==&lt;br /&gt;
Notes for advanced users who wish to try and build Kodi from source code.&lt;br /&gt;
* Various good notes mentioned here: https://github.com/xbmc/xbmc/blob/master/docs/README.RaspberryPi.md&lt;br /&gt;
&lt;br /&gt;
{{updated|22}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Installation|Raspberry Pi]]&lt;br /&gt;
[[Category:Raspberry Pi]]&lt;br /&gt;
[[Category:How-to]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Settings/Services/NFS_Client&amp;diff=243710</id>
		<title>Settings/Services/NFS Client</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Settings/Services/NFS_Client&amp;diff=243710"/>
		<updated>2023-01-19T10:44:36Z</updated>

		<summary type="html">&lt;p&gt;Graysky: remove windows warning due to author&amp;#039;s lack of windows knowledge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Settings]] | [[Settings/Services|Services]]  }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==NFS Protocol Version==&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Advanced&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| Toggle between NFSv3 or NFSv4 to match the settings used on the NFS export(s)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{updated|20}}&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Settings/Services/NFS_Client&amp;diff=243709</id>
		<title>Settings/Services/NFS Client</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Settings/Services/NFS_Client&amp;diff=243709"/>
		<updated>2023-01-19T10:27:37Z</updated>

		<summary type="html">&lt;p&gt;Graysky: create page with new setting in v20&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Settings]] | [[Settings/Services|Services]]  }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{warning| &amp;lt;center&amp;gt;&#039;&#039;&#039;These settings do not apply, and are not visible when using MS Windows&#039;&#039;&#039;&amp;lt;/center&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==NFS Protocol Version==&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| width=120px | {{nowrap|&#039;&#039;&#039;Settings level:&#039;&#039;&#039;}} &lt;br /&gt;
| Advanced&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
| Toggle between NFSv3 or NFSv4 to match the settings used on the NFS export(s)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{updated|20}}&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=225289</id>
		<title>HOW-TO:Install Kodi on Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=225289"/>
		<updated>2021-04-18T12:04:30Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Basic options */ list alphabetically&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Raspberry Pi]]|page={{FULLPAGENAME}} }}&lt;br /&gt;
The basic hardware you will need is &lt;br /&gt;
* the R-Pi board itself&lt;br /&gt;
* a power supply (Micro-USB, 5V, upto 2500 mA)&lt;br /&gt;
* a (micro)SDHC memory card to install the software. (Because video decoding is more resource-intensive than many other operations, it may be more important to have a fast/high quality memory card for Kodi than for other uses.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basic options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
;Easy / Kodi centric distributions&lt;br /&gt;
* &#039;&#039;&#039;[[LibreELEC]] -&#039;&#039;&#039; [https://libreelec.tv/downloads_new/ Download] • [https://wiki.libreelec.tv Wiki] • [http://forum.libreelec.tv Forum]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[OSMC]] -&#039;&#039;&#039; [https://osmc.tv/ Home] [https://osmc.tv/download/ Installing] • [https://osmc.tv/wiki Wiki] • [https://discourse.osmc.tv Support Forum] &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[XBian]] -&#039;&#039;&#039; [http://xbian.org/getxbian/ Installing] • [http://xbian.org/faq/ FAQ] • [http://xbian.org/getting-started/ Starters guide] • [http://forum.xbian.org/ Forum]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Advanced / can be used with Kodi&lt;br /&gt;
* &#039;&#039;&#039;Arch Linux ARM -&#039;&#039;&#039; [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4 RPi4] • [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3 RPi3] • [http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 RPi2] • [http://archlinuxarm.org/platforms/armv6/raspberry-pi RPi1]&lt;br /&gt;
&lt;br /&gt;
Note that Arch ARM provides different Kodi packages optimized for different RPi models.  All builds feature popcornmix&#039;s [https://github.com/popcornmix/xbmc/tree/gbm_matrix gbm_matrix] branch of Kodi and offer some flavor of HW accelerated decoding just like LibreELEC.&lt;br /&gt;
[https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rpi kodi-rpi] for RPi 3/4/400&lt;br /&gt;
[https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rpi-legacy kodi-rpi-legacy] for RPi 2 (popcornmix&#039;s [https://github.com/popcornmix/xbmc/tree/gbm_matrix gbm_matrix] branch)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Batocera Linux -&#039;&#039;&#039; [https://batocera-linux.xorhub.com/#learn Learn More]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Buildroot]]&#039;&#039;&#039; - For experienced users only !&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CarPC -&#039;&#039;&#039; [http://www.engineering-diy.blogspot.ro/2015/01/raspberrypi-carpc-tutorial.html Guide]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Raspberry Pi OS -&#039;&#039;&#039; Up-to-date versions &#039;&#039;&#039;(Currently Leia 18.7)&#039;&#039;&#039; of Kodi are now on the default Raspbian repositories. See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#Raspberry Pi OS|full guide here]]&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Recalbox -&#039;&#039;&#039; [http://www.recalbox.com/diyrecalbox Installing]&lt;br /&gt;
&amp;lt;section end=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RetroPie - &#039;&#039;&#039; See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#RetroPie|full guide here]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Specific install guides ==&lt;br /&gt;
For installs that don&#039;t directly include and/or boot into Kodi automatically.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi OS ===&lt;br /&gt;
{{editor note|We need to expand on this section, but here are the basic commands if you are familiar with the command-line:}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Current Version - 18.7)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;PVR Addons&lt;br /&gt;
* PVR Addons can be installed directly from the command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install PACKAGENAMEHERE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
but replace &#039;&#039;&#039;PACKAGENAMEHERE&#039;&#039;&#039; with the PVR addon required.&lt;br /&gt;
&amp;lt;pre&amp;gt;example: sudo apt-get install kodi-pvr-hts&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PVR client add-on should now be installed. If Kodi was already running, restart it to load the add-on.&lt;br /&gt;
&lt;br /&gt;
=== RetroPie ===&lt;br /&gt;
Here&#039;s a [https://www.youtube.com/watch?v=MyeCQS7ITnU youtube guide]:&lt;br /&gt;
&lt;br /&gt;
{{#widget:YouTube|id=MyeCQS7ITnU}}&lt;br /&gt;
&lt;br /&gt;
== Compiling Kodi ==&lt;br /&gt;
Notes for advanced users who wish to try and build Kodi from source code.&lt;br /&gt;
* Various good notes mentioned here: https://github.com/xbmc/xbmc/blob/master/docs/README.RaspberryPi.md&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Installation|Raspberry Pi]]&lt;br /&gt;
[[Category:Raspberry Pi]]&lt;br /&gt;
[[Category:How-to]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=225288</id>
		<title>HOW-TO:Install Kodi on Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=225288"/>
		<updated>2021-04-18T12:02:22Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Basic options */ update Arch ARM packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Raspberry Pi]]|page={{FULLPAGENAME}} }}&lt;br /&gt;
The basic hardware you will need is &lt;br /&gt;
* the R-Pi board itself&lt;br /&gt;
* a power supply (Micro-USB, 5V, upto 2500 mA)&lt;br /&gt;
* a (micro)SDHC memory card to install the software. (Because video decoding is more resource-intensive than many other operations, it may be more important to have a fast/high quality memory card for Kodi than for other uses.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basic options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
;Easy / Kodi centric distributions&lt;br /&gt;
* &#039;&#039;&#039;[[LibreELEC]] -&#039;&#039;&#039; [https://libreelec.tv/downloads_new/ Download] • [https://wiki.libreelec.tv Wiki] • [http://forum.libreelec.tv Forum]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[OSMC]] -&#039;&#039;&#039; [https://osmc.tv/ Home] [https://osmc.tv/download/ Installing] • [https://osmc.tv/wiki Wiki] • [https://discourse.osmc.tv Support Forum] &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[XBian]] -&#039;&#039;&#039; [http://xbian.org/getxbian/ Installing] • [http://xbian.org/faq/ FAQ] • [http://xbian.org/getting-started/ Starters guide] • [http://forum.xbian.org/ Forum]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Advanced / can be used with Kodi&lt;br /&gt;
* &#039;&#039;&#039;Raspberry Pi OS -&#039;&#039;&#039; Up-to-date versions &#039;&#039;&#039;(Currently Leia 18.7)&#039;&#039;&#039; of Kodi are now on the default Raspbian repositories. See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#Raspberry Pi OS|full guide here]]&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CarPC -&#039;&#039;&#039; [http://www.engineering-diy.blogspot.ro/2015/01/raspberrypi-carpc-tutorial.html Guide]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RetroPie - &#039;&#039;&#039; See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#RetroPie|full guide here]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Recalbox -&#039;&#039;&#039; [http://www.recalbox.com/diyrecalbox Installing]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Batocera Linux -&#039;&#039;&#039; [https://batocera-linux.xorhub.com/#learn Learn More]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Arch Linux ARM -&#039;&#039;&#039; [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4 RPi4] • [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3 RPi3] • [http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 RPi2] • [http://archlinuxarm.org/platforms/armv6/raspberry-pi RPi1]&lt;br /&gt;
&lt;br /&gt;
* Note that Arch ARM provides different Kodi packages optimized for different RPi models.  All builds feature popcornmix&#039;s [https://github.com/popcornmix/xbmc/tree/gbm_matrix gbm_matrix] branch of Kodi and offer some flavor of HW accelerated decoding just like LibreELEC.&lt;br /&gt;
* [https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rpi kodi-rpi] for RPi 3/4/400&lt;br /&gt;
* [https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rpi-legacy kodi-rpi-legacy] for RPi 2 (popcornmix&#039;s [https://github.com/popcornmix/xbmc/tree/gbm_matrix gbm_matrix] branch)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Buildroot]]&#039;&#039;&#039; - For experienced users only !&lt;br /&gt;
&amp;lt;section end=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Specific install guides ==&lt;br /&gt;
For installs that don&#039;t directly include and/or boot into Kodi automatically.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi OS ===&lt;br /&gt;
{{editor note|We need to expand on this section, but here are the basic commands if you are familiar with the command-line:}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Current Version - 18.7)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;PVR Addons&lt;br /&gt;
* PVR Addons can be installed directly from the command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install PACKAGENAMEHERE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
but replace &#039;&#039;&#039;PACKAGENAMEHERE&#039;&#039;&#039; with the PVR addon required.&lt;br /&gt;
&amp;lt;pre&amp;gt;example: sudo apt-get install kodi-pvr-hts&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PVR client add-on should now be installed. If Kodi was already running, restart it to load the add-on.&lt;br /&gt;
&lt;br /&gt;
=== RetroPie ===&lt;br /&gt;
Here&#039;s a [https://www.youtube.com/watch?v=MyeCQS7ITnU youtube guide]:&lt;br /&gt;
&lt;br /&gt;
{{#widget:YouTube|id=MyeCQS7ITnU}}&lt;br /&gt;
&lt;br /&gt;
== Compiling Kodi ==&lt;br /&gt;
Notes for advanced users who wish to try and build Kodi from source code.&lt;br /&gt;
* Various good notes mentioned here: https://github.com/xbmc/xbmc/blob/master/docs/README.RaspberryPi.md&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Installation|Raspberry Pi]]&lt;br /&gt;
[[Category:Raspberry Pi]]&lt;br /&gt;
[[Category:How-to]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=MySQL/Advanced_notes&amp;diff=223775</id>
		<title>MySQL/Advanced notes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=MySQL/Advanced_notes&amp;diff=223775"/>
		<updated>2021-02-01T12:00:10Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Removing stale entries from the database */ refine wording a bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:MySQL/Contents}}&lt;br /&gt;
{{mininav| [[MySQL]] }}&lt;br /&gt;
__TOC__&lt;br /&gt;
{{-}}&lt;br /&gt;
==advancedsettings.xml==&lt;br /&gt;
For a full listing of the advancedsettings.xml parameters, see &#039;&#039;&#039;[[advancedsettings.xml#musicdatabase/videodatabase]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Other databases (PVR and ADSP) ==&lt;br /&gt;
&lt;br /&gt;
{{MySQL warning}}&lt;br /&gt;
&lt;br /&gt;
==MySQL speed-up tweaks==&lt;br /&gt;
&lt;br /&gt;
=== In advancedsettings.xml: ===&lt;br /&gt;
Use the IP address and NOT the hostname of your MySQL server&amp;lt;br /&amp;gt;&lt;br /&gt;
eg.: 192.168.1.105 &amp;lt;&amp;lt;IP address&amp;gt;&amp;gt; instead of \\SERVER &lt;br /&gt;
&lt;br /&gt;
==Removing stale entries from the database==&lt;br /&gt;
Occasionally, it can be beneficial to remove database entries that correspond to files that are no longer on available on the file-system.  Note that these orphaned database entries are independent from the Kodi library status which is managed by Kodi [[https://kodi.wiki/view/List_of_built-in_functions#Library_built-in.27s built ins]] such as &#039;&#039;&#039;CleanLibrary()&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{{Warning|The database should ALWAYS be backed-up before attempting these commands.}}&lt;br /&gt;
&lt;br /&gt;
To locate and delete orphaned database entries, connect to the box serving up the SQL database and log into the SQL database:&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Once authenticated, the following can be used to identify active databases on which to work:&lt;br /&gt;
 SHOW databases;&lt;br /&gt;
&lt;br /&gt;
For example, Matrix will generate a video database called, &amp;quot;MyVideos119.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Execute the following to identify possible rows for deleting:&lt;br /&gt;
 USE MyVideos119;&lt;br /&gt;
 SELECT * FROM files WHERE idfile not in (select idfile from episode) and idfile not in (select idfile from movie) and idfile not in (select idfile from musicvideo) ORDER BY `idFile` DESC;&lt;br /&gt;
&lt;br /&gt;
If the command returns rows, these should be stale entries that can be safely removed by substituting DELETE for SELECT * in the last command:&lt;br /&gt;
&lt;br /&gt;
 DELETE FROM files WHERE idfile not in (select idfile from episode) and idfile not in (select idfile from movie) and idfile not in (select idfile from musicvideo) ORDER BY `idFile` DESC;&lt;br /&gt;
&lt;br /&gt;
=== In my.cnf (my.ini for older versions): ===&lt;br /&gt;
The named file is located at /etc/mysql/my{{dot}}cnf&amp;lt;br /&amp;gt;&lt;br /&gt;
1. $sudo nano /etc/mysql/my{{dot}}cnf&amp;lt;br /&amp;gt;&lt;br /&gt;
2. Scroll down to &#039;&#039;&#039;[mysqld]&#039;&#039;&#039; section and add:&amp;lt;br /&amp;gt;&lt;br /&gt;
# skip-name-resolve&amp;lt;br /&amp;gt;&lt;br /&gt;
3. Press Ctrl+X, type y and hit Enter to validate changes and exit nano&amp;lt;br /&amp;gt;&lt;br /&gt;
4. Restart your MySQL server. $sudo restart mysql&lt;br /&gt;
&lt;br /&gt;
[[File:mysql.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
==Automated Backup ==&lt;br /&gt;
=== Windows ===&lt;br /&gt;
This will allow you to make a regular backup of your MySQL database using the schedule of your choosing and saving the backups for however many days you choose. Recommend performing daily backups and saving for a minimum of 7 days. This will give you enough time to discover a problem with the DB and restore to a previous version that did not have problems. &lt;br /&gt;
&lt;br /&gt;
To begin, go ahead and download the [http://www.7-zip.org/download.html command line version of 7zip]. We will use this to compress our MySQL dumps. Create a new folder in your C directory named KODISQLBACKUP. So you should have a C:\KODISQLBACKUP\ location now. In this location, create another new folder and name it zip. So you should now have C:\KODISQLBACKUP\zip. Extract the contents of the 7zip download to this location. Once complete you should have:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\KODISQLBACKUP\zip\7za.exe&lt;br /&gt;
&lt;br /&gt;
C:\KODISQLBACKUP\zip\7-zip.chm&lt;br /&gt;
&lt;br /&gt;
C:\KODISQLBACKUP\zip\license.txt&lt;br /&gt;
&lt;br /&gt;
C:\KODISQLBACKUP\zip\readme.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to create a down and dirty batch file to perform the actual backup, then we&#039;ll execute the batch script with the task scheduler built into Windows. For the purpose of these instructions, it is assumed that you are running MySQL 5.5 installed to the default location. If not, be sure to adjust your path(s) accordingly. It&#039;s also a good idea to save your backups to a network location to protect against local drive failure, so the paths here will reflect this. So here are the batch file contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=winbatch enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
:: All lines that start with 2 colons are comments, they do not affect the script itself. These comments are explanations of each command, as well as instructions for the things that you will need to edit. Pay close attention to all comments.&lt;br /&gt;
&lt;br /&gt;
:: These lines do not NEED to be edited&lt;br /&gt;
set year=%DATE:~10,4%&lt;br /&gt;
set day=%DATE:~7,2%&lt;br /&gt;
set mnt=%DATE:~4,2%&lt;br /&gt;
set hr=%TIME:~0,2%&lt;br /&gt;
set min=%TIME:~3,2%&lt;br /&gt;
&lt;br /&gt;
IF %day% LSS 10 SET day=0%day:~1,1%&lt;br /&gt;
IF %mnt% LSS 10 SET mnt=0%mnt:~1,1%&lt;br /&gt;
IF %hr% LSS 10 SET hr=0%hr:~1,1%&lt;br /&gt;
IF %min% LSS 10 SET min=0%min:~1,1%&lt;br /&gt;
&lt;br /&gt;
set backuptime=%mnt%-%day%-%year%-%hr%-%min%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: User name for DB - NOTE that root credentials are needed for this script.&lt;br /&gt;
set dbuser=root&lt;br /&gt;
&lt;br /&gt;
:: User password - NOTE that the root credentials are needed for this script.&lt;br /&gt;
set dbpass=password&lt;br /&gt;
&lt;br /&gt;
:: Path to location where you would like to save the errors log file. For simplicity, I keep mine in the same location as the backups.&lt;br /&gt;
set errorLogPath=&amp;quot;\\REMOTE\KODI_Database\backups\dumperrors.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:: We need to switch to the data directory to enumerate the folders&lt;br /&gt;
pushd &amp;quot;C:\ProgramData\MySQL\MySQL Server 5.5\data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: We will dump each database to it&#039;s own .sql so you can easily restore ONLY what is needed in the future. We&#039;re also going to skip the performance_schema db as it is not necessary.&lt;br /&gt;
&lt;br /&gt;
FOR /D %%F IN (*) DO (&lt;br /&gt;
&lt;br /&gt;
IF NOT [%%F]==[performance_schema] (&lt;br /&gt;
SET %%F=!%%F:@002d=-!&lt;br /&gt;
&amp;quot;C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe&amp;quot; --user=%dbuser% --password=%dbpass% --databases --routines --log-error=%errorLogPath%  %%F &amp;gt; &amp;quot;\\REMOTE\KODI_Database\backups\%%F.%backuptime%.sql&amp;quot;&lt;br /&gt;
) ELSE (&lt;br /&gt;
echo Skipping DB backup for performance_schema&lt;br /&gt;
)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
::Now to zip all of the .sql files in this folder and move the resulting .zip files to our network location.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;c:\KODISQLBACKUP\zip\7za.exe&amp;quot; a -tzip &amp;quot;\\REMOTE\KODI_Database\backups\FullBackup.%backuptime%.zip&amp;quot; &amp;quot;\\REMOTE\KODI_Database\backups\*.sql&amp;quot;&lt;br /&gt;
&lt;br /&gt;
::Now we&#039;ll delete the unzipped .sql files&lt;br /&gt;
&lt;br /&gt;
del &amp;quot;\\REMOTE\KODI_Database\backups\*.sql&amp;quot;&lt;br /&gt;
&lt;br /&gt;
::Now we&#039;ll delete all zip files older than 30 days. You can adjust the number of days to suit your needs, simply change the -30 to whatever number of days you prefer. Be sure you enter the path to your backup location.&lt;br /&gt;
Forfiles -p \\REMOTE\KODI_Database\backups\ -s -m *.* -d -30 -c &amp;quot;cmd /c del /q @path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this as Kodibackup.bat at C:\KODISQLBACKUP&lt;br /&gt;
Make &#039;&#039;sure&#039;&#039; you include the .bat at the end.&lt;br /&gt;
&lt;br /&gt;
After you have edited the above batch file to reflect your paths and saved it as a batch file, all that is left is scheduling it to run. Daily backups are best, but you can use whatever frequency you are comfortable with. To do this, open up the Windows Task Scheduler.&lt;br /&gt;
&lt;br /&gt;
In the Task Scheduler click on &amp;quot;Create Task...&amp;quot;, NOT &amp;quot;Create Basic Task...&amp;quot;. In the new task window, in the Name box put Kodi MySQL backup (or whatever name you want). &lt;br /&gt;
&lt;br /&gt;
Then click on the Triggers tab, followed by the New button. Select Daily (or whatever you want) and adjust the time you would like it to run. Click OK.&lt;br /&gt;
&lt;br /&gt;
Click on the Actions tab and click New. In the Program/Script box enter C:\KODISQLBACKUP\Kodibackup.bat (or whatever you named your batch file) and in the start in box enter C:\KODISQLBACKUP&lt;br /&gt;
&lt;br /&gt;
Click ok, then click ok in the task window. In the main task scheduler window, right click on the task you just created and select run. If everything works as it should, you should now have a zipped backup of your database(s) in your backup location. It will now do this for you automatically.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
[http://sourceforge.net/projects/automysqlbackup/ AutoMySQLBackup] is a script that is designed to keep daily, weekly and monthly backups of your databases.  It is very customizable and reliable.  There is useful information on installing and configuring the script here: http://www.linux.com/learn/tutorials/659107-how-to-do-painless-mysql-server-backups-with-automysqlbackup.&lt;br /&gt;
{{note|Detailed instructions on configuring AutoMySQLBackup should probably be added to this section as the linked page above could be deleted at any time and there is little beginner friendly information available on the web.}}&lt;br /&gt;
&lt;br /&gt;
==Name tag==&lt;br /&gt;
{{#lst:MySQL/Setting up Kodi|name tag}}&lt;br /&gt;
&lt;br /&gt;
==Multiple profiles with one MySQL database==&lt;br /&gt;
The idea is to share information on files in the library (only scrape once) but have individual watch status for every profile. For information see the forum thread [http://forum.kodi.tv/showthread.php?tid=196821 [MYSQL&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt; HOW-TO: 5 User XBMC] and for a setup for Kodi v16 see [http://forum.kodi.tv/showthread.php?tid=196821&amp;amp;pid=2280431#pid2280431 this post]. An older setup can be found at: http://forum.kodi.tv/showthread.php?tid=81095&amp;amp;pid=840499#pid840499&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=MySQL/Advanced_notes&amp;diff=223774</id>
		<title>MySQL/Advanced notes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=MySQL/Advanced_notes&amp;diff=223774"/>
		<updated>2021-02-01T02:10:29Z</updated>

		<summary type="html">&lt;p&gt;Graysky: add section to clean stale entries, inspiration from forum post: https://forum.kodi.tv/showthread.php?tid=294011&amp;amp;pid=3010780#pid3010780&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:MySQL/Contents}}&lt;br /&gt;
{{mininav| [[MySQL]] }}&lt;br /&gt;
__TOC__&lt;br /&gt;
{{-}}&lt;br /&gt;
==advancedsettings.xml==&lt;br /&gt;
For a full listing of the advancedsettings.xml parameters, see &#039;&#039;&#039;[[advancedsettings.xml#musicdatabase/videodatabase]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Other databases (PVR and ADSP) ==&lt;br /&gt;
&lt;br /&gt;
{{MySQL warning}}&lt;br /&gt;
&lt;br /&gt;
==MySQL speed-up tweaks==&lt;br /&gt;
&lt;br /&gt;
=== In advancedsettings.xml: ===&lt;br /&gt;
Use the IP address and NOT the hostname of your MySQL server&amp;lt;br /&amp;gt;&lt;br /&gt;
eg.: 192.168.1.105 &amp;lt;&amp;lt;IP address&amp;gt;&amp;gt; instead of \\SERVER &lt;br /&gt;
&lt;br /&gt;
==Removing stale entries from the database==&lt;br /&gt;
Occasionally, it can be beneficial to remove database entries corresponding files that are no longer on available on the file-system.  Take note that the database entries for such files are separate from the library status which can be managed by Kodi built in actions.  The database should ALWAYS be backed-up before attempting these commands.&lt;br /&gt;
&lt;br /&gt;
To clear the database entries, connect to the box serving up the SQL database and log into the SQL database:&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
Once authenticated, the following can be used to identify active databases on which to work:&lt;br /&gt;
 SHOW databases;&lt;br /&gt;
&lt;br /&gt;
For example, Matrix will generate a video database called, &amp;quot;MyVideos119.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Execute the following to identify possible rows for deleting:&lt;br /&gt;
 USE MyVideos119;&lt;br /&gt;
 SELECT * FROM files WHERE idfile not in (select idfile from episode) and idfile not in (select idfile from movie) and idfile not in (select idfile from musicvideo) ORDER BY `idFile` DESC;&lt;br /&gt;
&lt;br /&gt;
If the command returns rows, these should be stale entries that can be safely removed by substituting DELETE for SELECT * in the last command:&lt;br /&gt;
&lt;br /&gt;
 DELETE FROM files WHERE idfile not in (select idfile from episode) and idfile not in (select idfile from movie) and idfile not in (select idfile from musicvideo) ORDER BY `idFile` DESC;&lt;br /&gt;
&lt;br /&gt;
=== In my.cnf (my.ini for older versions): ===&lt;br /&gt;
The named file is located at /etc/mysql/my{{dot}}cnf&amp;lt;br /&amp;gt;&lt;br /&gt;
1. $sudo nano /etc/mysql/my{{dot}}cnf&amp;lt;br /&amp;gt;&lt;br /&gt;
2. Scroll down to &#039;&#039;&#039;[mysqld]&#039;&#039;&#039; section and add:&amp;lt;br /&amp;gt;&lt;br /&gt;
# skip-name-resolve&amp;lt;br /&amp;gt;&lt;br /&gt;
3. Press Ctrl+X, type y and hit Enter to validate changes and exit nano&amp;lt;br /&amp;gt;&lt;br /&gt;
4. Restart your MySQL server. $sudo restart mysql&lt;br /&gt;
&lt;br /&gt;
[[File:mysql.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
==Automated Backup ==&lt;br /&gt;
=== Windows ===&lt;br /&gt;
This will allow you to make a regular backup of your MySQL database using the schedule of your choosing and saving the backups for however many days you choose. Recommend performing daily backups and saving for a minimum of 7 days. This will give you enough time to discover a problem with the DB and restore to a previous version that did not have problems. &lt;br /&gt;
&lt;br /&gt;
To begin, go ahead and download the [http://www.7-zip.org/download.html command line version of 7zip]. We will use this to compress our MySQL dumps. Create a new folder in your C directory named KODISQLBACKUP. So you should have a C:\KODISQLBACKUP\ location now. In this location, create another new folder and name it zip. So you should now have C:\KODISQLBACKUP\zip. Extract the contents of the 7zip download to this location. Once complete you should have:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;C:\KODISQLBACKUP\zip\7za.exe&lt;br /&gt;
&lt;br /&gt;
C:\KODISQLBACKUP\zip\7-zip.chm&lt;br /&gt;
&lt;br /&gt;
C:\KODISQLBACKUP\zip\license.txt&lt;br /&gt;
&lt;br /&gt;
C:\KODISQLBACKUP\zip\readme.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to create a down and dirty batch file to perform the actual backup, then we&#039;ll execute the batch script with the task scheduler built into Windows. For the purpose of these instructions, it is assumed that you are running MySQL 5.5 installed to the default location. If not, be sure to adjust your path(s) accordingly. It&#039;s also a good idea to save your backups to a network location to protect against local drive failure, so the paths here will reflect this. So here are the batch file contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=winbatch enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
:: All lines that start with 2 colons are comments, they do not affect the script itself. These comments are explanations of each command, as well as instructions for the things that you will need to edit. Pay close attention to all comments.&lt;br /&gt;
&lt;br /&gt;
:: These lines do not NEED to be edited&lt;br /&gt;
set year=%DATE:~10,4%&lt;br /&gt;
set day=%DATE:~7,2%&lt;br /&gt;
set mnt=%DATE:~4,2%&lt;br /&gt;
set hr=%TIME:~0,2%&lt;br /&gt;
set min=%TIME:~3,2%&lt;br /&gt;
&lt;br /&gt;
IF %day% LSS 10 SET day=0%day:~1,1%&lt;br /&gt;
IF %mnt% LSS 10 SET mnt=0%mnt:~1,1%&lt;br /&gt;
IF %hr% LSS 10 SET hr=0%hr:~1,1%&lt;br /&gt;
IF %min% LSS 10 SET min=0%min:~1,1%&lt;br /&gt;
&lt;br /&gt;
set backuptime=%mnt%-%day%-%year%-%hr%-%min%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: User name for DB - NOTE that root credentials are needed for this script.&lt;br /&gt;
set dbuser=root&lt;br /&gt;
&lt;br /&gt;
:: User password - NOTE that the root credentials are needed for this script.&lt;br /&gt;
set dbpass=password&lt;br /&gt;
&lt;br /&gt;
:: Path to location where you would like to save the errors log file. For simplicity, I keep mine in the same location as the backups.&lt;br /&gt;
set errorLogPath=&amp;quot;\\REMOTE\KODI_Database\backups\dumperrors.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:: We need to switch to the data directory to enumerate the folders&lt;br /&gt;
pushd &amp;quot;C:\ProgramData\MySQL\MySQL Server 5.5\data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: We will dump each database to it&#039;s own .sql so you can easily restore ONLY what is needed in the future. We&#039;re also going to skip the performance_schema db as it is not necessary.&lt;br /&gt;
&lt;br /&gt;
FOR /D %%F IN (*) DO (&lt;br /&gt;
&lt;br /&gt;
IF NOT [%%F]==[performance_schema] (&lt;br /&gt;
SET %%F=!%%F:@002d=-!&lt;br /&gt;
&amp;quot;C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe&amp;quot; --user=%dbuser% --password=%dbpass% --databases --routines --log-error=%errorLogPath%  %%F &amp;gt; &amp;quot;\\REMOTE\KODI_Database\backups\%%F.%backuptime%.sql&amp;quot;&lt;br /&gt;
) ELSE (&lt;br /&gt;
echo Skipping DB backup for performance_schema&lt;br /&gt;
)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
::Now to zip all of the .sql files in this folder and move the resulting .zip files to our network location.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;c:\KODISQLBACKUP\zip\7za.exe&amp;quot; a -tzip &amp;quot;\\REMOTE\KODI_Database\backups\FullBackup.%backuptime%.zip&amp;quot; &amp;quot;\\REMOTE\KODI_Database\backups\*.sql&amp;quot;&lt;br /&gt;
&lt;br /&gt;
::Now we&#039;ll delete the unzipped .sql files&lt;br /&gt;
&lt;br /&gt;
del &amp;quot;\\REMOTE\KODI_Database\backups\*.sql&amp;quot;&lt;br /&gt;
&lt;br /&gt;
::Now we&#039;ll delete all zip files older than 30 days. You can adjust the number of days to suit your needs, simply change the -30 to whatever number of days you prefer. Be sure you enter the path to your backup location.&lt;br /&gt;
Forfiles -p \\REMOTE\KODI_Database\backups\ -s -m *.* -d -30 -c &amp;quot;cmd /c del /q @path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this as Kodibackup.bat at C:\KODISQLBACKUP&lt;br /&gt;
Make &#039;&#039;sure&#039;&#039; you include the .bat at the end.&lt;br /&gt;
&lt;br /&gt;
After you have edited the above batch file to reflect your paths and saved it as a batch file, all that is left is scheduling it to run. Daily backups are best, but you can use whatever frequency you are comfortable with. To do this, open up the Windows Task Scheduler.&lt;br /&gt;
&lt;br /&gt;
In the Task Scheduler click on &amp;quot;Create Task...&amp;quot;, NOT &amp;quot;Create Basic Task...&amp;quot;. In the new task window, in the Name box put Kodi MySQL backup (or whatever name you want). &lt;br /&gt;
&lt;br /&gt;
Then click on the Triggers tab, followed by the New button. Select Daily (or whatever you want) and adjust the time you would like it to run. Click OK.&lt;br /&gt;
&lt;br /&gt;
Click on the Actions tab and click New. In the Program/Script box enter C:\KODISQLBACKUP\Kodibackup.bat (or whatever you named your batch file) and in the start in box enter C:\KODISQLBACKUP&lt;br /&gt;
&lt;br /&gt;
Click ok, then click ok in the task window. In the main task scheduler window, right click on the task you just created and select run. If everything works as it should, you should now have a zipped backup of your database(s) in your backup location. It will now do this for you automatically.&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
[http://sourceforge.net/projects/automysqlbackup/ AutoMySQLBackup] is a script that is designed to keep daily, weekly and monthly backups of your databases.  It is very customizable and reliable.  There is useful information on installing and configuring the script here: http://www.linux.com/learn/tutorials/659107-how-to-do-painless-mysql-server-backups-with-automysqlbackup.&lt;br /&gt;
{{note|Detailed instructions on configuring AutoMySQLBackup should probably be added to this section as the linked page above could be deleted at any time and there is little beginner friendly information available on the web.}}&lt;br /&gt;
&lt;br /&gt;
==Name tag==&lt;br /&gt;
{{#lst:MySQL/Setting up Kodi|name tag}}&lt;br /&gt;
&lt;br /&gt;
==Multiple profiles with one MySQL database==&lt;br /&gt;
The idea is to share information on files in the library (only scrape once) but have individual watch status for every profile. For information see the forum thread [http://forum.kodi.tv/showthread.php?tid=196821 [MYSQL&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt; HOW-TO: 5 User XBMC] and for a setup for Kodi v16 see [http://forum.kodi.tv/showthread.php?tid=196821&amp;amp;pid=2280431#pid2280431 this post]. An older setup can be found at: http://forum.kodi.tv/showthread.php?tid=81095&amp;amp;pid=840499#pid840499&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Action_IDs&amp;diff=223603</id>
		<title>Action IDs</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Action_IDs&amp;diff=223603"/>
		<updated>2021-01-30T14:54:58Z</updated>

		<summary type="html">&lt;p&gt;Graysky: add reboot action, xbmc/interfaces/builtins/SystemBuiltins.cpp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;Action IDs&amp;quot; /&amp;gt;&lt;br /&gt;
;Main actions&lt;br /&gt;
{| class=&amp;quot;prettytable sort sortable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Action&lt;br /&gt;
! Description&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Left&amp;lt;/code&amp;gt; || Move left off a control.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Right&amp;lt;/code&amp;gt; || Move right off a control. &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Up&amp;lt;/code&amp;gt; || Move up off a control.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Down&amp;lt;/code&amp;gt; || Move down off a control.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Select&amp;lt;/code&amp;gt; || Select a button, or an item from a list of thumb view.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_ENTER) Not sure about all areas, but on some windows this will be the same as the &amp;quot;done&amp;quot; on screen button.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PageUp&amp;lt;/code&amp;gt; || Scroll up on page in a list, thumb, or text view.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PageDown&amp;lt;/code&amp;gt; || Scroll down on page in a list, thumb, or text view.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Highlight&amp;lt;/code&amp;gt; || Highlight an item in a list or thumb view.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ParentDir&amp;lt;/code&amp;gt; || Go up a folder to the parent folder.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PreviousMenu&amp;lt;/code&amp;gt; || Go back to the previous menu screen.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Back&amp;lt;/code&amp;gt; || Go back in navigation.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Info&amp;lt;/code&amp;gt; || Show the information about the currently highlighted item, or currently playing item.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Pause&amp;lt;/code&amp;gt; || Pause the currently playing item.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Stop&amp;lt;/code&amp;gt; || Stop the currently playing item.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SkipNext&amp;lt;/code&amp;gt; || Skip to next video in playlist. If no playlist, then skip to next chapter in video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SkipPrevious&amp;lt;/code&amp;gt; || Skip to previous video in playlist. If no playlist, then skip to previous chapter in video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;FullScreen&amp;lt;/code&amp;gt; || Toggles full-screen content playback (either visualisation or video playback)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;togglefullscreen&amp;lt;/code&amp;gt; || Changes whether the app is displayed full-screen or windowed (on windowing OSs)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AspectRatio&amp;lt;/code&amp;gt; || Toggle through the various aspect ratio modes (Normal is the preferred option).&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;StepForward&amp;lt;/code&amp;gt; || Step forward 30 seconds in a video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;StepBack&amp;lt;/code&amp;gt; || Step back 30 seconds in a video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;BigStepForward&amp;lt;/code&amp;gt; || Step forward 10 minutes in video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;BigStepBack&amp;lt;/code&amp;gt; || Step back 10 minutes in video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SmallStepBack&amp;lt;/code&amp;gt; || Step back 7 seconds in the current video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Seek(&#039;&#039;##&#039;&#039;)&amp;lt;/code&amp;gt; || A definable seek action, where &amp;lt;code&amp;gt;&#039;&#039;##&#039;&#039;&amp;lt;/code&amp;gt; is a number of seconds. For example, to make a seek action that goes forward 25 seconds use &amp;lt;code&amp;gt;Seek(25)&amp;lt;/code&amp;gt;, and to make a seek action that goes back 36 seconds use &amp;lt;code&amp;gt;Seek(-36)&amp;lt;/code&amp;gt;. &#039;&#039;&#039;(v15 Isengard addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ChapterOrBigStepForward&amp;lt;/code&amp;gt; || Go to to next chapter in video. If no chapters, then step forward 10 minutes in video. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ChapterOrBigStepBack&amp;lt;/code&amp;gt; || Go to previous chapter in video, If no chapters, then step back 10 minutes in video. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextScene&amp;lt;/code&amp;gt; || Go to next scene that is marked in an [[Edit_decision_list]] file.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PreviousScene&amp;lt;/code&amp;gt; || Go to previous scene that is marked in an [[Edit_decision_list]] file.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;OSD&amp;lt;/code&amp;gt; || Toggles the OSD (On Screen Display) while playing an item.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PlayDVD&amp;lt;/code&amp;gt; || Start playing a DVD (goes to the DVD menu)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ShowVideoMenu&amp;lt;/code&amp;gt; || Go to the DVD Video menu when playing a DVD.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ShowSubtitles&amp;lt;/code&amp;gt; || Toggles whether subtitles are shown or not.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextSubtitle&amp;lt;/code&amp;gt; || Change to the next subtitle language, if there is more than one.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SubtitleShiftUp&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_SUBTITLE_VSHIFT_UP)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SubtitleShiftDown&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_SUBTITLE_VSHIFT_DOWN)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SubtitleAlign&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_SUBTITLE_ALIGN)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;CodecInfo&amp;lt;/code&amp;gt; || Show codec information about the currently playing item (during video or visualisation playback)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextPicture&amp;lt;/code&amp;gt; || Move to the next picture in a slideshow.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PreviousPicture&amp;lt;/code&amp;gt; || Move to the previous picture in a slideshow.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomOut&amp;lt;/code&amp;gt; || Used in picture, slideshow or video fullscreen to zoom out of the current image/video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomIn&amp;lt;/code&amp;gt; || Used in picture, slideshow or video fullscreen to zoom in to the current image/video.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;IncreasePAR&amp;lt;/code&amp;gt; || Used in video fullscreen to increase the pixel aspect ratio (stretch).&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;DecreasePAR&amp;lt;/code&amp;gt; || Used in video fullscreen to decrease the pixel aspect ratio (stretch).&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Queue&amp;lt;/code&amp;gt; || Queue the item to the current playlist&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PlayNext&amp;lt;/code&amp;gt; || Queue the item to the next position in the current playlist&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Filter&amp;lt;/code&amp;gt; || Opens the mediafilter dialog in the video and musiclibrary. Used in the [[Advanced_library_filtering|advanced filter]] for the video library.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Playlist&amp;lt;/code&amp;gt; || Toggle to playlist view from My Music or My Videos&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomNormal&amp;lt;/code&amp;gt; || Normal (fullscreen) viewing in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel1&amp;lt;/code&amp;gt; || Zoom to 120% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel2&amp;lt;/code&amp;gt; || Zoom to 150% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel3&amp;lt;/code&amp;gt; || Zoom to 200% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel4&amp;lt;/code&amp;gt; || Zoom to 280% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel5&amp;lt;/code&amp;gt; || Zoom to 400% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel6&amp;lt;/code&amp;gt; || Zoom to 600% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel7&amp;lt;/code&amp;gt; || Zoom to 900% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel8&amp;lt;/code&amp;gt; || Zoom to 1350% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ZoomLevel9&amp;lt;/code&amp;gt; || Zoom to 2000% in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextCalibration&amp;lt;/code&amp;gt; || Used in Video + GUI calibration&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ResetCalibration&amp;lt;/code&amp;gt; || Used in Video + GUI calibration&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AnalogMove&amp;lt;/code&amp;gt; || Move in the calibration screens, and while zoomed in My Pictures.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Rotate&amp;lt;/code&amp;gt; || Rotate a picture in My Pictures&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;rotateccw&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_ROTATE_PICTURE_CCW)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Close&amp;lt;/code&amp;gt; || Used to close a dialog&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;subtitledelay&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_SUBTITLE_DELAY)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SubtitleDelayMinus&amp;lt;/code&amp;gt; || Decrease the delay amount of subtitles (use if subtitles are displaying too late)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SubtitleDelayPlus&amp;lt;/code&amp;gt; || Increase the delay amount of subtitles (use if subtitles are displaying too early)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;audiodelay&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_AUDIO_DELAY)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AudioDelayMinus&amp;lt;/code&amp;gt; || Decrease the delay amount of audio (use if audio is being heard too early) &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AudioDelayPlus&amp;lt;/code&amp;gt; || Increase the delay amount of audio (use if audio is being heard too late) &lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AudioNextLanguage&amp;lt;/code&amp;gt; || Change to the next audio track in a video with multiple audio tracks.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextResolution&amp;lt;/code&amp;gt; || Used in Video calibration&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Number&#039;&#039;&amp;lt;0-9&amp;gt;&#039;&#039;&amp;lt;/code&amp;gt; || Used to input the number 0 through 9&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;FastForward&amp;lt;/code&amp;gt; || Toggle the fastforward speed between normal play, 2x, 4x, 8x, 16x, and 32x.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Rewind&amp;lt;/code&amp;gt; || Toggle the rewind speed between normal play, 2x, 4x, 8x, 16x, and 32x.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Play&amp;lt;/code&amp;gt; || Play the selected item (or folder of items).&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PlayPause&amp;lt;/code&amp;gt; || Play the selected item (or folder of items). Will also pause media when something is already playing.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Delete&amp;lt;/code&amp;gt; || Used in My Files to delete a file.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Copy&amp;lt;/code&amp;gt; || Used in My Files to copy a file.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Move&amp;lt;/code&amp;gt; || Used in My Files to move a file.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Rename&amp;lt;/code&amp;gt; || Used in My Files to rename a file.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;HideSubmenu&amp;lt;/code&amp;gt; || &amp;lt;depreciated&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Screenshot&amp;lt;/code&amp;gt; || Take a screenshot of the current screen.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Reboot&amp;lt;/code&amp;gt; || Reboot&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ShutDown()&amp;lt;/code&amp;gt; || Shutdown and power off&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;VolumeUp&amp;lt;/code&amp;gt; || Increase the volume of playback.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;VolumeDown&amp;lt;/code&amp;gt; || Decrease the volume of playback.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Mute&amp;lt;/code&amp;gt; || Mute the volume.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;volampup&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_VOLAMP_UP)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;volampdown&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_VOLAMP_DOWN)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;audiotoggledigital&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_TOGGLE_DIGITAL_ANALOG)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;BackSpace&amp;lt;/code&amp;gt; || Used in the virtual keyboards to delete one letter.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ScrollUp&amp;lt;/code&amp;gt; || Variable speed scroll up for analog keys (stick or triggers)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ScrollDown&amp;lt;/code&amp;gt; || Variable speed scroll down for analog keys (stick or triggers)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AnalogFastForward&amp;lt;/code&amp;gt; || Variable speed fast forward for analog keys (stick or triggers)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AnalogRewind&amp;lt;/code&amp;gt; || Variable speed rewind for analog keys (stick or triggers)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AnalogSeekForward&amp;lt;/code&amp;gt; || Variable speed seeking for analog keys (stick or triggers)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;AnalogSeekBack&amp;lt;/code&amp;gt; || Variable speed seeking for analog keys (stick or triggers)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;MoveItemUp&amp;lt;/code&amp;gt; || Used to rearrange playlists&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;MoveItemDown&amp;lt;/code&amp;gt; || Used to rearrange playlists&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Menu&amp;lt;/code&amp;gt; || Focus the menu control (e.g. sidebar in confluence) which is specified by the skin in different windows (e.g. Movies, Music, PVR etc.) &#039;&#039;&#039;(v16 Jarvis addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ContextMenu&amp;lt;/code&amp;gt; || Pops up a contextual menu&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Shift&amp;lt;/code&amp;gt; || Used in Virtual Keyboard to switch to upper or lower case letters&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Symbols&amp;lt;/code&amp;gt; || Used in Virtual Keyboard to switch to or from symbols mode&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;CursorLeft&amp;lt;/code&amp;gt; || Used in Virtual Keyboard to move the current cursor point to the left&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;CursorRight&amp;lt;/code&amp;gt; || Used in Virtual Keyboard to move the current cursor point to the right&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ShowTime&amp;lt;/code&amp;gt; || Used to show the current play time in music + video playback&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;visualisationpresetlist&amp;lt;/code&amp;gt; || Shows the visualisation preset list&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ShowPreset&amp;lt;/code&amp;gt; || Shows the current visualisation preset (milkdrop/spectrum)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextPreset&amp;lt;/code&amp;gt; || Next visualisation preset&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PreviousPreset&amp;lt;/code&amp;gt; || Previous visualisation preset&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;LockPreset&amp;lt;/code&amp;gt; || Lock the current visualisation preset&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;RandomPreset&amp;lt;/code&amp;gt; || Switch to a new random preset&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;IncreaseRating&amp;lt;/code&amp;gt; || Used to increase track rating in full screen playback (press info on track and use pageplus on keyboard/remote&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;DecreaseRating&amp;lt;/code&amp;gt; || Used to decrease track rating in full screen playback (press info on track and use pageminus on keyboard/remote&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ToggleWatched&amp;lt;/code&amp;gt; || Toggles watched/unwatched status for Videos&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextLetter&amp;lt;/code&amp;gt; || Move to the next letter in a list or thumb panel. Note that SHIFT-B on the keyboard will take you to the B&#039;s.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PrevLetter&amp;lt;/code&amp;gt; || Move to the previous letter in a list or thumb panel. Note that SHIFT-Z on the keyboard will take you to the Z&#039;s.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;JumpSMS&#039;&#039;&amp;lt;2-9&amp;gt;&#039;&#039;&amp;lt;/code&amp;gt; || Jump through a list using SMS-style input (eg press 2 twice to jump to the B&#039;s.)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;FilterSMS&#039;&#039;&amp;lt;2-9&amp;gt;&#039;&#039;&amp;lt;/code&amp;gt; || Filter a list in music or videos using SMS-style input.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;verticalshiftup&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_VSHIFT_UP)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;verticalshiftdown&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_VSHIFT_DOWN)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;scanitem&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_SCAN_ITEM)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;reloadkeymaps&amp;lt;/code&amp;gt; || Reload keymap, loading any changes made to the keymap since started up.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;increasevisrating&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_VIS_RATE_PRESET_PLUS)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;decreasevisrating&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_VIS_RATE_PRESET_MINUS)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;firstpage&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_FIRST_PAGE)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;lastpage&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_LAST_PAGE)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;guiprofile&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_GUIPROFILE_BEGIN)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;red&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_TELETEXT_RED)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;green&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_TELETEXT_GREEN)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;yellow&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_TELETEXT_YELLOW)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;blue&amp;lt;/code&amp;gt; || &#039;&#039;&#039;?&#039;&#039;&#039; (ACTION_TELETEXT_BLUE)&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;CreateBookmark&amp;lt;/code&amp;gt; || Creates a bookmark of the currently playing Video &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;CreatEpisodeBookmark&amp;lt;/code&amp;gt; || Creates an episode bookmark of the currently playing multi-episode file (e.g. S01E01E02). An episode bookmark specifies the end of the one and the begin of the other episode &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;NextChannelGroup&amp;lt;/code&amp;gt; || [[PVR]] Goes to the next channel group when using live TV. Works only within PVR windows + channel osd. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PreviousChannelGroup&amp;lt;/code&amp;gt; || [[PVR]] Goes to the previous channel group when using live TV. Works only within PVR windows + channel osd. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ChannelUp&amp;lt;/code&amp;gt; || [[PVR]] Used to switch up to the next channel. Works only if you playback TV or radio &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ChannelDown&amp;lt;/code&amp;gt; || [[PVR]] Used to switch down to the previous channel. Works only if you playback TV or radio&#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PlayPvr&amp;lt;/code&amp;gt; || [[PVR]] Starts playback a TV or radio channel depends on the last played channel. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PlayPvrTV&amp;lt;/code&amp;gt; || [[PVR]] Starts playback a TV channel. Will playback the last played channel if available. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;PlayPvrRadio&amp;lt;/code&amp;gt; || [[PVR]] Starts playback a radio channel. Will playback the last played channel if available. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;Record&amp;lt;/code&amp;gt; || [[PVR]] record current playing channel or selected item in windows like EPG &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;StereoMode&amp;lt;/code&amp;gt; || Toggle 3D/Stereoscopic mode &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;ToggleStereoMode&amp;lt;/code&amp;gt; || Toggle 3D/Stereoscopic mode &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SwitchPlayer&amp;lt;/code&amp;gt; || Select player to use, such as internal (DVDPlayer/PAPlayer), UPnP &amp;quot;play using&amp;quot; targets, external players. &#039;&#039;&#039;(v13 Gotham addition)&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;UpdateLibrary(video)&amp;lt;/code&amp;gt; || Update Movie/TV-Show library (only tested with v13 Gotham addition).&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;SetRating&amp;lt;/code&amp;gt; || For use when playing music. Will pop-up a 1-10 userrating select dialog, to rate the currently playing song. &#039;&#039;&#039;(v17 Krypton addition)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;Other&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Action&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noop&amp;lt;/code&amp;gt; || No action. Used to specifically disable a key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;Action IDs&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Removed action IDs ==&lt;br /&gt;
* &amp;lt;code&amp;gt;PresetList&amp;lt;/code&amp;gt; - replaced with &amp;lt;code&amp;gt;visualisationpresetlist&amp;lt;/code&amp;gt; in a previous version (unknown?)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Keymaps]]&lt;br /&gt;
* [[Window IDs]]&lt;br /&gt;
* [[Built-in scripting]]&lt;br /&gt;
&lt;br /&gt;
{{Isengard updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Remotes]]&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=223374</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=223374"/>
		<updated>2020-12-21T15:53:50Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Database Versions */ update month&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:DatabasesNavBox}}&lt;br /&gt;
{{mininav| [[Development]] {{l2| [[Userdata]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data (&#039;&#039;&#039;&#039;&#039;[[Music_library|Music]], [[Video_library|Video]]&#039;&#039;&#039;&#039;&#039;, and Program databases). By default, the database files (*.db) are stored in the &#039;&#039;&#039;&#039;&#039;[[Userdata]]&#039;&#039;&#039;&#039;&#039; folder, specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
Performing certain actions on video files will also add content to the database even if it has not been scanned or scraped. For example if you change any OSD setting while watching it, this will be saved in the database as a preference. Resume points are also stored in this database for unscraped videos.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Databases =&lt;br /&gt;
Databases are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music_library|Music]] and [[Video_library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
The following sections detail the database structure, tables, fields and their properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SQL Queries ==&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing the Databases with Kodi Python ==&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON-RPC API]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music tagging | Import-export library | NFO files}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Database Versions =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;database versions&amp;quot; /&amp;gt;The following tables shows what database version is used for various Kodi versions. This can be useful to see what versions of Kodi can use [[MySQL]] sharing. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Kodi version !! Date !! MyVideos !! MyMusic !! Textures !! Addons !! ViewModes !! TV !! EPG !! ADSP&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v10 - Dharma&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2010 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v11 - Eden&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | March 2012&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 18&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v12 - Frodo&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2013 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v13 - Gotham&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | May 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 78&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 46&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v14 - Helix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 90&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 48&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 26&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 8&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v15 - Isengard&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2015 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 93&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 52&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 19&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 10&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v16 - Jarvis&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2016 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 99&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 56&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 20&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v17 - Krypton&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2017&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 107&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px; background:#a0e75a;&amp;quot; | v18 - Leia&lt;br /&gt;
 | style=&amp;quot;width:120px; background:#a0e75a;&amp;quot; | January 2019&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 116&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 12&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px; background: skyBlue;&amp;quot; | v19 - Matrix&lt;br /&gt;
 | style=&amp;quot;width:120px; background: skyBlue;&amp;quot; | December 2020&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 119&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 82&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 33&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Legend&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#a0e75a;&amp;quot;| Green&lt;br /&gt;
| Current release&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:skyBlue;&amp;quot;| Blue&lt;br /&gt;
| Future release&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;database versions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.rieter.net/content/xot/xbmc-database-versions/ - another site keeping track of Kodi DB changes&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/video/VideoDatabase.cpp - Tracking the Video Database schema version&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/music/MusicDatabase.cpp - Tracking the Music Database schema version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Releases]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:PVR]]&lt;br /&gt;
[[Category:Add-ons]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=223373</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=223373"/>
		<updated>2020-12-21T15:53:21Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Database Versions */ update for latest git&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:DatabasesNavBox}}&lt;br /&gt;
{{mininav| [[Development]] {{l2| [[Userdata]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data (&#039;&#039;&#039;&#039;&#039;[[Music_library|Music]], [[Video_library|Video]]&#039;&#039;&#039;&#039;&#039;, and Program databases). By default, the database files (*.db) are stored in the &#039;&#039;&#039;&#039;&#039;[[Userdata]]&#039;&#039;&#039;&#039;&#039; folder, specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
Performing certain actions on video files will also add content to the database even if it has not been scanned or scraped. For example if you change any OSD setting while watching it, this will be saved in the database as a preference. Resume points are also stored in this database for unscraped videos.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Databases =&lt;br /&gt;
Databases are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music_library|Music]] and [[Video_library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
The following sections detail the database structure, tables, fields and their properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SQL Queries ==&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing the Databases with Kodi Python ==&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON-RPC API]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music tagging | Import-export library | NFO files}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Database Versions =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;database versions&amp;quot; /&amp;gt;The following tables shows what database version is used for various Kodi versions. This can be useful to see what versions of Kodi can use [[MySQL]] sharing. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Kodi version !! Date !! MyVideos !! MyMusic !! Textures !! Addons !! ViewModes !! TV !! EPG !! ADSP&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v10 - Dharma&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2010 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v11 - Eden&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | March 2012&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 18&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v12 - Frodo&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2013 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v13 - Gotham&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | May 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 78&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 46&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v14 - Helix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 90&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 48&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 26&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 8&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v15 - Isengard&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2015 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 93&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 52&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 19&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 10&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v16 - Jarvis&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2016 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 99&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 56&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 20&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v17 - Krypton&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2017&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 107&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px; background:#a0e75a;&amp;quot; | v18 - Leia&lt;br /&gt;
 | style=&amp;quot;width:120px; background:#a0e75a;&amp;quot; | January 2019&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 116&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 12&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px; background: skyBlue;&amp;quot; | v19 - Matrix&lt;br /&gt;
 | style=&amp;quot;width:120px; background: skyBlue;&amp;quot; | June 2020&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 119&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 82&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 33&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Legend&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#a0e75a;&amp;quot;| Green&lt;br /&gt;
| Current release&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:skyBlue;&amp;quot;| Blue&lt;br /&gt;
| Future release&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;database versions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.rieter.net/content/xot/xbmc-database-versions/ - another site keeping track of Kodi DB changes&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/video/VideoDatabase.cpp - Tracking the Video Database schema version&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/music/MusicDatabase.cpp - Tracking the Music Database schema version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Releases]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:PVR]]&lt;br /&gt;
[[Category:Add-ons]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Codename_history&amp;diff=223372</id>
		<title>Codename history</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Codename_history&amp;diff=223372"/>
		<updated>2020-12-21T15:51:13Z</updated>

		<summary type="html">&lt;p&gt;Graysky: grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[New features]] }}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Codename !! First released as version !! To what the name refers?&lt;br /&gt;
|-&lt;br /&gt;
| Atlantis || XBMC 8.10 || The science fiction television series &#039;Stargate Atlantis&#039;. &amp;lt;ref&amp;gt;http://xbmc.org/xbmc-future-versioning-and-codenames&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Babylon || XBMC 9.04 || The space station in the cult classic science fiction television series &#039;Babylon 5&#039;. This codename also references the mythical city of Babylon. &amp;lt;ref&amp;gt;http://forum.kodi.tv/showthread.php?tid=51636&amp;amp;pid=331014#pid331014&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Camelot || XBMC 9.11 || The mythical &#039;Camelot&#039; from the King Arthur tales.&lt;br /&gt;
|-&lt;br /&gt;
| Dharma || XBMC 10.0 || The &#039;Dharma Initiative&#039; in the television series &#039;Lost&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Eden || XBMC 11.0 || The mythical &#039;Garden of Eden&#039; from the Bible&lt;br /&gt;
|-&lt;br /&gt;
| Frodo || XBMC 12.0 || Erwin Beckers, one of the three founders. &amp;lt;ref&amp;gt;http://www.team-mediaportal.com/about-the-team/about-frodo&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gotham || XBMC 13.0 || The main city from the &#039;Batman&#039; franchise.&lt;br /&gt;
|-&lt;br /&gt;
| Helix || Kodi 14.0 || The science fiction television series &#039;Helix&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Isengard || Kodi 15.0 || The &#039;Iron fortress&#039; from Tolkien&#039;s many stories about Middle-Earth.&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis || Kodi 16.0 || The A.I. that Tony Stark (Ironman) owns, Just A Rather Very Intelligent System, or J.A.R.V.I.S &lt;br /&gt;
|-&lt;br /&gt;
| Krypton || Kodi 17.0 || The planet where Superman was born.&lt;br /&gt;
|-&lt;br /&gt;
| Leia || Kodi 18.0 || Princess Leia Organa of Alderaan, later known as General Leia Organa (Star Wars). &amp;lt;ref&amp;gt;https://kodi.tv/kodi-18-leia/&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Matrix || Kodi 19.0 || The 1999 science fiction film written and directed by the Wachowskis &amp;lt;ref&amp;gt;https://forum.kodi.tv/showthread.php?tid=330506&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;https://kodi.tv/article/kodi-19-gets-codename&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=208835</id>
		<title>HOW-TO:Install Kodi on Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=208835"/>
		<updated>2020-05-14T10:26:56Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Basic options */ link model specific kodi packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Raspberry Pi]]|page={{FULLPAGENAME}} }}&lt;br /&gt;
The basic hardware you will need is &lt;br /&gt;
* the R-Pi board itself&lt;br /&gt;
* a power supply (Micro-USB, 5V, upto 2500 mA)&lt;br /&gt;
* a (micro)SDHC memory card to install the software. (Because video decoding is more resource-intensive than many other operations, it may be more important to have a fast/high quality memory card for Kodi than for other uses.)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See also: [[Raspberry Pi FAQ]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Basic options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
;Easy / Kodi centric distributions&lt;br /&gt;
* &#039;&#039;&#039;[[LibreELEC]] -&#039;&#039;&#039; [https://libreelec.tv/downloads_new/ Download] • [https://wiki.libreelec.tv Wiki] • [http://forum.libreelec.tv Forum]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[OSMC]] -&#039;&#039;&#039; [https://osmc.tv/ Home] [https://osmc.tv/download/ Installing] • [https://osmc.tv/wiki Wiki] • [https://discourse.osmc.tv Support Forum] &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[XBian]] -&#039;&#039;&#039; [http://xbian.org/getxbian/ Installing] • [http://xbian.org/faq/ FAQ] • [http://xbian.org/getting-started/ Starters guide] • [http://forum.xbian.org/ Forum]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Advanced / can be used with Kodi&lt;br /&gt;
* &#039;&#039;&#039;Raspbian -&#039;&#039;&#039; Up-to-date versions &#039;&#039;&#039;(Currently Krypton 17.3)&#039;&#039;&#039; of Kodi are now on the default Raspbian repositories. See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#Raspbian|full guide here]]&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CarPC -&#039;&#039;&#039; [http://www.engineering-diy.blogspot.ro/2015/01/raspberrypi-carpc-tutorial.html Guide]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RetroPie - &#039;&#039;&#039; See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#RetroPie|full guide here]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Recalbox -&#039;&#039;&#039; [http://www.recalbox.com/diyrecalbox Installing]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Batocera Linux -&#039;&#039;&#039; [https://batocera-linux.xorhub.com/#learn Learn More]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Arch Linux ARM -&#039;&#039;&#039; [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4 RPi4] • [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3 RPi3] • [http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 RPi2] • [http://archlinuxarm.org/platforms/armv6/raspberry-pi RPi1]&lt;br /&gt;
&lt;br /&gt;
* Note that Arch ARM provides different Kodi packages optimized for different RPi models.  Be sure to pull down the correct package for your specific model!&lt;br /&gt;
* [https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rbp4 kodi-rbp4] (popcornmix&#039;s [https://github.com/popcornmix/xbmc/tree/gbm gbm] branch)&lt;br /&gt;
* [https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rbp3 kodi-rbp3] (popcornmix&#039;s [https://github.com/popcornmix/xbmc/tree/newclock5 newclock5] branch)&lt;br /&gt;
* [https://github.com/archlinuxarm/PKGBUILDs/tree/master/alarm/kodi-rbp kodi-rbp] (popcornmix&#039;s [https://github.com/popcornmix/xbmc/tree/newclock5 newclock5] branch)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Buildroot]]&#039;&#039;&#039; - For experienced users only !&lt;br /&gt;
&amp;lt;section end=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Specific install guides ==&lt;br /&gt;
For installs that don&#039;t directly include and/or boot into Kodi automatically.&lt;br /&gt;
&lt;br /&gt;
=== Raspbian ===&lt;br /&gt;
{{editor note|We need to expand on this section, but here are the basic commands if you are familiar with the command-line:}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Current Version - 17.3)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Alternative source&lt;br /&gt;
* Pplware has a build of 17.1 for Raspbian, see [https://www.raspberrypi.org/forums/viewtopic.php?p=832735#p832735 here] for a guide and detailed instructions on how to set up Kodi for Raspbian&lt;br /&gt;
&lt;br /&gt;
;PVR Addons&lt;br /&gt;
* PVR Addons can be installed directly from the command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install PACKAGENAMEHERE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
but replace &#039;&#039;&#039;PACKAGENAMEHERE&#039;&#039;&#039; with the PVR addon required.&lt;br /&gt;
&amp;lt;pre&amp;gt;example: sudo apt-get install kodi-pvr-hts&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PVR client add-on should now be installed. If Kodi was already running, restart it to load the add-on.&lt;br /&gt;
&lt;br /&gt;
=== RetroPie ===&lt;br /&gt;
Here&#039;s a [https://www.youtube.com/watch?v=MyeCQS7ITnU youtube guide]:&lt;br /&gt;
&lt;br /&gt;
{{#widget:YouTube|id=MyeCQS7ITnU}}&lt;br /&gt;
&lt;br /&gt;
== Compiling Kodi ==&lt;br /&gt;
Notes for advanced users who wish to try and build Kodi from source code.&lt;br /&gt;
* Various good notes mentioned here: https://github.com/xbmc/xbmc/blob/master/docs/README.RaspberryPi.md&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Installation|Raspberry Pi]]&lt;br /&gt;
[[Category:Raspberry Pi]]&lt;br /&gt;
[[Category:How-to]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=208834</id>
		<title>HOW-TO:Install Kodi on Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_on_Raspberry_Pi&amp;diff=208834"/>
		<updated>2020-05-14T10:12:50Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Basic options */ update Arch ARM for 4 major Pi models&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Raspberry Pi]]|page={{FULLPAGENAME}} }}&lt;br /&gt;
The basic hardware you will need is &lt;br /&gt;
* the R-Pi board itself&lt;br /&gt;
* a power supply (Micro-USB, 5V, upto 2500 mA)&lt;br /&gt;
* a (micro)SDHC memory card to install the software. (Because video decoding is more resource-intensive than many other operations, it may be more important to have a fast/high quality memory card for Kodi than for other uses.)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See also: [[Raspberry Pi FAQ]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Basic options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
;Easy / Kodi centric distributions&lt;br /&gt;
* &#039;&#039;&#039;[[LibreELEC]] -&#039;&#039;&#039; [https://libreelec.tv/downloads_new/ Download] • [https://wiki.libreelec.tv Wiki] • [http://forum.libreelec.tv Forum]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[OSMC]] -&#039;&#039;&#039; [https://osmc.tv/ Home] [https://osmc.tv/download/ Installing] • [https://osmc.tv/wiki Wiki] • [https://discourse.osmc.tv Support Forum] &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[XBian]] -&#039;&#039;&#039; [http://xbian.org/getxbian/ Installing] • [http://xbian.org/faq/ FAQ] • [http://xbian.org/getting-started/ Starters guide] • [http://forum.xbian.org/ Forum]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Advanced / can be used with Kodi&lt;br /&gt;
* &#039;&#039;&#039;Raspbian -&#039;&#039;&#039; Up-to-date versions &#039;&#039;&#039;(Currently Krypton 17.3)&#039;&#039;&#039; of Kodi are now on the default Raspbian repositories. See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#Raspbian|full guide here]]&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CarPC -&#039;&#039;&#039; [http://www.engineering-diy.blogspot.ro/2015/01/raspberrypi-carpc-tutorial.html Guide]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RetroPie - &#039;&#039;&#039; See &#039;&#039;&#039;[[HOW-TO:Install Kodi on Raspberry Pi#RetroPie|full guide here]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Recalbox -&#039;&#039;&#039; [http://www.recalbox.com/diyrecalbox Installing]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Batocera Linux -&#039;&#039;&#039; [https://batocera-linux.xorhub.com/#learn Learn More]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Arch Linux ARM -&#039;&#039;&#039; [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4 RPi4] • [https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3 RPi3] • [http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 RPi2] • [http://archlinuxarm.org/platforms/armv6/raspberry-pi RPi1]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Buildroot]]&#039;&#039;&#039; - For experienced users only !&lt;br /&gt;
&amp;lt;section end=&amp;quot;install&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Specific install guides ==&lt;br /&gt;
For installs that don&#039;t directly include and/or boot into Kodi automatically.&lt;br /&gt;
&lt;br /&gt;
=== Raspbian ===&lt;br /&gt;
{{editor note|We need to expand on this section, but here are the basic commands if you are familiar with the command-line:}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Current Version - 17.3)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Alternative source&lt;br /&gt;
* Pplware has a build of 17.1 for Raspbian, see [https://www.raspberrypi.org/forums/viewtopic.php?p=832735#p832735 here] for a guide and detailed instructions on how to set up Kodi for Raspbian&lt;br /&gt;
&lt;br /&gt;
;PVR Addons&lt;br /&gt;
* PVR Addons can be installed directly from the command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install PACKAGENAMEHERE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
but replace &#039;&#039;&#039;PACKAGENAMEHERE&#039;&#039;&#039; with the PVR addon required.&lt;br /&gt;
&amp;lt;pre&amp;gt;example: sudo apt-get install kodi-pvr-hts&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PVR client add-on should now be installed. If Kodi was already running, restart it to load the add-on.&lt;br /&gt;
&lt;br /&gt;
=== RetroPie ===&lt;br /&gt;
Here&#039;s a [https://www.youtube.com/watch?v=MyeCQS7ITnU youtube guide]:&lt;br /&gt;
&lt;br /&gt;
{{#widget:YouTube|id=MyeCQS7ITnU}}&lt;br /&gt;
&lt;br /&gt;
== Compiling Kodi ==&lt;br /&gt;
Notes for advanced users who wish to try and build Kodi from source code.&lt;br /&gt;
* Various good notes mentioned here: https://github.com/xbmc/xbmc/blob/master/docs/README.RaspberryPi.md&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Installation|Raspberry Pi]]&lt;br /&gt;
[[Category:Raspberry Pi]]&lt;br /&gt;
[[Category:How-to]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=204023</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=204023"/>
		<updated>2020-04-20T12:09:07Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Database Versions */ update database versions for latest git&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:DatabasesNavBox}}&lt;br /&gt;
{{mininav| [[Development]] {{l2| [[Userdata]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data (&#039;&#039;&#039;&#039;&#039;[[Music_library|Music]], [[Video_library|Video]]&#039;&#039;&#039;&#039;&#039;, and Program databases). By default, the database files (*.db) are stored in the &#039;&#039;&#039;&#039;&#039;[[Userdata]]&#039;&#039;&#039;&#039;&#039; folder, specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
Performing certain actions on video files will also add content to the database even if it has not been scanned or scraped. For example if you change any OSD setting while watching it, this will be saved in the database as a preference. Resume points are also stored in this database for unscraped videos.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Databases =&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
The following sections detail the database structure, tables, fields and their properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SQL Queries ==&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing the Databases with Kodi Python ==&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music tagging | Import-export library | NFO files}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Database Versions =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;database versions&amp;quot; /&amp;gt;The following tables shows what database version is used for various Kodi versions. This can be useful to see what versions of Kodi can use [[MySQL]] sharing. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Kodi version !! Date !! MyVideos !! MyMusic !! Textures !! Addons !! ViewModes !! TV !! EPG !! ADSP&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v10 - Dharma&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2010 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v11 - Eden&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | March 2012&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 18&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v12 - Frodo&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2013 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v13 - Gotham&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | May 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 78&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 46&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v14 - Helix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 90&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 48&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 26&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 8&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v15 - Isengard&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2015 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 93&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 52&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 19&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 10&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v16 - Jarvis&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2016 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 99&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 56&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 20&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v17 - Krypton&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2017&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 107&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px; background:#a0e75a;&amp;quot; | v18 - Leia&lt;br /&gt;
 | style=&amp;quot;width:120px; background:#a0e75a;&amp;quot; | January 2019&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 116&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background:#a0e75a;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 12&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background:#a0e75a;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px; background: skyBlue;&amp;quot; | v19 - Matrix&lt;br /&gt;
 | style=&amp;quot;width:120px; background: skyBlue;&amp;quot; | January 2020&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 116&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center; background: skyBlue;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | 36&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center; background: skyBlue;&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Legend&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#a0e75a;&amp;quot;| Green&lt;br /&gt;
| Current release&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:skyBlue;&amp;quot;| Blue&lt;br /&gt;
| Future release&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;database versions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.rieter.net/content/xot/xbmc-database-versions/ - another site keeping track of Kodi DB changes&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/video/VideoDatabase.cpp - Tracking the Video Database schema version&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/music/MusicDatabase.cpp - Tracking the Music Database schema version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Releases]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:PVR]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Add-ons]]&lt;br /&gt;
[[Category:Live_TV]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=172712</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=172712"/>
		<updated>2019-06-27T22:34:03Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Database Versions */ update for v19 prealpha1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:DatabasesNavBox}}&lt;br /&gt;
{{mininav| [[Development]] {{l2| [[Userdata]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data (&#039;&#039;&#039;&#039;&#039;[[Music_library|Music]], [[Video_library|Video]]&#039;&#039;&#039;&#039;&#039;, and Program databases). By default, the database files (*.db) are stored in the &#039;&#039;&#039;&#039;&#039;[[Userdata]]&#039;&#039;&#039;&#039;&#039; folder, specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
Performing certain actions on video files will also add content to the database even if it has not been scanned or scraped. For example if you change any OSD setting while watching it, this will be saved in the database as a preference. Resume points are also stored in this database for unscraped videos.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Databases =&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
The following sections detail the database structure, tables, fields and their properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SQL Queries ==&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing the Databases with Kodi Python ==&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music tagging | Import-export library | NFO files}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Database Versions =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;database versions&amp;quot; /&amp;gt;The following tables shows what database version is used for various Kodi versions. This can be useful to see what versions of Kodi can use [[MySQL]] sharing. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Kodi version !! Date !! MyVideos !! MyMusic !! Textures !! Addons !! ViewModes !! TV !! EPG !! ADSP&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v10 - Dharma&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2010 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v11 - Eden&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | March 2012&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 18&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v12 - Frodo&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2013 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v13 - Gotham&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | May 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 78&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 46&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v14 - Helix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 90&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 48&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 26&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 8&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v15 - Isengard&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2015 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 93&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 52&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 19&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 10&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v16 - Jarvis&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2016 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 99&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 56&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 20&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v17 - Krypton&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2017&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 107&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v18 - Leia&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2019&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 116&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 12&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v19 - Matrix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2019&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 116&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 34&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 12&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;database versions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.rieter.net/content/xot/xbmc-database-versions/ - another site keeping track of Kodi DB changes&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/video/VideoDatabase.cpp - Tracking the Video Database schema version&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/music/MusicDatabase.cpp - Tracking the Music Database schema version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Releases]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:PVR]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Add-ons]]&lt;br /&gt;
[[Category:Live_TV]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:HOW-TO_compile_Kodi_for_Linux_on_Arch/Manjaro&amp;diff=166964</id>
		<title>Archive:HOW-TO compile Kodi for Linux on Arch/Manjaro</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:HOW-TO_compile_Kodi_for_Linux_on_Arch/Manjaro&amp;diff=166964"/>
		<updated>2019-05-14T19:37:23Z</updated>

		<summary type="html">&lt;p&gt;Graysky: clean-up header to article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The recommended method to build/install Kodi on Arch Linux or Manjaro (and other Arch clones), is to build from a PKGBUILD rather than building/installing by hand.  The primary reason to build this way is that it allows all files to be managed by pacman which is adventitious for numerous reasons.  &lt;br /&gt;
&lt;br /&gt;
* To build the official Kodi package, use a utility such as [https://wiki.archlinux.org/index.php/Arch_Build_System#Retrieve_PKGBUILD_source_using_Git asp] which will pull the needed files.&lt;br /&gt;
* To build a dev version of Kodi, download a PKGBUILD the [https://wiki.archlinux.org/index.php/Arch_User_Repository AUR] which hosts  [https://aur.archlinux.org/packages/kodi-devel/ kodi-devel].&lt;br /&gt;
&lt;br /&gt;
The remainder of this article shows steps to manually build and install.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
First, we are going to install git, which is needed to download the Kodi source-code. Enter the following into the command line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo pacman -S git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once git is installed, we can now get the Kodi source-code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME&lt;br /&gt;
git clone git://github.com/xbmc/xbmc.git kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing the required packages ==&lt;br /&gt;
Kodi needs several third party packages, most of them can be installed from the official Arch/Manjaro repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo pacman --needed --asdeps -S alsa-lib autoconf automake avahi bluez-libs bzip2 cmake curl cwiid dbus ffmpeg \&lt;br /&gt;
flatbuffers fmt fontconfig freetype2 fribidi fstrcmp gawk giflib glu gperf jre8-openjdk libao libass libbluray \&lt;br /&gt;
libcap libcdio libcec libcrossguid libjpeg-turbo libltdl libmariadbclient libmicrohttpd libmpcdec libnfs libplist \&lt;br /&gt;
libpng libpulse libssh libsystemd libtool libusb libva libvdpau libxml2 libxmu libxrandr libxslt libxt lsb-release \&lt;br /&gt;
lzo mesa nasm openssl pcre python2 python2-pillow rapidjson shairplay smbclient sqlite swig taglib tinyxml yasm zlib&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition to those, Kodi needs a few packages that are currently unavailable in the official repo, but they can be installed from the AUR (Arch User Repo)[https://aur.archlinux.org/].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cwiid fstrcmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those can either be installed manually[https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages] or by using a AUR Helpers[https://wiki.archlinux.org/index.php/AUR_helpers].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Optional:&#039;&#039; For developers and anyone else who compiles frequently it is recommended to use ccache&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo pacman -S ccache&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to compile ==&lt;br /&gt;
To create the Kodi executable manually perform these steps:&lt;br /&gt;
&lt;br /&gt;
;Notes&lt;br /&gt;
* By adding -j&amp;lt;number&amp;gt; to the &#039;cmake --build&#039; command, you describe how many concurrent jobs will be used. So for dualcore the command is: &amp;lt;code&amp;gt;make -j2&amp;lt;/code&amp;gt;&lt;br /&gt;
* You may need to run the &#039;make install&#039; command with sudo if your user doesn&#039;t have write permissions to the prefix you have provided.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/kodi/&lt;br /&gt;
mkdir kodi-build&lt;br /&gt;
cd kodi-build&lt;br /&gt;
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local&lt;br /&gt;
cmake --build . -- VERBOSE=1 -j4&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install Kodi in the prefix provided (/usr/local).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to run ==&lt;br /&gt;
How to run xbmc depends on the type of installation you have done.&lt;br /&gt;
If you chose to install Kodi using the &#039;/usr&#039; or &#039;/usr/local&#039; prefix, you can just issue &#039;kodi&#039; in a teminal session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also simply run from the application menu ofcourse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you&#039;ve overridden the prefix to install Kodi into some non-standard location, you will have to run kodi from a terminal, specifying the full path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/opt/kodi/bin/kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uninstalling ==&lt;br /&gt;
If you ever need to uninstall Kodi, you can use the following command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/kodi/kodi-build&lt;br /&gt;
sudo make uninstall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* https://github.com/xbmc/xbmc/blob/master/docs/README.linux&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Compiling]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:HOW-TO_compile_Kodi_for_Linux_on_Arch/Manjaro&amp;diff=159436</id>
		<title>Archive:HOW-TO compile Kodi for Linux on Arch/Manjaro</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:HOW-TO_compile_Kodi_for_Linux_on_Arch/Manjaro&amp;diff=159436"/>
		<updated>2019-02-21T19:52:53Z</updated>

		<summary type="html">&lt;p&gt;Graysky: Link recommended method for Arch-based distros&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The recommended method to build/install Kodi on Arch Linux or Manjaro (and other Arch clones), is to build from a PKGBUILD rather than building/installing by hand.  The primary reason to build this way is that it allows all files to be managed by pacman which is adventitious for numerous reasons.  &lt;br /&gt;
&lt;br /&gt;
One can download a PKGBUILD for Kodi from the [https://wiki.archlinux.org/index.php/Arch_User_Repository AUR] which hosts  [https://aur.archlinux.org/packages/kodi-devel/ kodi-devel].  The remainder of this article shows steps to manually build and install.&lt;br /&gt;
&lt;br /&gt;
== Getting the source code ==&lt;br /&gt;
First, we are going to install git, which is needed to download the Kodi source-code. Enter the following into the command line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo pacman -S git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once git is installed, we can now get the Kodi source-code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME&lt;br /&gt;
git clone git://github.com/xbmc/xbmc.git kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing the required packages ==&lt;br /&gt;
Kodi needs several third party packages, most of them can be installed from the official Arch/Manjaro repository&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo pacman -S autoconf automake cmake curl jre8-openjdk gawk gperf libao alsa-lib libass avahi bluez-libs libbluray \&lt;br /&gt;
bzip2 libcap libcdio libcec curl dbus fontconfig freetype2 fribidi giflib mesa glu libjpeg-turbo libltdl lzo libmicrohttpd \&lt;br /&gt;
libmpcdec libnfs pcre libplist libpng libpulse shairplay smbclient sqlite libssh openssl ffmpeg taglib tinyxml libtool \&lt;br /&gt;
libsystemd libusb libva libvdpau libxml2 libxmu libxrandr libxslt libxt lsb-release rapidjson nasm python2 python2-pillow \&lt;br /&gt;
swig yasm zlib libmariadbclient libcrossguid flatbuffers&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition to those, Kodi needs a few packages that are currently unavailable in the official repo, but they can be installed from the AUR (Arch User Repo).&lt;br /&gt;
&lt;br /&gt;
We need the yaourt package in order to install packages from the AUR, so let&#039;s install it first&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo pacman -S yaourt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once yaourt is installed, we can now get the last packages Kodi needs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
yaourt -S cwiid fmt fstrcmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Optional:&#039;&#039; For developers and anyone else who compiles frequently it is recommended to use ccache&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo pacman -S ccache&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to compile ==&lt;br /&gt;
To create the Kodi executable manually perform these steps:&lt;br /&gt;
&lt;br /&gt;
;Notes&lt;br /&gt;
* By adding -j&amp;lt;number&amp;gt; to the &#039;cmake --build&#039; command, you describe how many concurrent jobs will be used. So for dualcore the command is: &amp;lt;code&amp;gt;make -j2&amp;lt;/code&amp;gt;&lt;br /&gt;
* You may need to run the &#039;make install&#039; command with sudo if your user doesn&#039;t have write permissions to the prefix you have provided.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/kodi/&lt;br /&gt;
mkdir kodi-build&lt;br /&gt;
cd kodi-build&lt;br /&gt;
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local&lt;br /&gt;
cmake --build . -- VERBOSE=1 -j4&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install Kodi in the prefix provided (/usr/local).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to run ==&lt;br /&gt;
How to run xbmc depends on the type of installation you have done.&lt;br /&gt;
If you chose to install Kodi using the &#039;/usr&#039; or &#039;/usr/local&#039; prefix, you can just issue &#039;kodi&#039; in a teminal session.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also simply run from the application menu ofcourse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case you&#039;ve overridden the prefix to install Kodi into some non-standard location, you will have to run kodi from a terminal, specifying the full path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/opt/kodi/bin/kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uninstalling ==&lt;br /&gt;
If you ever need to uninstall Kodi, you can use the following command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd $HOME/kodi/kodi-build&lt;br /&gt;
sudo make uninstall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* https://github.com/xbmc/xbmc/blob/master/docs/README.linux&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Compiling]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=154165</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=154165"/>
		<updated>2019-01-12T16:19:40Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Database Versions */ update for rc5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:DatabasesNavBox}}&lt;br /&gt;
{{mininav| [[Development]] {{l2| [[Userdata]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Databases =&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SQL Queries ==&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing the Databases with Kodi Python ==&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music_tagging | Import-Export_library | nfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Database Versions =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;database versions&amp;quot; /&amp;gt;The following tables shows what database version is used for various Kodi versions. This can be useful to see what versions of Kodi can use [[MySQL]] sharing. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Kodi version !! Date !! MyVideos !! MyMusic !! Textures !! Addons !! ViewModes !! TV !! EPG !! ADSP&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v10- Dharma&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2010 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v11- Eden&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | March 2012&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 18&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v12- Frodo&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2013 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v13- Gotham&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | May 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 78&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 46&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v14- Helix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 90&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 48&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 26&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 8&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v15- Isengard&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2015 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 93&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 52&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 19&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 10&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v16- Jarvis&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2016 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 99&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 56&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 20&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v17- Krypton&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2017&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 107&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v18- Leia&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2018&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 116&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 12&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;database versions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.rieter.net/content/xot/xbmc-database-versions/ - another site keeping track of Kodi DB changes&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/video/VideoDatabase.cpp - Tracking the Video Database schema version&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/music/MusicDatabase.cpp - Tracking the Music Database schema version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Releases]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:PVR]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Add-ons]]&lt;br /&gt;
[[Category:Live_TV]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=146880</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=146880"/>
		<updated>2018-10-28T13:23:21Z</updated>

		<summary type="html">&lt;p&gt;Graysky: since b4 these have not changes/assuming final for Leia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:DatabasesNavBox}}&lt;br /&gt;
{{mininav| [[Development]] {{l2| [[Userdata]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Databases =&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SQL Queries ==&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing the Databases with Kodi Python ==&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music_tagging | Import-Export_library | nfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Database Versions =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;database versions&amp;quot; /&amp;gt;The following tables shows what database version is used for various Kodi versions. This can be useful to see what versions of Kodi can use [[MySQL]] sharing. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Kodi version !! Date !! MyVideos !! MyMusic !! Textures !! Addons !! ViewModes !! TV !! EPG !! ADSP&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v10- Dharma&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2010 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v11- Eden&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | March 2012&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 18&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v12- Frodo&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2013 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v13- Gotham&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | May 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 78&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 46&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v14- Helix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 90&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 48&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 26&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 8&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v15- Isengard&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2015 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 93&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 52&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 19&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 10&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v16- Jarvis&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2016 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 99&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 56&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 20&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v17- Krypton&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2017&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 107&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v18- Leia&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | August 2018&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 112&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;database versions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.rieter.net/content/xot/xbmc-database-versions/ - another site keeping track of Kodi DB changes&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/video/VideoDatabase.cpp - Tracking the Video Database schema version&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/music/MusicDatabase.cpp - Tracking the Music Database schema version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Releases]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:PVR]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Add-ons]]&lt;br /&gt;
[[Category:Live_TV]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Databases&amp;diff=140041</id>
		<title>Databases</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Databases&amp;diff=140041"/>
		<updated>2018-09-05T19:00:49Z</updated>

		<summary type="html">&lt;p&gt;Graysky: /* Database Versions */ update versions for 18b1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:DatabasesNavBox}}&lt;br /&gt;
{{mininav| [[Development]] {{l2| [[Userdata]] }} }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Kodi uses [http://www.sqlite.org/ SQLite], an open source light-weight SQL database-engine, to store all its library related data ([[Music Library|Music]], [[Video Library|Video]], and Program databases). By default, the database files (*.db) are stored in [[The UserData Folder]], specifically in userdata/Database.&lt;br /&gt;
&lt;br /&gt;
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using the Databases =&lt;br /&gt;
Databasess are automatically maintained whenever you use Kodi. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using Kodi Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for [[Music Library|Music]] and [[Video Library|Video]] files on their respective pages.&lt;br /&gt;
&lt;br /&gt;
Since Kodi maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in Kodi&#039;s databases, and give some brief examples of how to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building SQL Queries ==&lt;br /&gt;
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as [http://www.1keydata.com/sql/sql.html this one].&lt;br /&gt;
&lt;br /&gt;
For most Kodi development projects, you&#039;re going to be doing select statements. &amp;quot;Select&amp;quot; is a SQL command used to gather data (in the form of &amp;quot;rows&amp;quot;) out of a SQL database. Your select statement will include:&lt;br /&gt;
* A list of all the data fields (columns in the database table) you want for each row. &lt;br /&gt;
* A list of all the tables you need to get information from&lt;br /&gt;
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.&lt;br /&gt;
&lt;br /&gt;
Below are a few sample select statements, so you can see how it works.&lt;br /&gt;
&lt;br /&gt;
This query grabs all of the information for every movie in the Video Library. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;*&amp;quot; is used to indicate all fields. Also,there is no &amp;quot;where&amp;quot; clause in this statement, so it returns every row in the table.&lt;br /&gt;
&lt;br /&gt;
This query narrows down the results to just those movies released in 2007. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select * from movie where c07 = 2007&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the column containing the movie&#039;s release year is labelled simply &amp;quot;c07.&amp;quot; The tables further down this page help you find out which columns contain the information you&#039;re looking for. &lt;br /&gt;
&lt;br /&gt;
This query example is more semantic. Lists your movies including, in this order, internal ID, internal file ID, rating, movie year, IMDB ID, movie name and movie plot.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;select idMovie,idFile,c05,c07,c09,c00,c03,c02 from movie;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following query is a bit more complex because it joins 3 movie-related tables (movie, files and path) to list a single useful view of your movies. In human language it lists movie ID, movie year, IMDB rating, IMDB ID, movie name and full path of the movie file, ordered by IMDB rating with highest rating appearing first:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt; select idMovie,c07,c05,c09,c00,path.strPath||files.strFilename from movie, files,path where movie.idFile=files.idFile and files.idPath=path.idPath order by c05 desc;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could also use less than or greater than symbols to get newer or older movies.&lt;br /&gt;
&lt;br /&gt;
This query gets just the path and filename of all of the video files from season two of Chuck.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with SQL queries, this query probably looks pretty complicated. It serves as a good demonstration of why there are so many tables in the list below, and how to use them. Many of the elements of a TV show&#039;s path and filename and used repeatedly, so SQL allows us to save space and speed up our searches by storing each of those elements just once, in one place, and referencing them repeatedly by the same ID.&lt;br /&gt;
&lt;br /&gt;
In this case, the root path that contains your video files is a long string that repeats at the beginning of many files. The name of a TV series, too, is repeated in every single episode of that series, so it makes the most sense to save the series name once (along with all information relevant to the series). We do that in the table tvshow, and every episode of the TV show can access all of that information using just the TV show&#039;s ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing the Databases with Kodi Python ==&lt;br /&gt;
Many Python plugins (and some scripts) can use the information in the Kodi database to offer users additional convenience and functionality. The easiest way to access the databases via Kodi Python is using [[JSON RPC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
Incorporated into the tables below are the related music metadata tags that are read from music files, and the NFO XML tags exported and imported by Kodi.&lt;br /&gt;
{{see also | Music_tagging | Import-Export_library | nfo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Database Versions =&lt;br /&gt;
&amp;lt;section begin=&amp;quot;database versions&amp;quot; /&amp;gt;The following tables shows what database version is used for various Kodi versions. This can be useful to see what versions of Kodi can use [[MySQL]] sharing. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Kodi version !! Date !! MyVideos !! MyMusic !! Textures !! Addons !! ViewModes !! TV !! EPG !! ADSP&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v10- Dharma&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2010 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 37&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 1&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v11- Eden&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | March 2012&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 18&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v12- Frodo&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | January 2013 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 75&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 15&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 4&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v13- Gotham&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | May 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 78&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 46&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 22&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 7&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v14- Helix&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | December 2014 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 90&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 48&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 16&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 26&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 8&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v15- Isengard&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | July 2015 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 93&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 52&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 19&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 10&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | N/A&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v16- Jarvis&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2016 &lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 99&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 56&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 20&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v17- Krypton&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | February 2017&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 107&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 60&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 29&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | v18- Beta 1&lt;br /&gt;
 | style=&amp;quot;width:120px;&amp;quot; | August 2018&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 112&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 72&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 13&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 27&lt;br /&gt;
 | style=&amp;quot;width:80px; text-align:center;&amp;quot; | 6&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 32&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 11&lt;br /&gt;
 | style=&amp;quot;width:60px; text-align:center;&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;database versions&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.rieter.net/content/xot/xbmc-database-versions/ - another site keeping track of Kodi DB changes&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/video/VideoDatabase.cpp - Tracking the Video Database schema version&lt;br /&gt;
* https://github.com/xbmc/xbmc/commits/master/xbmc/music/MusicDatabase.cpp - Tracking the Music Database schema version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Releases]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|17}}&lt;br /&gt;
[[Category:PVR]]&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Add-ons]]&lt;br /&gt;
[[Category:Live_TV]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Graysky</name></author>
	</entry>
</feed>