<?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=Kibje</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=Kibje"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/Kibje"/>
	<updated>2026-06-15T05:38:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Kibtest2&amp;diff=186768</id>
		<title>User talk:Kibtest2</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Kibtest2&amp;diff=186768"/>
		<updated>2019-11-06T19:16:13Z</updated>

		<summary type="html">&lt;p&gt;Kibje: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;Official Kodi Wiki&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Kibje|Kibje]] ([[User talk:Kibje|talk]]) 19:16, 6 November 2019 (UTC)&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Kibtest&amp;diff=186766</id>
		<title>User talk:Kibtest</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Kibtest&amp;diff=186766"/>
		<updated>2019-11-06T18:49:18Z</updated>

		<summary type="html">&lt;p&gt;Kibje: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;Official Kodi Wiki&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Kibje|Kibje]] ([[User talk:Kibje|talk]]) 18:49, 6 November 2019 (UTC)&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=183881</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=183881"/>
		<updated>2019-10-11T07:19:23Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* Currently happening: 2019 (Serbia) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2019 (Serbia) - currently underway ==&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Belgrade, Serbia&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11-13&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
[[File:Devcon 20180930 Sofia Bulgaria.jpg|600px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-i&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-ii&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-iii&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech Republic) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech Republic) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=183880</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=183880"/>
		<updated>2019-10-11T07:19:00Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* UPCOMING: 2019 (Serbia) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Currently happening: 2019 (Serbia) ==&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Belgrade, Serbia&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11-13&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
[[File:Devcon 20180930 Sofia Bulgaria.jpg|600px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-i&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-ii&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-iii&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech Republic) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech Republic) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=180431</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=180431"/>
		<updated>2019-09-04T20:23:08Z</updated>

		<summary type="html">&lt;p&gt;Kibje: added note about next DevCon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== UPCOMING: 2019 (Serbia) ==&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Belgrade, Serbia&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11-13&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
[[File:Devcon 20180930 Sofia Bulgaria.jpg|600px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-i&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-ii&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-iii&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech Republic) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech Republic) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Leia&amp;diff=180430</id>
		<title>Leia</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Leia&amp;diff=180430"/>
		<updated>2019-09-04T20:18:11Z</updated>

		<summary type="html">&lt;p&gt;Kibje: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Leia is the codename the v18 release of Kodi.&lt;br /&gt;
For more information please check the pages below.&lt;br /&gt;
&lt;br /&gt;
* [[Kodi v18 (Leia) FAQ]]&lt;br /&gt;
* [[Kodi v18 (Leia) changelog]]&lt;br /&gt;
* [[Leia API changes]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Leia|*]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Kodi_Foundation&amp;diff=172096</id>
		<title>Kodi Foundation</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Kodi_Foundation&amp;diff=172096"/>
		<updated>2019-06-17T22:41:42Z</updated>

		<summary type="html">&lt;p&gt;Kibje: removed autogenerated &amp;#039;similar page names&amp;#039; that were not similar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav}}&lt;br /&gt;
&amp;lt;section begin=intro /&amp;gt;The &amp;quot;&#039;&#039;&#039;XBMC Foundation&#039;&#039;&#039;&amp;quot; is the non-profit organization that oversees the [[Kodi|{{kodi}}]] project and is registered in the US.&amp;lt;section end=intro /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
Membership of the XBMC Foundation is typically taken from members of [[Team Kodi]], but may include non Team members.&lt;br /&gt;
* [[/Member list]]&lt;br /&gt;
&lt;br /&gt;
== Board of Directors ==&lt;br /&gt;
{| class=&amp;quot;infobox&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;section begin=Foundation members /&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Keith Herrington (keith)&#039;&#039;&#039; - Board member - &#039;&#039;Term: 11/2016 - 11/2020&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Martijn Kaijser (Martijn)&#039;&#039;&#039; - Board member - &#039;&#039;Term: 11/2013 - 11/2019&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Ejal de Klerk (Kib)&#039;&#039;&#039; - Board member - &#039;&#039;Term: 11/2017 - 11/2019&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lukas Rusak (lrusak)&#039;&#039;&#039; - Board member - &#039;&#039;Term: 11/2018 - 11/2020&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Darren Hill (DarrenHill)&#039;&#039;&#039; - Board member - &#039;&#039;Term: 11/2018 - 11/2020&#039;&#039;&lt;br /&gt;
&amp;lt;section end=Foundation members /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
The XBMC Board of Directors are Foundation members that manages the XBMC Foundation. The Board consists of five seats that are chosen by vote from the XBMC Foundation members. The Board&#039;s responsibilities include management of funds, publicity, and all business related issues (taxes, communication with other businesses, maintaining non-profit status etc.)&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Board of Directors meetings ==&lt;br /&gt;
The Board meets about once a month (in addition to any special meetings as required) to discuss any business that needs to be handled by the foundation.  Meetings are typically conducted via teleconference using a service such as Skype.&lt;br /&gt;
&lt;br /&gt;
== Board of Directors elections ==&lt;br /&gt;
;Who can be an XBMC Board member?&lt;br /&gt;
:Any existing member of the foundation, as voted by the remaining members.&lt;br /&gt;
&lt;br /&gt;
;How long does a board member hold office?&lt;br /&gt;
:Terms last for two years. We endeavor to have a staggered cycle so that not all board members are turned over at a single election. There are no term restrictions, so Board members may even run for consecutive terms. However, in the interests of sharing the load, any and all members are encouraged to participate.&lt;br /&gt;
&lt;br /&gt;
;What is expected of an XBMC Board member?&lt;br /&gt;
:Board members are expected to attend all meetings or will otherwise be diligent in letting the other board members know if they won&#039;t be around.  Further, they&#039;ll be expected to make decisions (as a group) in the best interests of the foundation.  The Board accountable to the members, so should consider recommendations made by members during the decision making process, Though they ultimately must make the final decisions.  Any and all discussion should be frankly communicated to members within a reasonable time frame.&lt;br /&gt;
&lt;br /&gt;
;Who elects the officers (President, Secretary, Treasurer etc?)&lt;br /&gt;
:The board elects the officers.  In doing so, they may choose to take advice from the membership, but the decision is theirs.  The President must be from within the board itself, though Secretary, Treasurer, and any other officers the board wishes to appoint may be from outside the board (or outside the membership).&lt;br /&gt;
&lt;br /&gt;
=== Election process ===&lt;br /&gt;
&lt;br /&gt;
Board elections occur as follows:&lt;br /&gt;
# A member is nominated by the Board to oversee the election.&lt;br /&gt;
# Nominations for the open positions are taken from within the existing membership via email and/or via a forum thread.  This lasts a minimum of 10 days.&lt;br /&gt;
# Confirmed nominees are placed on the ballot.&lt;br /&gt;
# A vote of the membership is then taken using a trusted internet voting service using a ranking system. (usually via the Condorcet Internet Voting Service, http://www.cs.cornell.edu/w8/~andru/civs ) and the candidates with the highest ranks take office.  This lasts about two weeks.&lt;br /&gt;
#: &#039;&#039;In the event of a tie, it will be resolved with the existing board members discussing with the tied nominees. Tied nominees that do not go on the board may be nominated as officers of the Foundation, for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Previous elections ===&lt;br /&gt;
* [[/Elections/2017|2017]]&lt;br /&gt;
* [[/Elections/2016|2016]]&lt;br /&gt;
* [[/Elections/2014|2014]]&lt;br /&gt;
* [[/Elections/2013|2013]]&lt;br /&gt;
* [[/Elections/2012|2012]]&lt;br /&gt;
&lt;br /&gt;
== Foundation Bylaws and other important documents ==&lt;br /&gt;
* [[Media:ByLaws.pdf]]&lt;br /&gt;
* [[Media:Delaware Incorporation Notice.pdf]]&lt;br /&gt;
* [[Media:Delaware Notice Of Good Standing.pdf]]&lt;br /&gt;
* [[Media:KodiFoundationIncorporationNotice.pdf]]&lt;br /&gt;
* [[Media:Kodi_Foundation_exempt.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Trademarks ==&lt;br /&gt;
{{see|Official:Trademark Policy index}}&lt;br /&gt;
&lt;br /&gt;
== Financial information ==&lt;br /&gt;
&lt;br /&gt;
=== Financial status ===&lt;br /&gt;
&lt;br /&gt;
* Form 990 2016 - http://www.guidestar.org/FinDocuments/2016/474/565/2016-474565769-0e36f6e3-9.pdf &lt;br /&gt;
* Income and expenses 2015 - https://drive.google.com/file/d/0BwsEEPRqIzELOVpUa0p4endrRWc/view?usp=sharing&lt;br /&gt;
* Income and expenses 2014 - https://drive.google.com/file/d/0BwsEEPRqIzELVW9rMkpPUWZRSHM/view?usp=sharing&lt;br /&gt;
* Income and expenses 2013 - https://docs.google.com/spreadsheet/ccc?key=0AtlJ3dnHcw46dHpmeXlIV0hGaC13Z3I3b25hZWhWRGc#gid=8&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;note&#039;&#039;: 2014 and 2015 expenses are US Foundation account only.&lt;br /&gt;
&lt;br /&gt;
=== Account details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Europe bank account&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bank: ING Netherlands&lt;br /&gt;
* Beneficiary: Kodi Foundation&lt;br /&gt;
* IBAN account: NL39 INGB 0006 6296 56&lt;br /&gt;
* BIC: INGBNL2A&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unites States account&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bank: Wells Fargo&lt;br /&gt;
* Beneficiary: Kodi Foundation&lt;br /&gt;
&lt;br /&gt;
== Legal representation ==&lt;br /&gt;
The XBMC Foundation is legally represented by the [[w:Software Freedom Law Center|SFLC (Software Freedom Law Center)]].&lt;br /&gt;
&lt;br /&gt;
In addition the XBMC Foundation is member of [[w:Open_Invention_Network|OIN (Open Invention Network)]] since 9 July 2010. OIN is a defensive patent pool and community of patent non-aggression which enables freedom of action in Linux.&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
For contact information, please see http://kodi.tv/about/contact/&lt;br /&gt;
&lt;br /&gt;
[[Category:Team Kodi]]&lt;br /&gt;
[[Category:Team Kodi specific notes]]&lt;br /&gt;
[[Category:XBMC Foundation|*]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=140226</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=140226"/>
		<updated>2018-10-02T18:59:09Z</updated>

		<summary type="html">&lt;p&gt;Kibje: Czech Republic according to wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
[[File:Devcon 20180930 Sofia Bulgaria.jpg|600px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-i&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-ii&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-iii&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech Republic) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech Republic) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech Republic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=140225</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=140225"/>
		<updated>2018-10-02T18:55:41Z</updated>

		<summary type="html">&lt;p&gt;Kibje: fixes picture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
[[File:Devcon 20180930 Sofia Bulgaria.jpg|600px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-i&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-ii&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-iii&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=140224</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=140224"/>
		<updated>2018-10-02T18:55:09Z</updated>

		<summary type="html">&lt;p&gt;Kibje: Added DevCon 2018 information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
[[File:Devcon 20180930 Sofia Bulgaria.jpg|600px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-i&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-ii&lt;br /&gt;
* https://kodi.tv/article/devcon-2018-sofia-part-iii&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=File:Devcon_20180930_Sofia_Bulgaria.jpg&amp;diff=140223</id>
		<title>File:Devcon 20180930 Sofia Bulgaria.jpg</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=File:Devcon_20180930_Sofia_Bulgaria.jpg&amp;diff=140223"/>
		<updated>2018-10-02T18:54:07Z</updated>

		<summary type="html">&lt;p&gt;Kibje: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Kodi team at DevCon 2018&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Help:Main_page&amp;diff=139859</id>
		<title>Help:Main page</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Help:Main_page&amp;diff=139859"/>
		<updated>2018-08-14T10:00:46Z</updated>

		<summary type="html">&lt;p&gt;Kibje: irrellevant now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wiki help navigation}}&lt;br /&gt;
{{divbox|orange||To edit the Kodi Wiki Manual just register for an account. Editing of certain pages may require an account that is a few days old and has made a hand full of edits. If you have any questions about editing or access to the Kodi Wiki, please leave a message on the [[forumtopic:35|Kodi help forum for website issues]], [[Talk:Main Page]], or drop by [irc://irc.freenode.net/kodi #kodi on freenode]}}&lt;br /&gt;
&lt;br /&gt;
{{See also|Help:Notes for admins}}&lt;br /&gt;
&lt;br /&gt;
This is for help with editing the Kodi Wiki Manual. For help with Kodi, please see the &#039;&#039;&#039;[[Main page]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Wiki editing 101==&lt;br /&gt;
Here&#039;s some wiki editing 101 links from MediaWiki.org and Wikipedia. Most things that work on Wikipedia should also work on the Kodi Wiki Manual. If you see a feature or template on Wikipedia that you would like to use here then let us know on the &#039;&#039;&#039;[[forumtopic:35|Kodi help forum for website issues]]&#039;&#039;&#039; or &#039;&#039;&#039;[[Talk:Main Page]]&#039;&#039;&#039;.&lt;br /&gt;
*[[mw:Help:Editing pages]]&lt;br /&gt;
*[[w:Help:Contents/Editing Wikipedia]]&lt;br /&gt;
*[[w:Wikipedia:FAQ/Editing]]&lt;br /&gt;
*[[w:Wikipedia:Cheatsheet]]&lt;br /&gt;
*[[mw:Help:Starting a new page]]&lt;br /&gt;
*[[mw:Help:Images]]&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
*&#039;&#039;&#039;[[:Category:Templates]]-&#039;&#039;&#039; formatting and message templates that you can use on pages for various things. &lt;br /&gt;
*&#039;&#039;&#039;Gadgets-&#039;&#039;&#039; Go to the top of any page and click on &amp;quot;My preferences -&amp;gt; Gadgets&amp;quot; and check out some of the additional editing tools there, especially the &#039;&#039;&#039;wikEd&#039;&#039;&#039; option&lt;br /&gt;
*&#039;&#039;&#039;[[Special:SpecialPages]]&#039;&#039;&#039; contains a number of tools and reports to help with editing.&lt;br /&gt;
*Some additional functions on this wiki are documented via links at &#039;&#039;&#039;[[Special:Version]]&#039;&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;YouTube-&#039;&#039;&#039; To embed youtube videos (Kodi related videos only!) use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;[[Template:youtube|youtube]]|ID}}&amp;lt;/code&amp;gt; where id= is the YouTube ID from the URL. For example, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{youtube|4NR57ELY28s}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. You can also define |height= and |width= (default is 569x320).&lt;br /&gt;
*&#039;&#039;&#039;Like/PlusOne-&#039;&#039;&#039; Add a Facebook &#039;&#039;&#039;Like&#039;&#039;&#039; or a Google &#039;&#039;&#039;PlusOne&#039;&#039;&#039; to a specific wiki page, ether in reference to the page itself or the topic the page is about. The tags are: {{tl|Like}}, {{tl|Recommend}}, {{tl|PlusOne}}. Click on their links for more info.&lt;br /&gt;
&lt;br /&gt;
==Types of pages==&lt;br /&gt;
:&#039;&#039;Think of this as a basic idea/guideline and not really anything strict&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;General topics (main namespace)&#039;&#039;&#039;- Anything that is a general overview of a topic. This can be main manual pages, a page for a remote control, a page for a specific hardware part, a supplemental tool/program, or just about anything Kodi related. Some pages might be a manual-type page explaining something in Kodi, or it could be something just Kodi-related and just serving as a basic info page + bookmarks.&lt;br /&gt;
*&#039;&#039;&#039;Manual&#039;&#039;&#039;- Core Kodi manual/help pages. Can be in several namespaces. See [[:Category:Manual]]&lt;br /&gt;
*&#039;&#039;&#039;FAQs&#039;&#039;&#039;- Question/common topic and answers. See [[:Category:FAQ]] and [[Template:FAQ]]&lt;br /&gt;
*&#039;&#039;&#039;HOW-TO:&#039;&#039;&#039;- How-tos some manual pages will simply be both general pages and a how-to page, or be paired with a how-to page. Pages in the &#039;&#039;HOW-TO:&#039;&#039; namespace should be just just for step-by-step how tos. For how-tos within a general topic page, just use the main namespace. Some how-tos are apart of the main manual, and others are more specific. We welcome any how-tos that people feel would be useful. See [[:Category:How-to]].&lt;br /&gt;
*&#039;&#039;&#039;[[Help:Add-on page|Add-ons:]]&#039;&#039;&#039;- Add-ons, skins, etc. Great for Add-on developers and users alike. See [[:Category:All add-ons]]. &#039;&#039;&#039;Examples of good add-on pages include: [[Add-on:YouTube]], [[Add-on:BlipTV]], [[Add-on:iPlayer]], [[Add-on:Common plugin cache]]&#039;&#039;&#039;. Subpages (if needed) can be made with a slash (&#039;&#039;&#039;/&#039;&#039;&#039;) in the name.&lt;br /&gt;
*&#039;&#039;&#039;Development&#039;&#039;&#039;- Pages for developers or really advanced topics. Includes Skin and Add-on development. Can be in several namespaces. See [[:Category:Development]]&lt;br /&gt;
*&#039;&#039;&#039;User:&#039;&#039;&#039;- Username space for user pages. All editors get their own User page and can make additional subpages by adding a slash (&#039;&#039;&#039;/&#039;&#039;&#039;). Great for putting down notes on what you are working on for the Kodi Wiki, you can even use your userpage to document your own Kodi set ups, list helpful links for your own reference, or whatever as long as it is Kodi related.&lt;br /&gt;
&lt;br /&gt;
== Style guidelines ==&lt;br /&gt;
{{main|Help:Style guidelines}}&lt;br /&gt;
{{#lst:Help:Style guidelines|notes}}&lt;br /&gt;
&lt;br /&gt;
==Where we need help==&lt;br /&gt;
&#039;&#039;everywhere, but here&#039;s some specific ideas:&#039;&#039;&lt;br /&gt;
*Improve/update/add to all of the FAQs, see [[:Category:FAQ]]&lt;br /&gt;
*Update screen shots on various pages: Click on an image. If it expands then click on the file name below the image. Then click on &amp;quot;upload new version&amp;quot;.&lt;br /&gt;
*Screen shots uploaded for all skins in [[:Category:Skins]]&lt;br /&gt;
**Any other kind of manual/help info specific to skins&lt;br /&gt;
*Expanding Add-on pages. Great for Add-on developers and users alike. See [[:Category:All add-ons]]. &lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Examples of good add-on pages include:&lt;br /&gt;
:* [[Add-on:BlipTV]]&lt;br /&gt;
:* [[Add-on:iPlayer]]&lt;br /&gt;
:* [[Add-on:PleXBMC]]&lt;br /&gt;
:* [[Add-on:Common plugin cache]]&lt;br /&gt;
:* [[Add-on:Artwork Downloader]]&lt;br /&gt;
: Subpages (if needed) can be made with a slash (&#039;&#039;&#039;/&#039;&#039;&#039;) in the name.&lt;br /&gt;
*Pages/writeups for:&lt;br /&gt;
**[[Troubleshooting]]&lt;br /&gt;
*Spell checking (everywhere)&lt;br /&gt;
*Useful keymaps. See [[:Category:Custom keymaps]]&lt;br /&gt;
*Spam/vandalism patrolling of &#039;&#039;&#039;[http://kodi.wiki/index.php?title=Special:RecentChanges&amp;amp;hidepatrolled=1 unpatrolled edits]&#039;&#039;&#039;. See spam? Remove it! You can use the Undo feature or find a spam-free version in the &amp;quot;View history&amp;quot; tab (click on a past version, then click on Edit, then save, to restore an older version of a page).&lt;br /&gt;
*Pages needing updating/cleaning up: [[:Category:Cleanup]]&lt;br /&gt;
*Pages needing expanding: [[:Category:Incomplete]]&lt;br /&gt;
*Kodi Wiki help pages (including this very page). Need expanding, how-to&#039;s, etc, on how to edit and use the Kodi Wiki.&lt;br /&gt;
&lt;br /&gt;
[[Category:Wiki]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=139823</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=139823"/>
		<updated>2018-08-09T19:40:23Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* 2018 (Bulgaria) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
This DevCon has not been held yet !&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=139822</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=139822"/>
		<updated>2018-08-09T19:40:15Z</updated>

		<summary type="html">&lt;p&gt;Kibje: modification to DevCon overview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2018 (Bulgaria) ==&lt;br /&gt;
This DevCon has not been held yet !&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
== 2017 (Czech) ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 (Portugal) ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 (Hungary) ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 (Czech) ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 (Portugal) ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 (Germany) ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 (Austria) ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 (Austria) ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Vienna, Austria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; At-Visions&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 (Germany) ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 (Netherlands) ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Amsterdam, The Netherlands&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sponsored by:&#039;&#039;&#039; Boxee&lt;br /&gt;
&lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=DevCon&amp;diff=139821</id>
		<title>DevCon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=DevCon&amp;diff=139821"/>
		<updated>2018-08-09T19:31:22Z</updated>

		<summary type="html">&lt;p&gt;Kibje: Initial area for Devcon 2018&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Team Kodi]]|[[Events]]}}&lt;br /&gt;
&lt;br /&gt;
The Kodi developers conference is where Team Kodi members gather to discuss and handle various Kodi related business. It is one of the few times where Team members meet up in real life. &lt;br /&gt;
{{-}}&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== 2018 ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Sofia, Bulgaria&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; September 28-30&lt;br /&gt;
&lt;br /&gt;
== 2017 II ==&lt;br /&gt;
[[File:DevCon2017IITeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 27-29&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-part-ii-day-three&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2017 I ==&lt;br /&gt;
[[File:DevCon2017TeamPhoto.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Porto, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; May 5th - 7th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-one&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-two&lt;br /&gt;
* https://kodi.tv/article/devcon-2017-day-three&lt;br /&gt;
* https://kodi.tv/article/kodis-2017-developers-conference&lt;br /&gt;
* http://forum.kodi.tv/showthread.php?tid=311585&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2016 ==&lt;br /&gt;
[[File:DevCon2016Teamfoto2.jpg|600px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Budapest, Hungary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/kodi-devcon-2016-live-blog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2015 ==&lt;br /&gt;
[[File:Devcon2015.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2016 photo&amp;quot;/&amp;gt;Top: alwinus, jjd-uk, keith, razze, ksoo, zag&amp;lt;br/&amp;gt;Middle: ruuk, koying, montellese, mkortstiege, , phil65, martijn&amp;lt;br/&amp;gt;Bottom: natethomas, paxxi, garbear, ansii, wisler, negge, hitcher, bignoid, fkoch, kib&amp;lt;section end=&amp;quot;2016 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Prague, Czech&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 7th - 9th&lt;br /&gt;
&lt;br /&gt;
* https://kodi.tv/article/devcon-2015-liveblog&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2014 ==&lt;br /&gt;
[[File:DevCon2014.jpg|500px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Lisbon, Portugal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 10th - 12th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/kodi-devcon-2014-live-blog/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2013 ==&lt;br /&gt;
[[File:2013 DevCon.jpg|600px|right|thumb|&amp;lt;section begin=&amp;quot;2013 photo&amp;quot;/&amp;gt;The team in Munich&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Munich, Germany&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date:&#039;&#039;&#039; October 11th - 13th&lt;br /&gt;
&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2013/&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2012 ==&lt;br /&gt;
[[File:Devcon2012.JPG|right|600px|thumb|&amp;lt;section begin=&amp;quot;2012 photo&amp;quot;/&amp;gt;From left to right: topfs2, da-anda, Martijn, fneufneu, sraue, benjee , Memphiz, Wiso, Montellese, chadoe, Davilla, jfcarrol, cptspiff, amet, vdrfan, olympia, anssi, alanwww1, jmarshall, TheUni, Clumsy, Freezy, natethomas&amp;lt;section end=&amp;quot;2012 photo&amp;quot;/&amp;gt;]]&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
&lt;br /&gt;
* http://xbmc.us/njbetzen/2012/08/30/xbmc-devcon-liveblog/&lt;br /&gt;
* http://kodi.tv/devcon-2012-user-meetup/&lt;br /&gt;
* http://www.at-visions.com/XBMC-conference-in-Vienna.html&lt;br /&gt;
&lt;br /&gt;
Photos and videos:&lt;br /&gt;
* http://www.flickr.com/photos/23449328@N05/sets/72157631428716214/&lt;br /&gt;
* http://www.youtube.com/watch?v=jJBhe7arBlk&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2010 ==&lt;br /&gt;
[[File:XBMC-DevCon-2010-Attendees-resized.png|right|600px|thumb|&amp;lt;section begin=&amp;quot;2010devcon&amp;quot;/&amp;gt;From left to right: Amet (Zeljko), Andy (at-visions), freezy (Nico), clumsy (Thomas), topfs2 (Tobias), chadoe (Martin), jmarshall (Jonathan) (TOP)/unknown (BOTTOM), elupus (Joakim), vdrfan (Matthias), prae5 (Paul), davilla (Scott), WiSo (Winfried), malloc (Sean), Malard (Martin), TheUni (Cory), Michael (at-visions), Olympia (Bence), Ronen (at-visions CEO) (TOP)/lcapriotti (Luigi) (BOTTOM), spiff (Dr. Arne), Lucas (at-visions)&amp;lt;section end=&amp;quot;2010devcon&amp;quot;/&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
Vienna, sponsored by at-visions&lt;br /&gt;
* http://kodi.tv/devcon-2010/&lt;br /&gt;
* http://kodi.tv/xbmc-devcon-2010-summary/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2009 ==&lt;br /&gt;
[[File:2009 DevCon.jpg|right|600px|thumb|From left to right: Erez, Pike, Yuvalt, WiSo, vulkanr, vdrfan, elupus, blittan, chadoe, MaestroDD]]&lt;br /&gt;
Berlin&lt;br /&gt;
* http://kodi.tv/results-of-xbmc-developers-conference/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== 2008 ==&lt;br /&gt;
[[File:2008 DevCon.jpg|right|600px|thumb|]]&lt;br /&gt;
Amsterdam, sponsored by Boxee &lt;br /&gt;
* http://blip.tv/play/AcbtFgA&lt;br /&gt;
* http://www.bunniestudios.com/blog/?p=251&lt;br /&gt;
* https://www.flickr.com/photos/27660056@N07/sets/72157605632155509/&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Events]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Artist_information_folder&amp;diff=139819</id>
		<title>Artist information folder</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Artist_information_folder&amp;diff=139819"/>
		<updated>2018-08-07T17:52:57Z</updated>

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

		<summary type="html">&lt;p&gt;Kibje: Hide category from displaying at the bottom of pages (still viewable by logged-in users)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For ease of reference, a listing of pages I have substantially changed&lt;br /&gt;
__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139646</id>
		<title>Add-on:Artist Slideshow</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139646"/>
		<updated>2018-07-10T13:06:43Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighting added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Artist Slideshow&lt;br /&gt;
|provider-name=pkscout,ronie&lt;br /&gt;
|ID=script.artistslideshow&lt;br /&gt;
|latest-version=2.1.2&lt;br /&gt;
|extension point=xbmc.python.script&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Download images and additional info of the currently playing artist&lt;br /&gt;
|Description=Addon to download images and additional information from fanart.tv and theaudiodb.com of the currently playing artist. The images, along with local artists&#039; images, and info can be used by the skin to create a slideshow for the artist being listened to.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?t=124880&lt;br /&gt;
|Website=http://wiki.xbmc.org/index.php?title=Add-on:Artist_Slideshow&lt;br /&gt;
|Source=https://github.com/pkscout/script.artistslideshow&lt;br /&gt;
|Email=artistslideshow.xbmc@gmail.com&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.artistslideshow/icon.png}}&lt;br /&gt;
== Donations ==&lt;br /&gt;
Donations are &#039;&#039;&#039;not&#039;&#039;&#039; accepted for Artist Slideshow.  If you find this addon useful, please consider instead supporting the services that make Artist Slideshow possible.&lt;br /&gt;
* fanart.tv: https://fanart.tv/contribute/&lt;br /&gt;
* theaudiodb: http://theaudiodb.com (look for the &amp;quot;donate with PayPal button)&lt;br /&gt;
* musicbrainz: https://metabrainz.org/donate&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* displays slideshow as background for music visualization (must use a compatible skin or update skin using the instructions below)&lt;br /&gt;
** option to have artist images downloaded and/or use a local directory of artist images&lt;br /&gt;
** option for a fallback slideshow if no local or remote images are found&lt;br /&gt;
** option to have a single slideshow displayed regardless of artist playing&lt;br /&gt;
* options to download artwork from fanart.tv and theaudiodb.com to display as background for music visualization&lt;br /&gt;
** option to download artist bio and other additional information from Kodi&#039;s internal database, theaudiodb.com, or last.fm (skin must support display of this information)&lt;br /&gt;
*** support for overriding the artist bio, discography, and similar artists list with local information&lt;br /&gt;
** option to limit size of download cache&lt;br /&gt;
** option to display notification during download of first image for an artist with option to provide a local image (or images) to use instead of default Kodi notification&lt;br /&gt;
** option to display notification when downloads are complete (or no images found for download)&lt;br /&gt;
** ability to exclude images from being downloaded (see Tips and Tricks below)&lt;br /&gt;
* support for multiple artists for a single song (as passed by Kodi)&lt;br /&gt;
** also supports iTunes/Amazon standard of song name (feat. artist 2) in title MP3 tag&lt;br /&gt;
* support for internet streams that put the artist name in the Kodi title field&lt;br /&gt;
* support for other addons using Artist Slideshow to provide the background&lt;br /&gt;
* support for an alternate name for the folder containing the images (i.e. something instead of extrafanart)&lt;br /&gt;
&lt;br /&gt;
== How to use this addon ==&lt;br /&gt;
&lt;br /&gt;
=== Find a Compatible Skin ===&lt;br /&gt;
There are a number of skins that support Artist Slideshow, but keeping a running list of them has proved too much work. I&#039;d suggest visiting the Kodi forums and see if the skin you want to use supports Artist Slideshow. I do have a modified version of the default Confluence theme (Kodi 16 and earlier) and Estuary theme (Kodi 17 and later) that include support for Artist Slideshow. To use that skin you will need to download and install my skin repo ([https://github.com/pkscout/repository.skins.pkscout/raw/gotham/repository.skins.pkscout-1.0.1.zip Gotham] or [https://github.com/pkscout/repository.skins.pkscout/raw/helix/repository.skins.pkscout-1.1.0.zip Helix or later]) and then install the skin from there.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with the default Confluence Skin ===&lt;br /&gt;
Depending on the version of Kodi you have and the operating system on which you are running it, the files you need to modify will be in different locations.  If you don&#039;t know where skin files are stored, then this is not the option for you.  Please see the section above for information on downloading and installing a skin that supports Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Change Default Skin Files&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is probably the easiest way, but anytime you upgrade or reinstall XBMC you will have to redo these modifications. Go to the Kodi installation root folder (see this wiki page under special://xbmc for the path for your operating system). Then go to addons --&amp;gt; skin.confluence. Quit Kodi, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Create Custom Skin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bit more complicated but will keep your modifications intact across upgrades. Go to the Kodi installation folder, enter the addon directory and find the skin.confluence folder. Make a copy of it and move it to your user addon directory.  Rename the directory to skin.confluence.mod. In that directory open the file called addon.xml. Change the third line to read id=&amp;quot;skin.confluence.mod&amp;quot; and then launch (or relaunch Kodi). Go to SYSTEM --&amp;gt; APPEARANCE --&amp;gt; SKIN and switch to the modified skin. When you do that you will lose all your current skin settings, so you might want to write them down before changing. Quit Kodi again, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
=== Changes to MusicVisualisation.xml ===&lt;br /&gt;
To run the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;onload&amp;gt;RunScript(script.artistslideshow)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On AppleTV if ArtistSlideshow isn&#039;t updating after the first artist, use this instead:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;onload&amp;gt;RunScript(script.artistslideshow, daemon=True)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a multiimage conrol:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window(Visualisation).Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Addon settings ==&lt;br /&gt;
&lt;br /&gt;
=== Slideshow ===&lt;br /&gt;
&#039;&#039;Local artist folder:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory that has artist images. Images must be organized in artist/extrafanart/ unless you set a different local fanart folder name in the advanced settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Priority:&#039;&#039; (default remote first)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: remote first, local first, both&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;remote first&#039;&#039;&#039; will try and download images from remote sites. if none found will use local images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;local first&#039;&#039;&#039; will use local images. if none found will try and download remote images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;both&#039;&#039;&#039; will check for local images first. if they exist the downloaded images will be placed in the same directory as the local images. if not remote images will be stored in normal cache dir.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are using local image folders you&#039;ve downloaded from other sources,  by default AS will only add images in those directories if the artist directory already exists.  If this option is set to TRUE, then AS will create new artist folders in the local artist path and save the images there.  This is useful if you are sharing images between Kodi instances on different TVs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for service information storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If this is set to True, Artist Slideshow will store all the cached information from the image sources in the same folder structure as the images.  This is useful if you are sharing images between Kodi instances on different TVs, as Artist Slideshow won&#039;t download duplicates of the same information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Include root level fanart.jpg / Include root level folder.jpg&#039;&#039; (default false for both)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have your local images organized using many popular image download addons, you might not have a couple images in the root of your artist directory that aren&#039;t included in the extrafanart folder. This option will make a copy of these two images (or fanart.png / folder.png) and place them in your extrafanart folder so they are included in your slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disable secondary and featured artist images:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to false, Artist Slideshow will show images for all artists associated with the playing song.  When set to true, Artist Slideshow will show only images for the primary artist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use transparent background when no artist found:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to true, Artist Slideshow will use a transparent background (instead of a black one), allowing the layer below to be seen. Please note that exactly what you see will be very dependent on the skin you are using and the settings you have for that skin.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Slideshow ===&lt;br /&gt;
&#039;&#039;Alternate name for local fanart folder:&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
this is a text field where you can provide an alternate name for the add-on to use to find local images. If this has text in it, the add-on will look in artist/customfolder instead of artist/extrafanart for local images.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use fallback slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images if no artwork is found for the playing artist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fallback slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used if no local or remote images can be found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use override slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images no matter what artist is playing. With this set no artist artwork will ever be downloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Override slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used intead of artist artwork. &lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&#039;&#039;Download images from fanart.tv:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv has very high quality (1080p) artwork.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Client API key&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv provides the option for individual users to have an API key. For information on the benefits that provides, please see https://fanart.tv/2015/01/personal-api-keys/ &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Download images from theaudiodb.com:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
theaudiodb.com has no more than three images per artist, and they are often duplicates of artwork from fanart.tv.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
=== Album Info ===&lt;br /&gt;
&#039;&#039;Download album info from theaudiodb.com&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from theaudiodb.com.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Download album info fromlast.fm&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Artist Bio ===&lt;br /&gt;
&#039;&#039;Preferred language for artist bio:&#039;&#039;&#039; (default: English)&amp;lt;br /&amp;gt;&lt;br /&gt;
Sets the language Kodi uses when attempting to download a bio. If no bio for that language is returned, no bio is returned (even if available in other languages).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from Kodi:&#039;&#039; (default: true)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will ask Kodi for the artist bio that was stored when the music library was last scraped.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from theaudiodb.com&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from theaudiodb.com.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Similar Artists ===&lt;br /&gt;
&#039;&#039;Download similar artists fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download a list of similar artists from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&#039;&#039;Download notification type:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: none, text notifications, custom images&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;none&#039;&#039;&#039; will surpress all notifications&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;text notifications&#039;&#039;&#039; will use the built in XBMC notification pop-up to let you know about images being downloaded for the first time and the completion status (either nothing downloaded or download complete)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;custom images&#039;&#039;&#039; let&#039;s you show an image or directory of images when artwork for an artist is being downloaded for the first time. This won&#039;t display if there are local images available to display. If you select this option you must provide the path to the directory that has the custom image or images in it (stored in &#039;&#039;&#039;custom notification images folder&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Progress images folder:&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
Must be set to a valid local path with one or more images to be displayed while first image for an artist is being downloaded&lt;br /&gt;
&lt;br /&gt;
AS replaces certain reserved characters in an artist names with an alternate character when looking for a local artist folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Platform for image store&#039;&#039;&#039; can be Windows, MacOS, or Other.  When set to Windows, the characters &amp;lt;&amp;gt;:&amp;quot;/\|?*and trailing periods are replaced with whatever is set in the settings. When set to MacOS, the character : is replaced with whatever is set in the settings.  If set to other, any characters defined by os.path.sep are replaced with whatever is set in the settings.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace illegal path characters in artist name with&#039;&#039;&#039; (default _)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any illegal characters noted above.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace trailing period in artist name with:&#039;&#039;&#039; (default BLANK)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any trailing period as noted above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Limit size of download cache:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
if enabled, the download cache will be trimmed (oldest first) to keep the size below the specified minimum. Please note that if you set the image download priority to &#039;&#039;&#039;both&#039;&#039;&#039; on the Slideshow settings, this setting has no effect, as the cache manger is disabled to protect your local artwork from being deleted.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Maximum cache size (in megabytes):&#039;&#039;&#039; (default 1024)&amp;lt;br /&amp;gt;&lt;br /&gt;
if Limit size of download cache is set to true, this allows the user to specify the maximum size of the cache&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enable debug logging:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When enabled, if you have XBMC logging set the DEBUG you will get a very verbose set of information in your log file. You should only need to activate this when troubleshooting issues.&lt;br /&gt;
&lt;br /&gt;
== Overriding Artist Info with Local Information ==&lt;br /&gt;
&lt;br /&gt;
=== Directory Structure ===&lt;br /&gt;
To override the downloaded information, you need to create another directory in the folder you defined in the settings as the Local artist folder. Your folder structure will look something like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text&amp;gt;&lt;br /&gt;
 &amp;lt;artistname&amp;gt;&lt;br /&gt;
     extrafanart&lt;br /&gt;
     override&lt;br /&gt;
         albums (folder with artist album art)&lt;br /&gt;
             albumname.jpg (any XBMC image type supported)&lt;br /&gt;
             anotheralbumname.jpg&lt;br /&gt;
         artistbio.nfo (see below for format)&lt;br /&gt;
         artistsalbum.nfo (see below for format)&lt;br /&gt;
         artistsimilar.nfo (see below for format)&lt;br /&gt;
         similar&lt;br /&gt;
             artistimage.jpg&lt;br /&gt;
             anotherartistimage.jpg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Override nfo file formats ===&lt;br /&gt;
All .nfo files are xml files (pretty simple ones) patterned after the XML files downloaded from last.fm.&lt;br /&gt;
&lt;br /&gt;
Example artistbio.nfo&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
     &amp;lt;content&amp;gt;This is the artist&#039;s bio.&amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsalbum.nfo&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;topalbums&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;albumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotheralbumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/topalbums&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsimilar.nfo&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;similarartists&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;artistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotherartistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
 &amp;lt;/similarartists&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Script from Other Screens ==&lt;br /&gt;
You might want to use Artist Slideshow to display images somewhere other than on the music visualization. To do that you need to start Artist Slideshow when XBMC starts using DAEMON mode. To do that use:&lt;br /&gt;
  RunScript(script.artistslideshow, daemon=True)&lt;br /&gt;
&lt;br /&gt;
== New skin properties ==&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by the script to check if it is already running. There&#039;s no need to use this property in your skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists (from last.fm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist (from theaudiodb.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
== How to call this addon from another addon ==&lt;br /&gt;
To use this addon to provide the background for another addon, the calling addon must create a window that uses a multimage control:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window.Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;0&amp;quot; end=&amp;quot;100&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Visible&amp;lt;/animation&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;100&amp;quot; end=&amp;quot;0&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Hidden&amp;lt;/animation&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That window must have an infolabel in which the currently playing artist is stored (suggested name is CURRENTARTIST) as well as one for the song title (suggested name is CURRENTTILE). It is the responsibility of the calling addon to change those infolabels when the artist/song changes.&lt;br /&gt;
&lt;br /&gt;
=== Calling the addon ===&lt;br /&gt;
Artist Slideshow does not exit after being called. It continues to run to check for changes in the artist infolabel. Becasue of that, the calling addon will have to create another thread for Artist Slideshow. The calling addon needs to import the python theading module for this to work. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
 def runArtistSlideshow(self):&lt;br /&gt;
     #startup artistslideshow&lt;br /&gt;
     xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;, &amp;quot;True&amp;quot;)&lt;br /&gt;
     #assumes addon is using suggested infolabel name of CURRENTARTIST and CURRENTTITLE&lt;br /&gt;
     artistslideshow = &amp;quot;RunScript(script.artistslideshow,windowid=%s&amp;amp;artistfield=%s&amp;amp;titlefield=%s&amp;amp;albumfield=%s&amp;amp;mbidfield=%s)&amp;quot;&lt;br /&gt;
         % (xbmcgui.getCurrentWindowId(), &amp;quot;CURRENTARTIST&amp;quot;, &amp;quot;CURRENTTITLE&amp;quot;, &amp;quot;CURRENTALBUM&amp;quot;, &amp;quot;CURRENTMBID&amp;quot;)&lt;br /&gt;
     xbmc.executebuiltin(artistslideshow)&lt;br /&gt;
 &lt;br /&gt;
 self.thread = threading.Thread(target=self.runArtistSlideshow)&lt;br /&gt;
 self.thread.setDaemon(True)&lt;br /&gt;
 self.thread.start()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When calling Artist Slideshow, only artistfield and titlefield (and their corresponding information stored in the skin) are required. It would be helpful to have albumfield, as it makes it easier to lookup the Musicbrainz ID. If you happen to have the MusicBrainz ID, you can pass that as well.&lt;br /&gt;
&lt;br /&gt;
Note that the line wrap in artistslideshow = is there just for presentation purposes. If you copy and paste the code exactly as is you will get a python error. The suggestion is for the addon to spawn this thread right after it spawns the window.&lt;br /&gt;
&lt;br /&gt;
=== Exiting the addon ===&lt;br /&gt;
When the calling addon is preparing to exit, it must tell Artist Slideshow to stop and wait until it has. This logic should be added *before* the addon&#039;s window is destroyed. Failure to include this step will likely cause XBMC to crash.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
 #tell ArtistSlideshow to exit&lt;br /&gt;
 xbmcgui.Window(xbmcgui.getCurrentWindowId()).clearProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;)&lt;br /&gt;
 #wait until ArtistSlideshow exits&lt;br /&gt;
 while (not xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty(&amp;quot;ArtistSlideshow.CleanupComplete&amp;quot;) == &amp;quot;True&amp;quot;):&lt;br /&gt;
     time.sleep(1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Additional script/skin properties available ===&lt;br /&gt;
 Window.Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist.&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists from last.fm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist from theaudiodb.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by Artist Slideshow to check if it is already running. There&#039;s no need to use this property in the calling addon&#039;s skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ExternalCall)&lt;br /&gt;
An external addon needs to set this to True so that Artist Slideshow will run properly when called by an external script. This property should be cleared to tell ArtistSlideshow to stop running.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.CleanupComplete)&lt;br /&gt;
This one is used internally by Artist Slideshow to tell an external script that ArtistSlideshow is done running and is exiting.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
===Using Artist Slideshow with Fanart.tv===&lt;br /&gt;
In order to download images from fanart.tv, AS must have the MusicBrainz ID for the playing artist.  The easiest way to get that information is to tag your music using MusicBrainz Picard.  Once you have done that rescan your music library to import the new information into Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Removing Unwanted Images ===&lt;br /&gt;
Every artist&#039;s directory (whether your local one or the one in the cache directory) will have a file named _imagedb.nfo.  Once an image has been downloaded, the image name will be stored in that file.  If you delete an image, it will not be downloaded again unless you delete the image name from _imagedb.nfo file.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with a Visualization ===&lt;br /&gt;
If you want to see artist images and a visualization, make sure the skin is loading the Artist Slideshow images first (i.e at the top of the XML file). That will ensure the artist image is the furtherest back layer. If you choose to use a visualization, please select one with a significant amount of transparent area or you may not see much of anything. For any other skin, please contact the skin developer for a clarification on how visualizations interact with Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with AppleTV ===&lt;br /&gt;
On AppleTV the PAPlayer sometimes stops after each song and restarts at the beginning of a new one. That, by default, causes Artist Slideshow to stop. Once that happens, artist background images no longer update. Please see [[#Changes_to_MusicVisualisation.xml|Changes to MusicVisualisation.xml above]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Getting help ==&lt;br /&gt;
If you need assistance using Artist Slideshow, integrating it a skin, or calling it using another addon, please see the support thread on the XBMC forums.&lt;br /&gt;
: http://forum.kodi.tv/showthread.php?t=124880&lt;br /&gt;
&lt;br /&gt;
== Beta Testing ==&lt;br /&gt;
If you are interested in beta testing new versions of this add on (or just like being on the bleeding edge of up to date), you can install beta versions (Helix or later, there will be no more updates for Gotham or earlier) from [http://raw.github.com/pkscout/repository.beta.pkscout/helix/repository.beta.pkscout-1.1.0.zip pkscout&#039;s Add On Beta Channel]. You can also monitor the support thread, as links to particular beta releases will be available there as well.&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Commands&amp;diff=139645</id>
		<title>Add-on:Commands</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Commands&amp;diff=139645"/>
		<updated>2018-07-10T13:04:52Z</updated>

		<summary type="html">&lt;p&gt;Kibje: this page does not use syntaxhighlight at all now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Commands&lt;br /&gt;
|provider-name=AddonScriptorDE&lt;br /&gt;
|ID=script.commands&lt;br /&gt;
|latest-version=1.0.3&lt;br /&gt;
|extension point=xbmc.python.pluginsource&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Map multiple XBMC commands to one remote button. All availabe commands: http://wiki.xbmc.org/?title=List_of_Built_In_Functions&lt;br /&gt;
|Description=Map multiple XBMC commands to one remote button. All availabe commands: http://wiki.xbmc.org/?title=List_of_Built_In_Functions&lt;br /&gt;
|Platform=&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?tid=134129&lt;br /&gt;
|Website=&lt;br /&gt;
|Source=https://github.com/AddonScriptorDE/script.commands&lt;br /&gt;
|Email=AddonScriptorDE at yahoo dot de&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.commands/icon.png}}&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
To use this just use a &#039;&#039;&#039;[[keymap]]&#039;&#039;&#039; to map a button to perform the action:&lt;br /&gt;
&lt;br /&gt;
  RunPlugin(plugin://script.commands)&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with syntax highlighting errors]]&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139643</id>
		<title>Add-on:Artist Slideshow</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139643"/>
		<updated>2018-07-10T13:03:14Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* Override nfo file formats */ syntaxhighlights&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Artist Slideshow&lt;br /&gt;
|provider-name=pkscout,ronie&lt;br /&gt;
|ID=script.artistslideshow&lt;br /&gt;
|latest-version=2.1.2&lt;br /&gt;
|extension point=xbmc.python.script&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Download images and additional info of the currently playing artist&lt;br /&gt;
|Description=Addon to download images and additional information from fanart.tv and theaudiodb.com of the currently playing artist. The images, along with local artists&#039; images, and info can be used by the skin to create a slideshow for the artist being listened to.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?t=124880&lt;br /&gt;
|Website=http://wiki.xbmc.org/index.php?title=Add-on:Artist_Slideshow&lt;br /&gt;
|Source=https://github.com/pkscout/script.artistslideshow&lt;br /&gt;
|Email=artistslideshow.xbmc@gmail.com&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.artistslideshow/icon.png}}&lt;br /&gt;
== Donations ==&lt;br /&gt;
Donations are &#039;&#039;&#039;not&#039;&#039;&#039; accepted for Artist Slideshow.  If you find this addon useful, please consider instead supporting the services that make Artist Slideshow possible.&lt;br /&gt;
* fanart.tv: https://fanart.tv/contribute/&lt;br /&gt;
* theaudiodb: http://theaudiodb.com (look for the &amp;quot;donate with PayPal button)&lt;br /&gt;
* musicbrainz: https://metabrainz.org/donate&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* displays slideshow as background for music visualization (must use a compatible skin or update skin using the instructions below)&lt;br /&gt;
** option to have artist images downloaded and/or use a local directory of artist images&lt;br /&gt;
** option for a fallback slideshow if no local or remote images are found&lt;br /&gt;
** option to have a single slideshow displayed regardless of artist playing&lt;br /&gt;
* options to download artwork from fanart.tv and theaudiodb.com to display as background for music visualization&lt;br /&gt;
** option to download artist bio and other additional information from Kodi&#039;s internal database, theaudiodb.com, or last.fm (skin must support display of this information)&lt;br /&gt;
*** support for overriding the artist bio, discography, and similar artists list with local information&lt;br /&gt;
** option to limit size of download cache&lt;br /&gt;
** option to display notification during download of first image for an artist with option to provide a local image (or images) to use instead of default Kodi notification&lt;br /&gt;
** option to display notification when downloads are complete (or no images found for download)&lt;br /&gt;
** ability to exclude images from being downloaded (see Tips and Tricks below)&lt;br /&gt;
* support for multiple artists for a single song (as passed by Kodi)&lt;br /&gt;
** also supports iTunes/Amazon standard of song name (feat. artist 2) in title MP3 tag&lt;br /&gt;
* support for internet streams that put the artist name in the Kodi title field&lt;br /&gt;
* support for other addons using Artist Slideshow to provide the background&lt;br /&gt;
* support for an alternate name for the folder containing the images (i.e. something instead of extrafanart)&lt;br /&gt;
&lt;br /&gt;
== How to use this addon ==&lt;br /&gt;
&lt;br /&gt;
=== Find a Compatible Skin ===&lt;br /&gt;
There are a number of skins that support Artist Slideshow, but keeping a running list of them has proved too much work. I&#039;d suggest visiting the Kodi forums and see if the skin you want to use supports Artist Slideshow. I do have a modified version of the default Confluence theme (Kodi 16 and earlier) and Estuary theme (Kodi 17 and later) that include support for Artist Slideshow. To use that skin you will need to download and install my skin repo ([https://github.com/pkscout/repository.skins.pkscout/raw/gotham/repository.skins.pkscout-1.0.1.zip Gotham] or [https://github.com/pkscout/repository.skins.pkscout/raw/helix/repository.skins.pkscout-1.1.0.zip Helix or later]) and then install the skin from there.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with the default Confluence Skin ===&lt;br /&gt;
Depending on the version of Kodi you have and the operating system on which you are running it, the files you need to modify will be in different locations.  If you don&#039;t know where skin files are stored, then this is not the option for you.  Please see the section above for information on downloading and installing a skin that supports Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Change Default Skin Files&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is probably the easiest way, but anytime you upgrade or reinstall XBMC you will have to redo these modifications. Go to the Kodi installation root folder (see this wiki page under special://xbmc for the path for your operating system). Then go to addons --&amp;gt; skin.confluence. Quit Kodi, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Create Custom Skin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bit more complicated but will keep your modifications intact across upgrades. Go to the Kodi installation folder, enter the addon directory and find the skin.confluence folder. Make a copy of it and move it to your user addon directory.  Rename the directory to skin.confluence.mod. In that directory open the file called addon.xml. Change the third line to read id=&amp;quot;skin.confluence.mod&amp;quot; and then launch (or relaunch Kodi). Go to SYSTEM --&amp;gt; APPEARANCE --&amp;gt; SKIN and switch to the modified skin. When you do that you will lose all your current skin settings, so you might want to write them down before changing. Quit Kodi again, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
=== Changes to MusicVisualisation.xml ===&lt;br /&gt;
To run the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;onload&amp;gt;RunScript(script.artistslideshow)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On AppleTV if ArtistSlideshow isn&#039;t updating after the first artist, use this instead:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;onload&amp;gt;RunScript(script.artistslideshow, daemon=True)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a multiimage conrol:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window(Visualisation).Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Addon settings ==&lt;br /&gt;
&lt;br /&gt;
=== Slideshow ===&lt;br /&gt;
&#039;&#039;Local artist folder:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory that has artist images. Images must be organized in artist/extrafanart/ unless you set a different local fanart folder name in the advanced settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Priority:&#039;&#039; (default remote first)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: remote first, local first, both&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;remote first&#039;&#039;&#039; will try and download images from remote sites. if none found will use local images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;local first&#039;&#039;&#039; will use local images. if none found will try and download remote images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;both&#039;&#039;&#039; will check for local images first. if they exist the downloaded images will be placed in the same directory as the local images. if not remote images will be stored in normal cache dir.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are using local image folders you&#039;ve downloaded from other sources,  by default AS will only add images in those directories if the artist directory already exists.  If this option is set to TRUE, then AS will create new artist folders in the local artist path and save the images there.  This is useful if you are sharing images between Kodi instances on different TVs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for service information storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If this is set to True, Artist Slideshow will store all the cached information from the image sources in the same folder structure as the images.  This is useful if you are sharing images between Kodi instances on different TVs, as Artist Slideshow won&#039;t download duplicates of the same information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Include root level fanart.jpg / Include root level folder.jpg&#039;&#039; (default false for both)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have your local images organized using many popular image download addons, you might not have a couple images in the root of your artist directory that aren&#039;t included in the extrafanart folder. This option will make a copy of these two images (or fanart.png / folder.png) and place them in your extrafanart folder so they are included in your slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disable secondary and featured artist images:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to false, Artist Slideshow will show images for all artists associated with the playing song.  When set to true, Artist Slideshow will show only images for the primary artist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use transparent background when no artist found:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to true, Artist Slideshow will use a transparent background (instead of a black one), allowing the layer below to be seen. Please note that exactly what you see will be very dependent on the skin you are using and the settings you have for that skin.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Slideshow ===&lt;br /&gt;
&#039;&#039;Alternate name for local fanart folder:&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
this is a text field where you can provide an alternate name for the add-on to use to find local images. If this has text in it, the add-on will look in artist/customfolder instead of artist/extrafanart for local images.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use fallback slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images if no artwork is found for the playing artist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fallback slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used if no local or remote images can be found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use override slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images no matter what artist is playing. With this set no artist artwork will ever be downloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Override slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used intead of artist artwork. &lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&#039;&#039;Download images from fanart.tv:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv has very high quality (1080p) artwork.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Client API key&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv provides the option for individual users to have an API key. For information on the benefits that provides, please see https://fanart.tv/2015/01/personal-api-keys/ &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Download images from theaudiodb.com:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
theaudiodb.com has no more than three images per artist, and they are often duplicates of artwork from fanart.tv.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
=== Album Info ===&lt;br /&gt;
&#039;&#039;Download album info from theaudiodb.com&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from theaudiodb.com.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Download album info fromlast.fm&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Artist Bio ===&lt;br /&gt;
&#039;&#039;Preferred language for artist bio:&#039;&#039;&#039; (default: English)&amp;lt;br /&amp;gt;&lt;br /&gt;
Sets the language Kodi uses when attempting to download a bio. If no bio for that language is returned, no bio is returned (even if available in other languages).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from Kodi:&#039;&#039; (default: true)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will ask Kodi for the artist bio that was stored when the music library was last scraped.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from theaudiodb.com&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from theaudiodb.com.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Similar Artists ===&lt;br /&gt;
&#039;&#039;Download similar artists fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download a list of similar artists from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&#039;&#039;Download notification type:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: none, text notifications, custom images&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;none&#039;&#039;&#039; will surpress all notifications&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;text notifications&#039;&#039;&#039; will use the built in XBMC notification pop-up to let you know about images being downloaded for the first time and the completion status (either nothing downloaded or download complete)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;custom images&#039;&#039;&#039; let&#039;s you show an image or directory of images when artwork for an artist is being downloaded for the first time. This won&#039;t display if there are local images available to display. If you select this option you must provide the path to the directory that has the custom image or images in it (stored in &#039;&#039;&#039;custom notification images folder&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Progress images folder:&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
Must be set to a valid local path with one or more images to be displayed while first image for an artist is being downloaded&lt;br /&gt;
&lt;br /&gt;
AS replaces certain reserved characters in an artist names with an alternate character when looking for a local artist folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Platform for image store&#039;&#039;&#039; can be Windows, MacOS, or Other.  When set to Windows, the characters &amp;lt;&amp;gt;:&amp;quot;/\|?*and trailing periods are replaced with whatever is set in the settings. When set to MacOS, the character : is replaced with whatever is set in the settings.  If set to other, any characters defined by os.path.sep are replaced with whatever is set in the settings.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace illegal path characters in artist name with&#039;&#039;&#039; (default _)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any illegal characters noted above.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace trailing period in artist name with:&#039;&#039;&#039; (default BLANK)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any trailing period as noted above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Limit size of download cache:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
if enabled, the download cache will be trimmed (oldest first) to keep the size below the specified minimum. Please note that if you set the image download priority to &#039;&#039;&#039;both&#039;&#039;&#039; on the Slideshow settings, this setting has no effect, as the cache manger is disabled to protect your local artwork from being deleted.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Maximum cache size (in megabytes):&#039;&#039;&#039; (default 1024)&amp;lt;br /&amp;gt;&lt;br /&gt;
if Limit size of download cache is set to true, this allows the user to specify the maximum size of the cache&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enable debug logging:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When enabled, if you have XBMC logging set the DEBUG you will get a very verbose set of information in your log file. You should only need to activate this when troubleshooting issues.&lt;br /&gt;
&lt;br /&gt;
== Overriding Artist Info with Local Information ==&lt;br /&gt;
&lt;br /&gt;
=== Directory Structure ===&lt;br /&gt;
To override the downloaded information, you need to create another directory in the folder you defined in the settings as the Local artist folder. Your folder structure will look something like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text&amp;gt;&lt;br /&gt;
 &amp;lt;artistname&amp;gt;&lt;br /&gt;
     extrafanart&lt;br /&gt;
     override&lt;br /&gt;
         albums (folder with artist album art)&lt;br /&gt;
             albumname.jpg (any XBMC image type supported)&lt;br /&gt;
             anotheralbumname.jpg&lt;br /&gt;
         artistbio.nfo (see below for format)&lt;br /&gt;
         artistsalbum.nfo (see below for format)&lt;br /&gt;
         artistsimilar.nfo (see below for format)&lt;br /&gt;
         similar&lt;br /&gt;
             artistimage.jpg&lt;br /&gt;
             anotherartistimage.jpg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Override nfo file formats ===&lt;br /&gt;
All .nfo files are xml files (pretty simple ones) patterned after the XML files downloaded from last.fm.&lt;br /&gt;
&lt;br /&gt;
Example artistbio.nfo&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
     &amp;lt;content&amp;gt;This is the artist&#039;s bio.&amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsalbum.nfo&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;topalbums&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;albumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotheralbumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/topalbums&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsimilar.nfo&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;similarartists&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;artistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotherartistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
 &amp;lt;/similarartists&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Script from Other Screens ==&lt;br /&gt;
You might want to use Artist Slideshow to display images somewhere other than on the music visualization. To do that you need to start Artist Slideshow when XBMC starts using DAEMON mode. To do that use:&lt;br /&gt;
  RunScript(script.artistslideshow, daemon=True)&lt;br /&gt;
&lt;br /&gt;
== New skin properties ==&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by the script to check if it is already running. There&#039;s no need to use this property in your skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists (from last.fm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist (from theaudiodb.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
== How to call this addon from another addon ==&lt;br /&gt;
To use this addon to provide the background for another addon, the calling addon must create a window that uses a multimage control:&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window.Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;0&amp;quot; end=&amp;quot;100&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Visible&amp;lt;/animation&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;100&amp;quot; end=&amp;quot;0&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Hidden&amp;lt;/animation&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That window must have an infolabel in which the currently playing artist is stored (suggested name is CURRENTARTIST) as well as one for the song title (suggested name is CURRENTTILE). It is the responsibility of the calling addon to change those infolabels when the artist/song changes.&lt;br /&gt;
&lt;br /&gt;
=== Calling the addon ===&lt;br /&gt;
Artist Slideshow does not exit after being called. It continues to run to check for changes in the artist infolabel. Becasue of that, the calling addon will have to create another thread for Artist Slideshow. The calling addon needs to import the python theading module for this to work. &lt;br /&gt;
&lt;br /&gt;
 def runArtistSlideshow(self):&lt;br /&gt;
     #startup artistslideshow&lt;br /&gt;
     xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;, &amp;quot;True&amp;quot;)&lt;br /&gt;
     #assumes addon is using suggested infolabel name of CURRENTARTIST and CURRENTTITLE&lt;br /&gt;
     artistslideshow = &amp;quot;RunScript(script.artistslideshow,windowid=%s&amp;amp;artistfield=%s&amp;amp;titlefield=%s&amp;amp;albumfield=%s&amp;amp;mbidfield=%s)&amp;quot;&lt;br /&gt;
         % (xbmcgui.getCurrentWindowId(), &amp;quot;CURRENTARTIST&amp;quot;, &amp;quot;CURRENTTITLE&amp;quot;, &amp;quot;CURRENTALBUM&amp;quot;, &amp;quot;CURRENTMBID&amp;quot;)&lt;br /&gt;
     xbmc.executebuiltin(artistslideshow)&lt;br /&gt;
 &lt;br /&gt;
 self.thread = threading.Thread(target=self.runArtistSlideshow)&lt;br /&gt;
 self.thread.setDaemon(True)&lt;br /&gt;
 self.thread.start()&lt;br /&gt;
&lt;br /&gt;
When calling Artist Slideshow, only artistfield and titlefield (and their corresponding information stored in the skin) are required. It would be helpful to have albumfield, as it makes it easier to lookup the Musicbrainz ID. If you happen to have the MusicBrainz ID, you can pass that as well.&lt;br /&gt;
&lt;br /&gt;
Note that the line wrap in artistslideshow = is there just for presentation purposes. If you copy and paste the code exactly as is you will get a python error. The suggestion is for the addon to spawn this thread right after it spawns the window.&lt;br /&gt;
&lt;br /&gt;
=== Exiting the addon ===&lt;br /&gt;
When the calling addon is preparing to exit, it must tell Artist Slideshow to stop and wait until it has. This logic should be added *before* the addon&#039;s window is destroyed. Failure to include this step will likely cause XBMC to crash.&lt;br /&gt;
&lt;br /&gt;
 #tell ArtistSlideshow to exit&lt;br /&gt;
 xbmcgui.Window(xbmcgui.getCurrentWindowId()).clearProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;)&lt;br /&gt;
 #wait until ArtistSlideshow exits&lt;br /&gt;
 while (not xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty(&amp;quot;ArtistSlideshow.CleanupComplete&amp;quot;) == &amp;quot;True&amp;quot;):&lt;br /&gt;
     time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
=== Additional script/skin properties available ===&lt;br /&gt;
 Window.Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists from last.fm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist from theaudiodb.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by Artist Slideshow to check if it is already running. There&#039;s no need to use this property in the calling addon&#039;s skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ExternalCall)&lt;br /&gt;
An external addon needs to set this to True so that Artist Slideshow will run properly when called by an external script. This property should be cleared to tell ArtistSlideshow to stop running.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.CleanupComplete)&lt;br /&gt;
This one is used internally by Artist Slideshow to tell an external script that ArtistSlideshow is done running and is exiting.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
===Using Artist Slideshow with Fanart.tv===&lt;br /&gt;
In order to download images from fanart.tv, AS must have the MusicBrainz ID for the playing artist.  The easiest way to get that information is to tag your music using MusicBrainz Picard.  Once you have done that rescan your music library to import the new information into Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Removing Unwanted Images ===&lt;br /&gt;
Every artist&#039;s directory (whether your local one or the one in the cache directory) will have a file named _imagedb.nfo.  Once an image has been downloaded, the image name will be stored in that file.  If you delete an image, it will not be downloaded again unless you delete the image name from _imagedb.nfo file.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with a Visualization ===&lt;br /&gt;
If you want to see artist images and a visualization, make sure the skin is loading the Artist Slideshow images first (i.e at the top of the XML file). That will ensure the artist image is the furtherest back layer. If you choose to use a visualization, please select one with a significant amount of transparent area or you may not see much of anything. For any other skin, please contact the skin developer for a clarification on how visualizations interact with Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with AppleTV ===&lt;br /&gt;
On AppleTV the PAPlayer sometimes stops after each song and restarts at the beginning of a new one. That, by default, causes Artist Slideshow to stop. Once that happens, artist background images no longer update. Please see [[#Changes_to_MusicVisualisation.xml|Changes to MusicVisualisation.xml above]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Getting help ==&lt;br /&gt;
If you need assistance using Artist Slideshow, integrating it a skin, or calling it using another addon, please see the support thread on the XBMC forums.&lt;br /&gt;
: http://forum.kodi.tv/showthread.php?t=124880&lt;br /&gt;
&lt;br /&gt;
== Beta Testing ==&lt;br /&gt;
If you are interested in beta testing new versions of this add on (or just like being on the bleeding edge of up to date), you can install beta versions (Helix or later, there will be no more updates for Gotham or earlier) from [http://raw.github.com/pkscout/repository.beta.pkscout/helix/repository.beta.pkscout-1.1.0.zip pkscout&#039;s Add On Beta Channel]. You can also monitor the support thread, as links to particular beta releases will be available there as well.&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139642</id>
		<title>Add-on:Artist Slideshow</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139642"/>
		<updated>2018-07-10T13:02:32Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* Directory Structure */ syntaxhighlight addition&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Artist Slideshow&lt;br /&gt;
|provider-name=pkscout,ronie&lt;br /&gt;
|ID=script.artistslideshow&lt;br /&gt;
|latest-version=2.1.2&lt;br /&gt;
|extension point=xbmc.python.script&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Download images and additional info of the currently playing artist&lt;br /&gt;
|Description=Addon to download images and additional information from fanart.tv and theaudiodb.com of the currently playing artist. The images, along with local artists&#039; images, and info can be used by the skin to create a slideshow for the artist being listened to.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?t=124880&lt;br /&gt;
|Website=http://wiki.xbmc.org/index.php?title=Add-on:Artist_Slideshow&lt;br /&gt;
|Source=https://github.com/pkscout/script.artistslideshow&lt;br /&gt;
|Email=artistslideshow.xbmc@gmail.com&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.artistslideshow/icon.png}}&lt;br /&gt;
== Donations ==&lt;br /&gt;
Donations are &#039;&#039;&#039;not&#039;&#039;&#039; accepted for Artist Slideshow.  If you find this addon useful, please consider instead supporting the services that make Artist Slideshow possible.&lt;br /&gt;
* fanart.tv: https://fanart.tv/contribute/&lt;br /&gt;
* theaudiodb: http://theaudiodb.com (look for the &amp;quot;donate with PayPal button)&lt;br /&gt;
* musicbrainz: https://metabrainz.org/donate&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* displays slideshow as background for music visualization (must use a compatible skin or update skin using the instructions below)&lt;br /&gt;
** option to have artist images downloaded and/or use a local directory of artist images&lt;br /&gt;
** option for a fallback slideshow if no local or remote images are found&lt;br /&gt;
** option to have a single slideshow displayed regardless of artist playing&lt;br /&gt;
* options to download artwork from fanart.tv and theaudiodb.com to display as background for music visualization&lt;br /&gt;
** option to download artist bio and other additional information from Kodi&#039;s internal database, theaudiodb.com, or last.fm (skin must support display of this information)&lt;br /&gt;
*** support for overriding the artist bio, discography, and similar artists list with local information&lt;br /&gt;
** option to limit size of download cache&lt;br /&gt;
** option to display notification during download of first image for an artist with option to provide a local image (or images) to use instead of default Kodi notification&lt;br /&gt;
** option to display notification when downloads are complete (or no images found for download)&lt;br /&gt;
** ability to exclude images from being downloaded (see Tips and Tricks below)&lt;br /&gt;
* support for multiple artists for a single song (as passed by Kodi)&lt;br /&gt;
** also supports iTunes/Amazon standard of song name (feat. artist 2) in title MP3 tag&lt;br /&gt;
* support for internet streams that put the artist name in the Kodi title field&lt;br /&gt;
* support for other addons using Artist Slideshow to provide the background&lt;br /&gt;
* support for an alternate name for the folder containing the images (i.e. something instead of extrafanart)&lt;br /&gt;
&lt;br /&gt;
== How to use this addon ==&lt;br /&gt;
&lt;br /&gt;
=== Find a Compatible Skin ===&lt;br /&gt;
There are a number of skins that support Artist Slideshow, but keeping a running list of them has proved too much work. I&#039;d suggest visiting the Kodi forums and see if the skin you want to use supports Artist Slideshow. I do have a modified version of the default Confluence theme (Kodi 16 and earlier) and Estuary theme (Kodi 17 and later) that include support for Artist Slideshow. To use that skin you will need to download and install my skin repo ([https://github.com/pkscout/repository.skins.pkscout/raw/gotham/repository.skins.pkscout-1.0.1.zip Gotham] or [https://github.com/pkscout/repository.skins.pkscout/raw/helix/repository.skins.pkscout-1.1.0.zip Helix or later]) and then install the skin from there.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with the default Confluence Skin ===&lt;br /&gt;
Depending on the version of Kodi you have and the operating system on which you are running it, the files you need to modify will be in different locations.  If you don&#039;t know where skin files are stored, then this is not the option for you.  Please see the section above for information on downloading and installing a skin that supports Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Change Default Skin Files&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is probably the easiest way, but anytime you upgrade or reinstall XBMC you will have to redo these modifications. Go to the Kodi installation root folder (see this wiki page under special://xbmc for the path for your operating system). Then go to addons --&amp;gt; skin.confluence. Quit Kodi, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Create Custom Skin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bit more complicated but will keep your modifications intact across upgrades. Go to the Kodi installation folder, enter the addon directory and find the skin.confluence folder. Make a copy of it and move it to your user addon directory.  Rename the directory to skin.confluence.mod. In that directory open the file called addon.xml. Change the third line to read id=&amp;quot;skin.confluence.mod&amp;quot; and then launch (or relaunch Kodi). Go to SYSTEM --&amp;gt; APPEARANCE --&amp;gt; SKIN and switch to the modified skin. When you do that you will lose all your current skin settings, so you might want to write them down before changing. Quit Kodi again, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
=== Changes to MusicVisualisation.xml ===&lt;br /&gt;
To run the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;onload&amp;gt;RunScript(script.artistslideshow)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On AppleTV if ArtistSlideshow isn&#039;t updating after the first artist, use this instead:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;onload&amp;gt;RunScript(script.artistslideshow, daemon=True)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a multiimage conrol:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window(Visualisation).Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Addon settings ==&lt;br /&gt;
&lt;br /&gt;
=== Slideshow ===&lt;br /&gt;
&#039;&#039;Local artist folder:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory that has artist images. Images must be organized in artist/extrafanart/ unless you set a different local fanart folder name in the advanced settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Priority:&#039;&#039; (default remote first)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: remote first, local first, both&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;remote first&#039;&#039;&#039; will try and download images from remote sites. if none found will use local images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;local first&#039;&#039;&#039; will use local images. if none found will try and download remote images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;both&#039;&#039;&#039; will check for local images first. if they exist the downloaded images will be placed in the same directory as the local images. if not remote images will be stored in normal cache dir.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are using local image folders you&#039;ve downloaded from other sources,  by default AS will only add images in those directories if the artist directory already exists.  If this option is set to TRUE, then AS will create new artist folders in the local artist path and save the images there.  This is useful if you are sharing images between Kodi instances on different TVs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for service information storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If this is set to True, Artist Slideshow will store all the cached information from the image sources in the same folder structure as the images.  This is useful if you are sharing images between Kodi instances on different TVs, as Artist Slideshow won&#039;t download duplicates of the same information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Include root level fanart.jpg / Include root level folder.jpg&#039;&#039; (default false for both)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have your local images organized using many popular image download addons, you might not have a couple images in the root of your artist directory that aren&#039;t included in the extrafanart folder. This option will make a copy of these two images (or fanart.png / folder.png) and place them in your extrafanart folder so they are included in your slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disable secondary and featured artist images:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to false, Artist Slideshow will show images for all artists associated with the playing song.  When set to true, Artist Slideshow will show only images for the primary artist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use transparent background when no artist found:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to true, Artist Slideshow will use a transparent background (instead of a black one), allowing the layer below to be seen. Please note that exactly what you see will be very dependent on the skin you are using and the settings you have for that skin.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Slideshow ===&lt;br /&gt;
&#039;&#039;Alternate name for local fanart folder:&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
this is a text field where you can provide an alternate name for the add-on to use to find local images. If this has text in it, the add-on will look in artist/customfolder instead of artist/extrafanart for local images.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use fallback slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images if no artwork is found for the playing artist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fallback slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used if no local or remote images can be found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use override slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images no matter what artist is playing. With this set no artist artwork will ever be downloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Override slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used intead of artist artwork. &lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&#039;&#039;Download images from fanart.tv:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv has very high quality (1080p) artwork.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Client API key&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv provides the option for individual users to have an API key. For information on the benefits that provides, please see https://fanart.tv/2015/01/personal-api-keys/ &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Download images from theaudiodb.com:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
theaudiodb.com has no more than three images per artist, and they are often duplicates of artwork from fanart.tv.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
=== Album Info ===&lt;br /&gt;
&#039;&#039;Download album info from theaudiodb.com&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from theaudiodb.com.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Download album info fromlast.fm&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Artist Bio ===&lt;br /&gt;
&#039;&#039;Preferred language for artist bio:&#039;&#039;&#039; (default: English)&amp;lt;br /&amp;gt;&lt;br /&gt;
Sets the language Kodi uses when attempting to download a bio. If no bio for that language is returned, no bio is returned (even if available in other languages).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from Kodi:&#039;&#039; (default: true)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will ask Kodi for the artist bio that was stored when the music library was last scraped.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from theaudiodb.com&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from theaudiodb.com.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Similar Artists ===&lt;br /&gt;
&#039;&#039;Download similar artists fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download a list of similar artists from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&#039;&#039;Download notification type:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: none, text notifications, custom images&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;none&#039;&#039;&#039; will surpress all notifications&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;text notifications&#039;&#039;&#039; will use the built in XBMC notification pop-up to let you know about images being downloaded for the first time and the completion status (either nothing downloaded or download complete)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;custom images&#039;&#039;&#039; let&#039;s you show an image or directory of images when artwork for an artist is being downloaded for the first time. This won&#039;t display if there are local images available to display. If you select this option you must provide the path to the directory that has the custom image or images in it (stored in &#039;&#039;&#039;custom notification images folder&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Progress images folder:&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
Must be set to a valid local path with one or more images to be displayed while first image for an artist is being downloaded&lt;br /&gt;
&lt;br /&gt;
AS replaces certain reserved characters in an artist names with an alternate character when looking for a local artist folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Platform for image store&#039;&#039;&#039; can be Windows, MacOS, or Other.  When set to Windows, the characters &amp;lt;&amp;gt;:&amp;quot;/\|?*and trailing periods are replaced with whatever is set in the settings. When set to MacOS, the character : is replaced with whatever is set in the settings.  If set to other, any characters defined by os.path.sep are replaced with whatever is set in the settings.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace illegal path characters in artist name with&#039;&#039;&#039; (default _)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any illegal characters noted above.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace trailing period in artist name with:&#039;&#039;&#039; (default BLANK)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any trailing period as noted above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Limit size of download cache:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
if enabled, the download cache will be trimmed (oldest first) to keep the size below the specified minimum. Please note that if you set the image download priority to &#039;&#039;&#039;both&#039;&#039;&#039; on the Slideshow settings, this setting has no effect, as the cache manger is disabled to protect your local artwork from being deleted.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Maximum cache size (in megabytes):&#039;&#039;&#039; (default 1024)&amp;lt;br /&amp;gt;&lt;br /&gt;
if Limit size of download cache is set to true, this allows the user to specify the maximum size of the cache&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enable debug logging:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When enabled, if you have XBMC logging set the DEBUG you will get a very verbose set of information in your log file. You should only need to activate this when troubleshooting issues.&lt;br /&gt;
&lt;br /&gt;
== Overriding Artist Info with Local Information ==&lt;br /&gt;
&lt;br /&gt;
=== Directory Structure ===&lt;br /&gt;
To override the downloaded information, you need to create another directory in the folder you defined in the settings as the Local artist folder. Your folder structure will look something like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text&amp;gt;&lt;br /&gt;
 &amp;lt;artistname&amp;gt;&lt;br /&gt;
     extrafanart&lt;br /&gt;
     override&lt;br /&gt;
         albums (folder with artist album art)&lt;br /&gt;
             albumname.jpg (any XBMC image type supported)&lt;br /&gt;
             anotheralbumname.jpg&lt;br /&gt;
         artistbio.nfo (see below for format)&lt;br /&gt;
         artistsalbum.nfo (see below for format)&lt;br /&gt;
         artistsimilar.nfo (see below for format)&lt;br /&gt;
         similar&lt;br /&gt;
             artistimage.jpg&lt;br /&gt;
             anotherartistimage.jpg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Override nfo file formats ===&lt;br /&gt;
All .nfo files are xml files (pretty simple ones) patterned after the XML files downloaded from last.fm.&lt;br /&gt;
&lt;br /&gt;
Example artistbio.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
     &amp;lt;content&amp;gt;This is the artist&#039;s bio.&amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsalbum.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;topalbums&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;albumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotheralbumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/topalbums&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsimilar.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;similarartists&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;artistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotherartistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
 &amp;lt;/similarartists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Script from Other Screens ==&lt;br /&gt;
You might want to use Artist Slideshow to display images somewhere other than on the music visualization. To do that you need to start Artist Slideshow when XBMC starts using DAEMON mode. To do that use:&lt;br /&gt;
  RunScript(script.artistslideshow, daemon=True)&lt;br /&gt;
&lt;br /&gt;
== New skin properties ==&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by the script to check if it is already running. There&#039;s no need to use this property in your skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists (from last.fm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist (from theaudiodb.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
== How to call this addon from another addon ==&lt;br /&gt;
To use this addon to provide the background for another addon, the calling addon must create a window that uses a multimage control:&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window.Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;0&amp;quot; end=&amp;quot;100&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Visible&amp;lt;/animation&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;100&amp;quot; end=&amp;quot;0&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Hidden&amp;lt;/animation&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That window must have an infolabel in which the currently playing artist is stored (suggested name is CURRENTARTIST) as well as one for the song title (suggested name is CURRENTTILE). It is the responsibility of the calling addon to change those infolabels when the artist/song changes.&lt;br /&gt;
&lt;br /&gt;
=== Calling the addon ===&lt;br /&gt;
Artist Slideshow does not exit after being called. It continues to run to check for changes in the artist infolabel. Becasue of that, the calling addon will have to create another thread for Artist Slideshow. The calling addon needs to import the python theading module for this to work. &lt;br /&gt;
&lt;br /&gt;
 def runArtistSlideshow(self):&lt;br /&gt;
     #startup artistslideshow&lt;br /&gt;
     xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;, &amp;quot;True&amp;quot;)&lt;br /&gt;
     #assumes addon is using suggested infolabel name of CURRENTARTIST and CURRENTTITLE&lt;br /&gt;
     artistslideshow = &amp;quot;RunScript(script.artistslideshow,windowid=%s&amp;amp;artistfield=%s&amp;amp;titlefield=%s&amp;amp;albumfield=%s&amp;amp;mbidfield=%s)&amp;quot;&lt;br /&gt;
         % (xbmcgui.getCurrentWindowId(), &amp;quot;CURRENTARTIST&amp;quot;, &amp;quot;CURRENTTITLE&amp;quot;, &amp;quot;CURRENTALBUM&amp;quot;, &amp;quot;CURRENTMBID&amp;quot;)&lt;br /&gt;
     xbmc.executebuiltin(artistslideshow)&lt;br /&gt;
 &lt;br /&gt;
 self.thread = threading.Thread(target=self.runArtistSlideshow)&lt;br /&gt;
 self.thread.setDaemon(True)&lt;br /&gt;
 self.thread.start()&lt;br /&gt;
&lt;br /&gt;
When calling Artist Slideshow, only artistfield and titlefield (and their corresponding information stored in the skin) are required. It would be helpful to have albumfield, as it makes it easier to lookup the Musicbrainz ID. If you happen to have the MusicBrainz ID, you can pass that as well.&lt;br /&gt;
&lt;br /&gt;
Note that the line wrap in artistslideshow = is there just for presentation purposes. If you copy and paste the code exactly as is you will get a python error. The suggestion is for the addon to spawn this thread right after it spawns the window.&lt;br /&gt;
&lt;br /&gt;
=== Exiting the addon ===&lt;br /&gt;
When the calling addon is preparing to exit, it must tell Artist Slideshow to stop and wait until it has. This logic should be added *before* the addon&#039;s window is destroyed. Failure to include this step will likely cause XBMC to crash.&lt;br /&gt;
&lt;br /&gt;
 #tell ArtistSlideshow to exit&lt;br /&gt;
 xbmcgui.Window(xbmcgui.getCurrentWindowId()).clearProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;)&lt;br /&gt;
 #wait until ArtistSlideshow exits&lt;br /&gt;
 while (not xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty(&amp;quot;ArtistSlideshow.CleanupComplete&amp;quot;) == &amp;quot;True&amp;quot;):&lt;br /&gt;
     time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
=== Additional script/skin properties available ===&lt;br /&gt;
 Window.Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists from last.fm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist from theaudiodb.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by Artist Slideshow to check if it is already running. There&#039;s no need to use this property in the calling addon&#039;s skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ExternalCall)&lt;br /&gt;
An external addon needs to set this to True so that Artist Slideshow will run properly when called by an external script. This property should be cleared to tell ArtistSlideshow to stop running.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.CleanupComplete)&lt;br /&gt;
This one is used internally by Artist Slideshow to tell an external script that ArtistSlideshow is done running and is exiting.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
===Using Artist Slideshow with Fanart.tv===&lt;br /&gt;
In order to download images from fanart.tv, AS must have the MusicBrainz ID for the playing artist.  The easiest way to get that information is to tag your music using MusicBrainz Picard.  Once you have done that rescan your music library to import the new information into Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Removing Unwanted Images ===&lt;br /&gt;
Every artist&#039;s directory (whether your local one or the one in the cache directory) will have a file named _imagedb.nfo.  Once an image has been downloaded, the image name will be stored in that file.  If you delete an image, it will not be downloaded again unless you delete the image name from _imagedb.nfo file.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with a Visualization ===&lt;br /&gt;
If you want to see artist images and a visualization, make sure the skin is loading the Artist Slideshow images first (i.e at the top of the XML file). That will ensure the artist image is the furtherest back layer. If you choose to use a visualization, please select one with a significant amount of transparent area or you may not see much of anything. For any other skin, please contact the skin developer for a clarification on how visualizations interact with Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with AppleTV ===&lt;br /&gt;
On AppleTV the PAPlayer sometimes stops after each song and restarts at the beginning of a new one. That, by default, causes Artist Slideshow to stop. Once that happens, artist background images no longer update. Please see [[#Changes_to_MusicVisualisation.xml|Changes to MusicVisualisation.xml above]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Getting help ==&lt;br /&gt;
If you need assistance using Artist Slideshow, integrating it a skin, or calling it using another addon, please see the support thread on the XBMC forums.&lt;br /&gt;
: http://forum.kodi.tv/showthread.php?t=124880&lt;br /&gt;
&lt;br /&gt;
== Beta Testing ==&lt;br /&gt;
If you are interested in beta testing new versions of this add on (or just like being on the bleeding edge of up to date), you can install beta versions (Helix or later, there will be no more updates for Gotham or earlier) from [http://raw.github.com/pkscout/repository.beta.pkscout/helix/repository.beta.pkscout-1.1.0.zip pkscout&#039;s Add On Beta Channel]. You can also monitor the support thread, as links to particular beta releases will be available there as well.&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139641</id>
		<title>Add-on:Artist Slideshow</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139641"/>
		<updated>2018-07-10T13:01:59Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Artist Slideshow&lt;br /&gt;
|provider-name=pkscout,ronie&lt;br /&gt;
|ID=script.artistslideshow&lt;br /&gt;
|latest-version=2.1.2&lt;br /&gt;
|extension point=xbmc.python.script&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Download images and additional info of the currently playing artist&lt;br /&gt;
|Description=Addon to download images and additional information from fanart.tv and theaudiodb.com of the currently playing artist. The images, along with local artists&#039; images, and info can be used by the skin to create a slideshow for the artist being listened to.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?t=124880&lt;br /&gt;
|Website=http://wiki.xbmc.org/index.php?title=Add-on:Artist_Slideshow&lt;br /&gt;
|Source=https://github.com/pkscout/script.artistslideshow&lt;br /&gt;
|Email=artistslideshow.xbmc@gmail.com&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.artistslideshow/icon.png}}&lt;br /&gt;
== Donations ==&lt;br /&gt;
Donations are &#039;&#039;&#039;not&#039;&#039;&#039; accepted for Artist Slideshow.  If you find this addon useful, please consider instead supporting the services that make Artist Slideshow possible.&lt;br /&gt;
* fanart.tv: https://fanart.tv/contribute/&lt;br /&gt;
* theaudiodb: http://theaudiodb.com (look for the &amp;quot;donate with PayPal button)&lt;br /&gt;
* musicbrainz: https://metabrainz.org/donate&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* displays slideshow as background for music visualization (must use a compatible skin or update skin using the instructions below)&lt;br /&gt;
** option to have artist images downloaded and/or use a local directory of artist images&lt;br /&gt;
** option for a fallback slideshow if no local or remote images are found&lt;br /&gt;
** option to have a single slideshow displayed regardless of artist playing&lt;br /&gt;
* options to download artwork from fanart.tv and theaudiodb.com to display as background for music visualization&lt;br /&gt;
** option to download artist bio and other additional information from Kodi&#039;s internal database, theaudiodb.com, or last.fm (skin must support display of this information)&lt;br /&gt;
*** support for overriding the artist bio, discography, and similar artists list with local information&lt;br /&gt;
** option to limit size of download cache&lt;br /&gt;
** option to display notification during download of first image for an artist with option to provide a local image (or images) to use instead of default Kodi notification&lt;br /&gt;
** option to display notification when downloads are complete (or no images found for download)&lt;br /&gt;
** ability to exclude images from being downloaded (see Tips and Tricks below)&lt;br /&gt;
* support for multiple artists for a single song (as passed by Kodi)&lt;br /&gt;
** also supports iTunes/Amazon standard of song name (feat. artist 2) in title MP3 tag&lt;br /&gt;
* support for internet streams that put the artist name in the Kodi title field&lt;br /&gt;
* support for other addons using Artist Slideshow to provide the background&lt;br /&gt;
* support for an alternate name for the folder containing the images (i.e. something instead of extrafanart)&lt;br /&gt;
&lt;br /&gt;
== How to use this addon ==&lt;br /&gt;
&lt;br /&gt;
=== Find a Compatible Skin ===&lt;br /&gt;
There are a number of skins that support Artist Slideshow, but keeping a running list of them has proved too much work. I&#039;d suggest visiting the Kodi forums and see if the skin you want to use supports Artist Slideshow. I do have a modified version of the default Confluence theme (Kodi 16 and earlier) and Estuary theme (Kodi 17 and later) that include support for Artist Slideshow. To use that skin you will need to download and install my skin repo ([https://github.com/pkscout/repository.skins.pkscout/raw/gotham/repository.skins.pkscout-1.0.1.zip Gotham] or [https://github.com/pkscout/repository.skins.pkscout/raw/helix/repository.skins.pkscout-1.1.0.zip Helix or later]) and then install the skin from there.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with the default Confluence Skin ===&lt;br /&gt;
Depending on the version of Kodi you have and the operating system on which you are running it, the files you need to modify will be in different locations.  If you don&#039;t know where skin files are stored, then this is not the option for you.  Please see the section above for information on downloading and installing a skin that supports Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Change Default Skin Files&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is probably the easiest way, but anytime you upgrade or reinstall XBMC you will have to redo these modifications. Go to the Kodi installation root folder (see this wiki page under special://xbmc for the path for your operating system). Then go to addons --&amp;gt; skin.confluence. Quit Kodi, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Create Custom Skin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bit more complicated but will keep your modifications intact across upgrades. Go to the Kodi installation folder, enter the addon directory and find the skin.confluence folder. Make a copy of it and move it to your user addon directory.  Rename the directory to skin.confluence.mod. In that directory open the file called addon.xml. Change the third line to read id=&amp;quot;skin.confluence.mod&amp;quot; and then launch (or relaunch Kodi). Go to SYSTEM --&amp;gt; APPEARANCE --&amp;gt; SKIN and switch to the modified skin. When you do that you will lose all your current skin settings, so you might want to write them down before changing. Quit Kodi again, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
=== Changes to MusicVisualisation.xml ===&lt;br /&gt;
To run the script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;onload&amp;gt;RunScript(script.artistslideshow)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On AppleTV if ArtistSlideshow isn&#039;t updating after the first artist, use this instead:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;onload&amp;gt;RunScript(script.artistslideshow, daemon=True)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a multiimage conrol:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window(Visualisation).Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Addon settings ==&lt;br /&gt;
&lt;br /&gt;
=== Slideshow ===&lt;br /&gt;
&#039;&#039;Local artist folder:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory that has artist images. Images must be organized in artist/extrafanart/ unless you set a different local fanart folder name in the advanced settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Priority:&#039;&#039; (default remote first)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: remote first, local first, both&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;remote first&#039;&#039;&#039; will try and download images from remote sites. if none found will use local images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;local first&#039;&#039;&#039; will use local images. if none found will try and download remote images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;both&#039;&#039;&#039; will check for local images first. if they exist the downloaded images will be placed in the same directory as the local images. if not remote images will be stored in normal cache dir.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are using local image folders you&#039;ve downloaded from other sources,  by default AS will only add images in those directories if the artist directory already exists.  If this option is set to TRUE, then AS will create new artist folders in the local artist path and save the images there.  This is useful if you are sharing images between Kodi instances on different TVs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for service information storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If this is set to True, Artist Slideshow will store all the cached information from the image sources in the same folder structure as the images.  This is useful if you are sharing images between Kodi instances on different TVs, as Artist Slideshow won&#039;t download duplicates of the same information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Include root level fanart.jpg / Include root level folder.jpg&#039;&#039; (default false for both)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have your local images organized using many popular image download addons, you might not have a couple images in the root of your artist directory that aren&#039;t included in the extrafanart folder. This option will make a copy of these two images (or fanart.png / folder.png) and place them in your extrafanart folder so they are included in your slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disable secondary and featured artist images:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to false, Artist Slideshow will show images for all artists associated with the playing song.  When set to true, Artist Slideshow will show only images for the primary artist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use transparent background when no artist found:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to true, Artist Slideshow will use a transparent background (instead of a black one), allowing the layer below to be seen. Please note that exactly what you see will be very dependent on the skin you are using and the settings you have for that skin.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Slideshow ===&lt;br /&gt;
&#039;&#039;Alternate name for local fanart folder:&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
this is a text field where you can provide an alternate name for the add-on to use to find local images. If this has text in it, the add-on will look in artist/customfolder instead of artist/extrafanart for local images.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use fallback slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images if no artwork is found for the playing artist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fallback slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used if no local or remote images can be found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use override slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images no matter what artist is playing. With this set no artist artwork will ever be downloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Override slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used intead of artist artwork. &lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&#039;&#039;Download images from fanart.tv:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv has very high quality (1080p) artwork.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Client API key&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv provides the option for individual users to have an API key. For information on the benefits that provides, please see https://fanart.tv/2015/01/personal-api-keys/ &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Download images from theaudiodb.com:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
theaudiodb.com has no more than three images per artist, and they are often duplicates of artwork from fanart.tv.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
=== Album Info ===&lt;br /&gt;
&#039;&#039;Download album info from theaudiodb.com&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from theaudiodb.com.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Download album info fromlast.fm&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Artist Bio ===&lt;br /&gt;
&#039;&#039;Preferred language for artist bio:&#039;&#039;&#039; (default: English)&amp;lt;br /&amp;gt;&lt;br /&gt;
Sets the language Kodi uses when attempting to download a bio. If no bio for that language is returned, no bio is returned (even if available in other languages).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from Kodi:&#039;&#039; (default: true)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will ask Kodi for the artist bio that was stored when the music library was last scraped.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from theaudiodb.com&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from theaudiodb.com.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Similar Artists ===&lt;br /&gt;
&#039;&#039;Download similar artists fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download a list of similar artists from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&#039;&#039;Download notification type:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: none, text notifications, custom images&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;none&#039;&#039;&#039; will surpress all notifications&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;text notifications&#039;&#039;&#039; will use the built in XBMC notification pop-up to let you know about images being downloaded for the first time and the completion status (either nothing downloaded or download complete)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;custom images&#039;&#039;&#039; let&#039;s you show an image or directory of images when artwork for an artist is being downloaded for the first time. This won&#039;t display if there are local images available to display. If you select this option you must provide the path to the directory that has the custom image or images in it (stored in &#039;&#039;&#039;custom notification images folder&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Progress images folder:&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
Must be set to a valid local path with one or more images to be displayed while first image for an artist is being downloaded&lt;br /&gt;
&lt;br /&gt;
AS replaces certain reserved characters in an artist names with an alternate character when looking for a local artist folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Platform for image store&#039;&#039;&#039; can be Windows, MacOS, or Other.  When set to Windows, the characters &amp;lt;&amp;gt;:&amp;quot;/\|?*and trailing periods are replaced with whatever is set in the settings. When set to MacOS, the character : is replaced with whatever is set in the settings.  If set to other, any characters defined by os.path.sep are replaced with whatever is set in the settings.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace illegal path characters in artist name with&#039;&#039;&#039; (default _)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any illegal characters noted above.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace trailing period in artist name with:&#039;&#039;&#039; (default BLANK)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any trailing period as noted above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Limit size of download cache:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
if enabled, the download cache will be trimmed (oldest first) to keep the size below the specified minimum. Please note that if you set the image download priority to &#039;&#039;&#039;both&#039;&#039;&#039; on the Slideshow settings, this setting has no effect, as the cache manger is disabled to protect your local artwork from being deleted.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Maximum cache size (in megabytes):&#039;&#039;&#039; (default 1024)&amp;lt;br /&amp;gt;&lt;br /&gt;
if Limit size of download cache is set to true, this allows the user to specify the maximum size of the cache&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enable debug logging:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When enabled, if you have XBMC logging set the DEBUG you will get a very verbose set of information in your log file. You should only need to activate this when troubleshooting issues.&lt;br /&gt;
&lt;br /&gt;
== Overriding Artist Info with Local Information ==&lt;br /&gt;
&lt;br /&gt;
=== Directory Structure ===&lt;br /&gt;
To override the downloaded information, you need to create another directory in the folder you defined in the settings as the Local artist folder. Your folder structure will look something like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;artistname&amp;gt;&lt;br /&gt;
     extrafanart&lt;br /&gt;
     override&lt;br /&gt;
         albums (folder with artist album art)&lt;br /&gt;
             albumname.jpg (any XBMC image type supported)&lt;br /&gt;
             anotheralbumname.jpg&lt;br /&gt;
         artistbio.nfo (see below for format)&lt;br /&gt;
         artistsalbum.nfo (see below for format)&lt;br /&gt;
         artistsimilar.nfo (see below for format)&lt;br /&gt;
         similar&lt;br /&gt;
             artistimage.jpg&lt;br /&gt;
             anotherartistimage.jpg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Override nfo file formats ===&lt;br /&gt;
All .nfo files are xml files (pretty simple ones) patterned after the XML files downloaded from last.fm.&lt;br /&gt;
&lt;br /&gt;
Example artistbio.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
     &amp;lt;content&amp;gt;This is the artist&#039;s bio.&amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsalbum.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;topalbums&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;albumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotheralbumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/topalbums&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsimilar.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;similarartists&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;artistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotherartistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
 &amp;lt;/similarartists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Script from Other Screens ==&lt;br /&gt;
You might want to use Artist Slideshow to display images somewhere other than on the music visualization. To do that you need to start Artist Slideshow when XBMC starts using DAEMON mode. To do that use:&lt;br /&gt;
  RunScript(script.artistslideshow, daemon=True)&lt;br /&gt;
&lt;br /&gt;
== New skin properties ==&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by the script to check if it is already running. There&#039;s no need to use this property in your skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists (from last.fm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist (from theaudiodb.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
== How to call this addon from another addon ==&lt;br /&gt;
To use this addon to provide the background for another addon, the calling addon must create a window that uses a multimage control:&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window.Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;0&amp;quot; end=&amp;quot;100&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Visible&amp;lt;/animation&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;100&amp;quot; end=&amp;quot;0&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Hidden&amp;lt;/animation&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That window must have an infolabel in which the currently playing artist is stored (suggested name is CURRENTARTIST) as well as one for the song title (suggested name is CURRENTTILE). It is the responsibility of the calling addon to change those infolabels when the artist/song changes.&lt;br /&gt;
&lt;br /&gt;
=== Calling the addon ===&lt;br /&gt;
Artist Slideshow does not exit after being called. It continues to run to check for changes in the artist infolabel. Becasue of that, the calling addon will have to create another thread for Artist Slideshow. The calling addon needs to import the python theading module for this to work. &lt;br /&gt;
&lt;br /&gt;
 def runArtistSlideshow(self):&lt;br /&gt;
     #startup artistslideshow&lt;br /&gt;
     xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;, &amp;quot;True&amp;quot;)&lt;br /&gt;
     #assumes addon is using suggested infolabel name of CURRENTARTIST and CURRENTTITLE&lt;br /&gt;
     artistslideshow = &amp;quot;RunScript(script.artistslideshow,windowid=%s&amp;amp;artistfield=%s&amp;amp;titlefield=%s&amp;amp;albumfield=%s&amp;amp;mbidfield=%s)&amp;quot;&lt;br /&gt;
         % (xbmcgui.getCurrentWindowId(), &amp;quot;CURRENTARTIST&amp;quot;, &amp;quot;CURRENTTITLE&amp;quot;, &amp;quot;CURRENTALBUM&amp;quot;, &amp;quot;CURRENTMBID&amp;quot;)&lt;br /&gt;
     xbmc.executebuiltin(artistslideshow)&lt;br /&gt;
 &lt;br /&gt;
 self.thread = threading.Thread(target=self.runArtistSlideshow)&lt;br /&gt;
 self.thread.setDaemon(True)&lt;br /&gt;
 self.thread.start()&lt;br /&gt;
&lt;br /&gt;
When calling Artist Slideshow, only artistfield and titlefield (and their corresponding information stored in the skin) are required. It would be helpful to have albumfield, as it makes it easier to lookup the Musicbrainz ID. If you happen to have the MusicBrainz ID, you can pass that as well.&lt;br /&gt;
&lt;br /&gt;
Note that the line wrap in artistslideshow = is there just for presentation purposes. If you copy and paste the code exactly as is you will get a python error. The suggestion is for the addon to spawn this thread right after it spawns the window.&lt;br /&gt;
&lt;br /&gt;
=== Exiting the addon ===&lt;br /&gt;
When the calling addon is preparing to exit, it must tell Artist Slideshow to stop and wait until it has. This logic should be added *before* the addon&#039;s window is destroyed. Failure to include this step will likely cause XBMC to crash.&lt;br /&gt;
&lt;br /&gt;
 #tell ArtistSlideshow to exit&lt;br /&gt;
 xbmcgui.Window(xbmcgui.getCurrentWindowId()).clearProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;)&lt;br /&gt;
 #wait until ArtistSlideshow exits&lt;br /&gt;
 while (not xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty(&amp;quot;ArtistSlideshow.CleanupComplete&amp;quot;) == &amp;quot;True&amp;quot;):&lt;br /&gt;
     time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
=== Additional script/skin properties available ===&lt;br /&gt;
 Window.Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists from last.fm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist from theaudiodb.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by Artist Slideshow to check if it is already running. There&#039;s no need to use this property in the calling addon&#039;s skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ExternalCall)&lt;br /&gt;
An external addon needs to set this to True so that Artist Slideshow will run properly when called by an external script. This property should be cleared to tell ArtistSlideshow to stop running.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.CleanupComplete)&lt;br /&gt;
This one is used internally by Artist Slideshow to tell an external script that ArtistSlideshow is done running and is exiting.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
===Using Artist Slideshow with Fanart.tv===&lt;br /&gt;
In order to download images from fanart.tv, AS must have the MusicBrainz ID for the playing artist.  The easiest way to get that information is to tag your music using MusicBrainz Picard.  Once you have done that rescan your music library to import the new information into Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Removing Unwanted Images ===&lt;br /&gt;
Every artist&#039;s directory (whether your local one or the one in the cache directory) will have a file named _imagedb.nfo.  Once an image has been downloaded, the image name will be stored in that file.  If you delete an image, it will not be downloaded again unless you delete the image name from _imagedb.nfo file.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with a Visualization ===&lt;br /&gt;
If you want to see artist images and a visualization, make sure the skin is loading the Artist Slideshow images first (i.e at the top of the XML file). That will ensure the artist image is the furtherest back layer. If you choose to use a visualization, please select one with a significant amount of transparent area or you may not see much of anything. For any other skin, please contact the skin developer for a clarification on how visualizations interact with Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with AppleTV ===&lt;br /&gt;
On AppleTV the PAPlayer sometimes stops after each song and restarts at the beginning of a new one. That, by default, causes Artist Slideshow to stop. Once that happens, artist background images no longer update. Please see [[#Changes_to_MusicVisualisation.xml|Changes to MusicVisualisation.xml above]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Getting help ==&lt;br /&gt;
If you need assistance using Artist Slideshow, integrating it a skin, or calling it using another addon, please see the support thread on the XBMC forums.&lt;br /&gt;
: http://forum.kodi.tv/showthread.php?t=124880&lt;br /&gt;
&lt;br /&gt;
== Beta Testing ==&lt;br /&gt;
If you are interested in beta testing new versions of this add on (or just like being on the bleeding edge of up to date), you can install beta versions (Helix or later, there will be no more updates for Gotham or earlier) from [http://raw.github.com/pkscout/repository.beta.pkscout/helix/repository.beta.pkscout-1.1.0.zip pkscout&#039;s Add On Beta Channel]. You can also monitor the support thread, as links to particular beta releases will be available there as well.&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139640</id>
		<title>Add-on:Artist Slideshow</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Artist_Slideshow&amp;diff=139640"/>
		<updated>2018-07-10T13:01:05Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* Changes to MusicVisualisation.xml */ syntaxhighligher addition&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Artist Slideshow&lt;br /&gt;
|provider-name=pkscout,ronie&lt;br /&gt;
|ID=script.artistslideshow&lt;br /&gt;
|latest-version=2.1.2&lt;br /&gt;
|extension point=xbmc.python.script&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Download images and additional info of the currently playing artist&lt;br /&gt;
|Description=Addon to download images and additional information from fanart.tv and theaudiodb.com of the currently playing artist. The images, along with local artists&#039; images, and info can be used by the skin to create a slideshow for the artist being listened to.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?t=124880&lt;br /&gt;
|Website=http://wiki.xbmc.org/index.php?title=Add-on:Artist_Slideshow&lt;br /&gt;
|Source=https://github.com/pkscout/script.artistslideshow&lt;br /&gt;
|Email=artistslideshow.xbmc@gmail.com&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.artistslideshow/icon.png}}&lt;br /&gt;
== Donations ==&lt;br /&gt;
Donations are &#039;&#039;&#039;not&#039;&#039;&#039; accepted for Artist Slideshow.  If you find this addon useful, please consider instead supporting the services that make Artist Slideshow possible.&lt;br /&gt;
* fanart.tv: https://fanart.tv/contribute/&lt;br /&gt;
* theaudiodb: http://theaudiodb.com (look for the &amp;quot;donate with PayPal button)&lt;br /&gt;
* musicbrainz: https://metabrainz.org/donate&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* displays slideshow as background for music visualization (must use a compatible skin or update skin using the instructions below)&lt;br /&gt;
** option to have artist images downloaded and/or use a local directory of artist images&lt;br /&gt;
** option for a fallback slideshow if no local or remote images are found&lt;br /&gt;
** option to have a single slideshow displayed regardless of artist playing&lt;br /&gt;
* options to download artwork from fanart.tv and theaudiodb.com to display as background for music visualization&lt;br /&gt;
** option to download artist bio and other additional information from Kodi&#039;s internal database, theaudiodb.com, or last.fm (skin must support display of this information)&lt;br /&gt;
*** support for overriding the artist bio, discography, and similar artists list with local information&lt;br /&gt;
** option to limit size of download cache&lt;br /&gt;
** option to display notification during download of first image for an artist with option to provide a local image (or images) to use instead of default Kodi notification&lt;br /&gt;
** option to display notification when downloads are complete (or no images found for download)&lt;br /&gt;
** ability to exclude images from being downloaded (see Tips and Tricks below)&lt;br /&gt;
* support for multiple artists for a single song (as passed by Kodi)&lt;br /&gt;
** also supports iTunes/Amazon standard of song name (feat. artist 2) in title MP3 tag&lt;br /&gt;
* support for internet streams that put the artist name in the Kodi title field&lt;br /&gt;
* support for other addons using Artist Slideshow to provide the background&lt;br /&gt;
* support for an alternate name for the folder containing the images (i.e. something instead of extrafanart)&lt;br /&gt;
&lt;br /&gt;
== How to use this addon ==&lt;br /&gt;
&lt;br /&gt;
=== Find a Compatible Skin ===&lt;br /&gt;
There are a number of skins that support Artist Slideshow, but keeping a running list of them has proved too much work. I&#039;d suggest visiting the Kodi forums and see if the skin you want to use supports Artist Slideshow. I do have a modified version of the default Confluence theme (Kodi 16 and earlier) and Estuary theme (Kodi 17 and later) that include support for Artist Slideshow. To use that skin you will need to download and install my skin repo ([https://github.com/pkscout/repository.skins.pkscout/raw/gotham/repository.skins.pkscout-1.0.1.zip Gotham] or [https://github.com/pkscout/repository.skins.pkscout/raw/helix/repository.skins.pkscout-1.1.0.zip Helix or later]) and then install the skin from there.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with the default Confluence Skin ===&lt;br /&gt;
Depending on the version of Kodi you have and the operating system on which you are running it, the files you need to modify will be in different locations.  If you don&#039;t know where skin files are stored, then this is not the option for you.  Please see the section above for information on downloading and installing a skin that supports Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Change Default Skin Files&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is probably the easiest way, but anytime you upgrade or reinstall XBMC you will have to redo these modifications. Go to the Kodi installation root folder (see this wiki page under special://xbmc for the path for your operating system). Then go to addons --&amp;gt; skin.confluence. Quit Kodi, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Create Custom Skin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bit more complicated but will keep your modifications intact across upgrades. Go to the Kodi installation folder, enter the addon directory and find the skin.confluence folder. Make a copy of it and move it to your user addon directory.  Rename the directory to skin.confluence.mod. In that directory open the file called addon.xml. Change the third line to read id=&amp;quot;skin.confluence.mod&amp;quot; and then launch (or relaunch Kodi). Go to SYSTEM --&amp;gt; APPEARANCE --&amp;gt; SKIN and switch to the modified skin. When you do that you will lose all your current skin settings, so you might want to write them down before changing. Quit Kodi again, modify the appropriate files (see below in the Changes to MusicVisualization.xml section), and then start up Kodi again.&lt;br /&gt;
&lt;br /&gt;
=== Changes to MusicVisualisation.xml ===&lt;br /&gt;
To run the script:&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;onload&amp;gt;RunScript(script.artistslideshow)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On AppleTV if ArtistSlideshow isn&#039;t updating after the first artist, use this instead:&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;onload&amp;gt;RunScript(script.artistslideshow, daemon=True)&amp;lt;/onload&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a multiimage conrol:&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=xml&amp;gt;&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window(Visualisation).Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Addon settings ==&lt;br /&gt;
&lt;br /&gt;
=== Slideshow ===&lt;br /&gt;
&#039;&#039;Local artist folder:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory that has artist images. Images must be organized in artist/extrafanart/ unless you set a different local fanart folder name in the advanced settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Priority:&#039;&#039; (default remote first)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: remote first, local first, both&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;remote first&#039;&#039;&#039; will try and download images from remote sites. if none found will use local images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;local first&#039;&#039;&#039; will use local images. if none found will try and download remote images. if none found will use fallback slideshow&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;both&#039;&#039;&#039; will check for local images first. if they exist the downloaded images will be placed in the same directory as the local images. if not remote images will be stored in normal cache dir.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are using local image folders you&#039;ve downloaded from other sources,  by default AS will only add images in those directories if the artist directory already exists.  If this option is set to TRUE, then AS will create new artist folders in the local artist path and save the images there.  This is useful if you are sharing images between Kodi instances on different TVs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Always use local artist path for service information storage:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If this is set to True, Artist Slideshow will store all the cached information from the image sources in the same folder structure as the images.  This is useful if you are sharing images between Kodi instances on different TVs, as Artist Slideshow won&#039;t download duplicates of the same information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Include root level fanart.jpg / Include root level folder.jpg&#039;&#039; (default false for both)&amp;lt;br /&amp;gt;&lt;br /&gt;
If you have your local images organized using many popular image download addons, you might not have a couple images in the root of your artist directory that aren&#039;t included in the extrafanart folder. This option will make a copy of these two images (or fanart.png / folder.png) and place them in your extrafanart folder so they are included in your slideshow.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disable secondary and featured artist images:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to false, Artist Slideshow will show images for all artists associated with the playing song.  When set to true, Artist Slideshow will show only images for the primary artist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use transparent background when no artist found:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When set to true, Artist Slideshow will use a transparent background (instead of a black one), allowing the layer below to be seen. Please note that exactly what you see will be very dependent on the skin you are using and the settings you have for that skin.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Slideshow ===&lt;br /&gt;
&#039;&#039;Alternate name for local fanart folder:&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
this is a text field where you can provide an alternate name for the add-on to use to find local images. If this has text in it, the add-on will look in artist/customfolder instead of artist/extrafanart for local images.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use fallback slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images if no artwork is found for the playing artist&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Fallback slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used if no local or remote images can be found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Use override slideshow&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Tells Kodi to use this folder of images no matter what artist is playing. With this set no artist artwork will ever be downloaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Override slideshow folder:&#039;&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
path to a directory of images that should be used intead of artist artwork. &lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&#039;&#039;Download images from fanart.tv:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv has very high quality (1080p) artwork.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Client API key&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
fanart.tv provides the option for individual users to have an API key. For information on the benefits that provides, please see https://fanart.tv/2015/01/personal-api-keys/ &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Download images from theaudiodb.com:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
theaudiodb.com has no more than three images per artist, and they are often duplicates of artwork from fanart.tv.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Download all images regardless of resolution:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads images even if they are not in 16x9 aspect ratio.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;I donate to this service:&#039;&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Set this to true if you donate money to fanart.tv.  This will provide more frequent updates of images. Please don&#039;t be an ass and enable this without actually donating.  We&#039;ve already lost one image source because of funding issues.  We don&#039;t need to lose any more.&lt;br /&gt;
&lt;br /&gt;
=== Album Info ===&lt;br /&gt;
&#039;&#039;Download album info from theaudiodb.com&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from theaudiodb.com.  To use this service, you must have the MusicBrainz Artist ID tag in your music files and have that scanned into your Kodi library.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Download album info fromlast.fm&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
Downloads the artist&#039;s discography from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Artist Bio ===&lt;br /&gt;
&#039;&#039;Preferred language for artist bio:&#039;&#039;&#039; (default: English)&amp;lt;br /&amp;gt;&lt;br /&gt;
Sets the language Kodi uses when attempting to download a bio. If no bio for that language is returned, no bio is returned (even if available in other languages).&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from Kodi:&#039;&#039; (default: true)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will ask Kodi for the artist bio that was stored when the music library was last scraped.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio from theaudiodb.com&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from theaudiodb.com.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;Get artist bio fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download the artist bio matching the selected language from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Similar Artists ===&lt;br /&gt;
&#039;&#039;Download similar artists fromlast.fm&#039;&#039; (default: false)&amp;lt;br /&amp;gt;&lt;br /&gt;
If selected, AS will download a list of similar artists from last.fm.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Priority&#039;&#039;&#039; (range 1 - 10, default 5)&amp;lt;br /&amp;gt;&lt;br /&gt;
If multiple services are enabled, the service with priority 1 will be used first, and the one with priority 10 will be used last.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&#039;&#039;Download notification type:&#039;&#039; (default none)&amp;lt;br /&amp;gt;&lt;br /&gt;
three options: none, text notifications, custom images&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;none&#039;&#039;&#039; will surpress all notifications&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;text notifications&#039;&#039;&#039; will use the built in XBMC notification pop-up to let you know about images being downloaded for the first time and the completion status (either nothing downloaded or download complete)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;custom images&#039;&#039;&#039; let&#039;s you show an image or directory of images when artwork for an artist is being downloaded for the first time. This won&#039;t display if there are local images available to display. If you select this option you must provide the path to the directory that has the custom image or images in it (stored in &#039;&#039;&#039;custom notification images folder&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Progress images folder:&#039;&#039;&#039; (default empty)&amp;lt;br /&amp;gt;&lt;br /&gt;
Must be set to a valid local path with one or more images to be displayed while first image for an artist is being downloaded&lt;br /&gt;
&lt;br /&gt;
AS replaces certain reserved characters in an artist names with an alternate character when looking for a local artist folder.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Platform for image store&#039;&#039;&#039; can be Windows, MacOS, or Other.  When set to Windows, the characters &amp;lt;&amp;gt;:&amp;quot;/\|?*and trailing periods are replaced with whatever is set in the settings. When set to MacOS, the character : is replaced with whatever is set in the settings.  If set to other, any characters defined by os.path.sep are replaced with whatever is set in the settings.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace illegal path characters in artist name with&#039;&#039;&#039; (default _)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any illegal characters noted above.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Replace trailing period in artist name with:&#039;&#039;&#039; (default BLANK)&amp;lt;br /&amp;gt;&lt;br /&gt;
This character replaces any trailing period as noted above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Limit size of download cache:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
if enabled, the download cache will be trimmed (oldest first) to keep the size below the specified minimum. Please note that if you set the image download priority to &#039;&#039;&#039;both&#039;&#039;&#039; on the Slideshow settings, this setting has no effect, as the cache manger is disabled to protect your local artwork from being deleted.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Maximum cache size (in megabytes):&#039;&#039;&#039; (default 1024)&amp;lt;br /&amp;gt;&lt;br /&gt;
if Limit size of download cache is set to true, this allows the user to specify the maximum size of the cache&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Enable debug logging:&#039;&#039; (default false)&amp;lt;br /&amp;gt;&lt;br /&gt;
When enabled, if you have XBMC logging set the DEBUG you will get a very verbose set of information in your log file. You should only need to activate this when troubleshooting issues.&lt;br /&gt;
&lt;br /&gt;
== Overriding Artist Info with Local Information ==&lt;br /&gt;
&lt;br /&gt;
=== Directory Structure ===&lt;br /&gt;
To override the downloaded information, you need to create another directory in the folder you defined in the settings as the Local artist folder. Your folder structure will look something like this:&lt;br /&gt;
 &amp;lt;artistname&amp;gt;&lt;br /&gt;
     extrafanart&lt;br /&gt;
     override&lt;br /&gt;
         albums (folder with artist album art)&lt;br /&gt;
             albumname.jpg (any XBMC image type supported)&lt;br /&gt;
             anotheralbumname.jpg&lt;br /&gt;
         artistbio.nfo (see below for format)&lt;br /&gt;
         artistsalbum.nfo (see below for format)&lt;br /&gt;
         artistsimilar.nfo (see below for format)&lt;br /&gt;
         similar&lt;br /&gt;
             artistimage.jpg&lt;br /&gt;
             anotherartistimage.jpg&lt;br /&gt;
&lt;br /&gt;
=== Override nfo file formats ===&lt;br /&gt;
All .nfo files are xml files (pretty simple ones) patterned after the XML files downloaded from last.fm.&lt;br /&gt;
&lt;br /&gt;
Example artistbio.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;artist&amp;gt;&lt;br /&gt;
     &amp;lt;content&amp;gt;This is the artist&#039;s bio.&amp;lt;/content&amp;gt;&lt;br /&gt;
 &amp;lt;/artist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsalbum.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;topalbums&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;albumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
     &amp;lt;album&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Album&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotheralbumname.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/album&amp;gt;&lt;br /&gt;
 &amp;lt;/topalbums&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example artistsimilar.nfo&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;similarartists&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Some Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;artistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
     &amp;lt;artist&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;Another Similar Artist&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;image&amp;gt;anotherartistimage.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;/artist&amp;gt;&lt;br /&gt;
 &amp;lt;/similarartists&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing Script from Other Screens ==&lt;br /&gt;
You might want to use Artist Slideshow to display images somewhere other than on the music visualization. To do that you need to start Artist Slideshow when XBMC starts using DAEMON mode. To do that use:&lt;br /&gt;
  RunScript(script.artistslideshow, daemon=True)&lt;br /&gt;
&lt;br /&gt;
== New skin properties ==&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by the script to check if it is already running. There&#039;s no need to use this property in your skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists (from last.fm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist (from theaudiodb.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window(Visualisation).Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
== How to call this addon from another addon ==&lt;br /&gt;
To use this addon to provide the background for another addon, the calling addon must create a window that uses a multimage control:&lt;br /&gt;
 &amp;lt;control type=&amp;quot;multiimage&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;posx&amp;gt;0&amp;lt;/posx&amp;gt;&lt;br /&gt;
     &amp;lt;posy&amp;gt;0&amp;lt;/posy&amp;gt;&lt;br /&gt;
     &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;
     &amp;lt;height&amp;gt;720&amp;lt;/height&amp;gt;&lt;br /&gt;
     &amp;lt;imagepath background=&amp;quot;true&amp;quot;&amp;gt;$INFO[Window.Property(ArtistSlideshow)]&amp;lt;/imagepath&amp;gt;&lt;br /&gt;
     &amp;lt;aspectratio&amp;gt;keep&amp;lt;/aspectratio&amp;gt;&lt;br /&gt;
     &amp;lt;timeperimage&amp;gt;10000&amp;lt;/timeperimage&amp;gt;&lt;br /&gt;
     &amp;lt;fadetime&amp;gt;2000&amp;lt;/fadetime&amp;gt;&lt;br /&gt;
     &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;0&amp;quot; end=&amp;quot;100&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Visible&amp;lt;/animation&amp;gt;&lt;br /&gt;
     &amp;lt;animation effect=&amp;quot;fade&amp;quot; start=&amp;quot;100&amp;quot; end=&amp;quot;0&amp;quot; time=&amp;quot;300&amp;quot;&amp;gt;Hidden&amp;lt;/animation&amp;gt;&lt;br /&gt;
 &amp;lt;/control&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That window must have an infolabel in which the currently playing artist is stored (suggested name is CURRENTARTIST) as well as one for the song title (suggested name is CURRENTTILE). It is the responsibility of the calling addon to change those infolabels when the artist/song changes.&lt;br /&gt;
&lt;br /&gt;
=== Calling the addon ===&lt;br /&gt;
Artist Slideshow does not exit after being called. It continues to run to check for changes in the artist infolabel. Becasue of that, the calling addon will have to create another thread for Artist Slideshow. The calling addon needs to import the python theading module for this to work. &lt;br /&gt;
&lt;br /&gt;
 def runArtistSlideshow(self):&lt;br /&gt;
     #startup artistslideshow&lt;br /&gt;
     xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;, &amp;quot;True&amp;quot;)&lt;br /&gt;
     #assumes addon is using suggested infolabel name of CURRENTARTIST and CURRENTTITLE&lt;br /&gt;
     artistslideshow = &amp;quot;RunScript(script.artistslideshow,windowid=%s&amp;amp;artistfield=%s&amp;amp;titlefield=%s&amp;amp;albumfield=%s&amp;amp;mbidfield=%s)&amp;quot;&lt;br /&gt;
         % (xbmcgui.getCurrentWindowId(), &amp;quot;CURRENTARTIST&amp;quot;, &amp;quot;CURRENTTITLE&amp;quot;, &amp;quot;CURRENTALBUM&amp;quot;, &amp;quot;CURRENTMBID&amp;quot;)&lt;br /&gt;
     xbmc.executebuiltin(artistslideshow)&lt;br /&gt;
 &lt;br /&gt;
 self.thread = threading.Thread(target=self.runArtistSlideshow)&lt;br /&gt;
 self.thread.setDaemon(True)&lt;br /&gt;
 self.thread.start()&lt;br /&gt;
&lt;br /&gt;
When calling Artist Slideshow, only artistfield and titlefield (and their corresponding information stored in the skin) are required. It would be helpful to have albumfield, as it makes it easier to lookup the Musicbrainz ID. If you happen to have the MusicBrainz ID, you can pass that as well.&lt;br /&gt;
&lt;br /&gt;
Note that the line wrap in artistslideshow = is there just for presentation purposes. If you copy and paste the code exactly as is you will get a python error. The suggestion is for the addon to spawn this thread right after it spawns the window.&lt;br /&gt;
&lt;br /&gt;
=== Exiting the addon ===&lt;br /&gt;
When the calling addon is preparing to exit, it must tell Artist Slideshow to stop and wait until it has. This logic should be added *before* the addon&#039;s window is destroyed. Failure to include this step will likely cause XBMC to crash.&lt;br /&gt;
&lt;br /&gt;
 #tell ArtistSlideshow to exit&lt;br /&gt;
 xbmcgui.Window(xbmcgui.getCurrentWindowId()).clearProperty(&amp;quot;ArtistSlideshow.ExternalCall&amp;quot;)&lt;br /&gt;
 #wait until ArtistSlideshow exits&lt;br /&gt;
 while (not xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty(&amp;quot;ArtistSlideshow.CleanupComplete&amp;quot;) == &amp;quot;True&amp;quot;):&lt;br /&gt;
     time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
=== Additional script/skin properties available ===&lt;br /&gt;
 Window.Property(ArtistSlideshow)&lt;br /&gt;
This is the path to the directory containing the downloaded images for the currently playing artist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtistBiography)&lt;br /&gt;
Artist biography from theaudiodb.com (or last.fm as fallback)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.SimilarThumb)&lt;br /&gt;
Similar artists from last.fm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumName)&lt;br /&gt;
 Window.Property(ArtistSlideshow.%d.AlbumThumb)&lt;br /&gt;
Albums by the artist from theaudiodb.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowRunning)&lt;br /&gt;
This one is used internally by Artist Slideshow to check if it is already running. There&#039;s no need to use this property in the calling addon&#039;s skin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshowTransparent)&lt;br /&gt;
Let&#039;s the skin know that the user has enabled the option to have AS use a transparent background when no artist images are found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ArtworkReady)&lt;br /&gt;
Set to &amp;quot;true&amp;quot; as soon as an image is ready to be displayed; blank when no image is ready to be displayed.  This is useful if you want to show some alternate image until AS has images ready to display.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.ExternalCall)&lt;br /&gt;
An external addon needs to set this to True so that Artist Slideshow will run properly when called by an external script. This property should be cleared to tell ArtistSlideshow to stop running.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Window.Property(ArtistSlideshow.CleanupComplete)&lt;br /&gt;
This one is used internally by Artist Slideshow to tell an external script that ArtistSlideshow is done running and is exiting.&lt;br /&gt;
&lt;br /&gt;
== Tips and Tricks ==&lt;br /&gt;
===Using Artist Slideshow with Fanart.tv===&lt;br /&gt;
In order to download images from fanart.tv, AS must have the MusicBrainz ID for the playing artist.  The easiest way to get that information is to tag your music using MusicBrainz Picard.  Once you have done that rescan your music library to import the new information into Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Removing Unwanted Images ===&lt;br /&gt;
Every artist&#039;s directory (whether your local one or the one in the cache directory) will have a file named _imagedb.nfo.  Once an image has been downloaded, the image name will be stored in that file.  If you delete an image, it will not be downloaded again unless you delete the image name from _imagedb.nfo file.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with a Visualization ===&lt;br /&gt;
If you want to see artist images and a visualization, make sure the skin is loading the Artist Slideshow images first (i.e at the top of the XML file). That will ensure the artist image is the furtherest back layer. If you choose to use a visualization, please select one with a significant amount of transparent area or you may not see much of anything. For any other skin, please contact the skin developer for a clarification on how visualizations interact with Artist Slideshow.&lt;br /&gt;
&lt;br /&gt;
=== Using Artist Slideshow with AppleTV ===&lt;br /&gt;
On AppleTV the PAPlayer sometimes stops after each song and restarts at the beginning of a new one. That, by default, causes Artist Slideshow to stop. Once that happens, artist background images no longer update. Please see [[#Changes_to_MusicVisualisation.xml|Changes to MusicVisualisation.xml above]] for a workaround.&lt;br /&gt;
&lt;br /&gt;
== Getting help ==&lt;br /&gt;
If you need assistance using Artist Slideshow, integrating it a skin, or calling it using another addon, please see the support thread on the XBMC forums.&lt;br /&gt;
: http://forum.kodi.tv/showthread.php?t=124880&lt;br /&gt;
&lt;br /&gt;
== Beta Testing ==&lt;br /&gt;
If you are interested in beta testing new versions of this add on (or just like being on the bleeding edge of up to date), you can install beta versions (Helix or later, there will be no more updates for Gotham or earlier) from [http://raw.github.com/pkscout/repository.beta.pkscout/helix/repository.beta.pkscout-1.1.0.zip pkscout&#039;s Add On Beta Channel]. You can also monitor the support thread, as links to particular beta releases will be available there as well.&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Commands&amp;diff=139639</id>
		<title>Add-on:Commands</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Commands&amp;diff=139639"/>
		<updated>2018-07-10T12:58:23Z</updated>

		<summary type="html">&lt;p&gt;Kibje: dumb test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Commands&lt;br /&gt;
|provider-name=AddonScriptorDE&lt;br /&gt;
|ID=script.commands&lt;br /&gt;
|latest-version=1.0.3&lt;br /&gt;
|extension point=xbmc.python.pluginsource&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Map multiple XBMC commands to one remote button. All availabe commands: http://wiki.xbmc.org/?title=List_of_Built_In_Functions&lt;br /&gt;
|Description=Map multiple XBMC commands to one remote button. All availabe commands: http://wiki.xbmc.org/?title=List_of_Built_In_Functions&lt;br /&gt;
|Platform=&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?tid=134129&lt;br /&gt;
|Website=&lt;br /&gt;
|Source=https://github.com/AddonScriptorDE/script.commands&lt;br /&gt;
|Email=AddonScriptorDE at yahoo dot de&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.commands/icon.png}}&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
To use this just use a &#039;&#039;&#039;[[keymap]]&#039;&#039;&#039; to map a button to perform the action:&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with syntax highlighting errors]]&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Commands&amp;diff=139638</id>
		<title>Add-on:Commands</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Commands&amp;diff=139638"/>
		<updated>2018-07-10T12:57:24Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight this is python&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Commands&lt;br /&gt;
|provider-name=AddonScriptorDE&lt;br /&gt;
|ID=script.commands&lt;br /&gt;
|latest-version=1.0.3&lt;br /&gt;
|extension point=xbmc.python.pluginsource&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Map multiple XBMC commands to one remote button. All availabe commands: http://wiki.xbmc.org/?title=List_of_Built_In_Functions&lt;br /&gt;
|Description=Map multiple XBMC commands to one remote button. All availabe commands: http://wiki.xbmc.org/?title=List_of_Built_In_Functions&lt;br /&gt;
|Platform=&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?tid=134129&lt;br /&gt;
|Website=&lt;br /&gt;
|Source=https://github.com/AddonScriptorDE/script.commands&lt;br /&gt;
|Email=AddonScriptorDE at yahoo dot de&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.commands/icon.png}}&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
To use this just use a &#039;&#039;&#039;[[keymap]]&#039;&#039;&#039; to map a button to perform the action:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
RunPlugin(plugin://script.commands)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with syntax highlighting errors]]&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Kibje&amp;diff=139637</id>
		<title>User talk:Kibje</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Kibje&amp;diff=139637"/>
		<updated>2018-07-10T12:56:20Z</updated>

		<summary type="html">&lt;p&gt;Kibje: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
  &amp;lt;category label=&amp;quot;Chat&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;run_chat&amp;quot; type=&amp;quot;bool&amp;quot; label=&amp;quot;Run IrcChat&amp;quot; default=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;nickname&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Username&amp;quot; default=&amp;quot;&amp;quot; visible=&amp;quot;eq(-1,true)&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;password&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Password&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;hidden&amp;quot; visible=&amp;quot;eq(-2,true)&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then pass the host, channel and user parameters of your website to the chat.&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
#if stream started:&lt;br /&gt;
    xbmc.sleep(3000)&lt;br /&gt;
    if addon.getSetting(&#039;run_chat&#039;) == &#039;true&#039;:&lt;br /&gt;
        xbmc.executebuiltin(&lt;br /&gt;
            &amp;quot;RunScript(script.ircchat, run_irc=True&amp;amp;nickname=%s&amp;amp;username=%s&amp;amp;password=%s&amp;amp;host=%s&amp;amp;channel=%s)&amp;quot;&lt;br /&gt;
            %(addon.getSetting(&#039;nickname&#039;), addon.getSetting(&#039;nickname&#039;),&lt;br /&gt;
              addon.getSetting(&#039;password&#039;), name+&#039;.jtvirc.com&#039;, name)&lt;br /&gt;
            )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User_talk:Kibje&amp;diff=139636</id>
		<title>User talk:Kibje</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User_talk:Kibje&amp;diff=139636"/>
		<updated>2018-07-10T12:56:01Z</updated>

		<summary type="html">&lt;p&gt;Kibje: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
  &amp;lt;category label=&amp;quot;Chat&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;run_chat&amp;quot; type=&amp;quot;bool&amp;quot; label=&amp;quot;Run IrcChat&amp;quot; default=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;nickname&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Username&amp;quot; default=&amp;quot;&amp;quot; visible=&amp;quot;eq(-1,true)&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;password&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Password&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;hidden&amp;quot; visible=&amp;quot;eq(-2,true)&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then pass the host, channel and user parameters of your website to the chat.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
#if stream started:&lt;br /&gt;
    xbmc.sleep(3000)&lt;br /&gt;
    if addon.getSetting(&#039;run_chat&#039;) == &#039;true&#039;:&lt;br /&gt;
        xbmc.executebuiltin(&lt;br /&gt;
            &amp;quot;RunScript(script.ircchat, run_irc=True&amp;amp;nickname=%s&amp;amp;username=%s&amp;amp;password=%s&amp;amp;host=%s&amp;amp;channel=%s)&amp;quot;&lt;br /&gt;
            %(addon.getSetting(&#039;nickname&#039;), addon.getSetting(&#039;nickname&#039;),&lt;br /&gt;
              addon.getSetting(&#039;password&#039;), name+&#039;.jtvirc.com&#039;, name)&lt;br /&gt;
            )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Kibje&amp;diff=139635</id>
		<title>User:Kibje</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Kibje&amp;diff=139635"/>
		<updated>2018-07-10T12:55:49Z</updated>

		<summary type="html">&lt;p&gt;Kibje: Replaced content with &amp;quot;Boo!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Boo!&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Kibje&amp;diff=139634</id>
		<title>User:Kibje</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Kibje&amp;diff=139634"/>
		<updated>2018-07-10T12:55:19Z</updated>

		<summary type="html">&lt;p&gt;Kibje: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
  &amp;lt;category label=&amp;quot;Chat&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;run_chat&amp;quot; type=&amp;quot;bool&amp;quot; label=&amp;quot;Run IrcChat&amp;quot; default=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;nickname&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Username&amp;quot; default=&amp;quot;&amp;quot; visible=&amp;quot;eq(-1,true)&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;password&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Password&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;hidden&amp;quot; visible=&amp;quot;eq(-2,true)&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then pass the host, channel and user parameters of your website to the chat.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
#if stream started:&lt;br /&gt;
    xbmc.sleep(3000)&lt;br /&gt;
    if addon.getSetting(&#039;run_chat&#039;) == &#039;true&#039;:&lt;br /&gt;
        xbmc.executebuiltin(&lt;br /&gt;
            &amp;quot;RunScript(script.ircchat, run_irc=True&amp;amp;nickname=%s&amp;amp;username=%s&amp;amp;password=%s&amp;amp;host=%s&amp;amp;channel=%s)&amp;quot;&lt;br /&gt;
            %(addon.getSetting(&#039;nickname&#039;), addon.getSetting(&#039;nickname&#039;),&lt;br /&gt;
              addon.getSetting(&#039;password&#039;), name+&#039;.jtvirc.com&#039;, name)&lt;br /&gt;
            )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=User:Kibje&amp;diff=139633</id>
		<title>User:Kibje</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=User:Kibje&amp;diff=139633"/>
		<updated>2018-07-10T12:54:42Z</updated>

		<summary type="html">&lt;p&gt;Kibje: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
  &amp;lt;category label=&amp;quot;Chat&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;run_chat&amp;quot; type=&amp;quot;bool&amp;quot; label=&amp;quot;Run IrcChat&amp;quot; default=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;nickname&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Username&amp;quot; default=&amp;quot;&amp;quot; visible=&amp;quot;eq(-1,true)&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;password&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Password&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;hidden&amp;quot; visible=&amp;quot;eq(-2,true)&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then pass the host, channel and user parameters of your website to the chat.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
#if stream started:&lt;br /&gt;
    xbmc.sleep(3000)&lt;br /&gt;
    if addon.getSetting(&#039;run_chat&#039;) == &#039;true&#039;:&lt;br /&gt;
        xbmc.executebuiltin(&lt;br /&gt;
            &amp;quot;RunScript(script.ircchat, run_irc=True&amp;amp;nickname=%s&amp;amp;username=%s&amp;amp;password=%s&amp;amp;host=%s&amp;amp;channel=%s)&amp;quot;&lt;br /&gt;
            %(addon.getSetting(&#039;nickname&#039;), addon.getSetting(&#039;nickname&#039;),&lt;br /&gt;
              addon.getSetting(&#039;password&#039;), name+&#039;.jtvirc.com&#039;, name)&lt;br /&gt;
            )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Category:Pages_with_syntax_highlighting_errors&amp;diff=139632</id>
		<title>Category:Pages with syntax highlighting errors</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Category:Pages_with_syntax_highlighting_errors&amp;diff=139632"/>
		<updated>2018-07-10T12:52:00Z</updated>

		<summary type="html">&lt;p&gt;Kibje: rollback&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains pages with {{xtag|syntaxhighlight}} or {{xtag|source}} calls which have encountered errors in parsing. To correct them, just define [https://github.com/wikimedia/mediawiki-extensions-SyntaxHighlight_GeSHi/blob/master/SyntaxHighlight.lexers.php a known computing language name] as an [[Attribute (computing)|attribute]] of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
Some languages are not yet supported. If the language is valid, do not change or remove the name of the language just to remove the maintenance category. The real fix is to get the language supported by [http://pygments.org/ Pygments].&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
Many languages (mostly obscure) were de-supported due to the switch from GeSHi to Pygments for syntax highlighting.  Fallbacks may be added to [https://phabricator.wikimedia.org/diffusion/ESHG/browse/master/SyntaxHighlight_GeSHi.compat.php SyntaxHighlight_GeSHi.compat.php] where languages are sufficiently similar.  For unsupported commonly used languages, please contribute language definitions to Pygments.&lt;br /&gt;
&lt;br /&gt;
A list of the lexers understood in version 1.30 that this wiki is running can be found here: https://phabricator.wikimedia.org/diffusion/ESHG/browse/REL1_30/SyntaxHighlight.lexers.php&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Wikipedia:Syntax highlighting]]&lt;br /&gt;
* [[mw:Extension:SyntaxHighlight]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Category:Pages_with_syntax_highlighting_errors&amp;diff=139631</id>
		<title>Category:Pages with syntax highlighting errors</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Category:Pages_with_syntax_highlighting_errors&amp;diff=139631"/>
		<updated>2018-07-10T12:51:38Z</updated>

		<summary type="html">&lt;p&gt;Kibje: categories on overview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{polluted category}}&lt;br /&gt;
{{Wikipedia category|hidden=yes|tracking=yes}}&lt;br /&gt;
{{empty category}}&lt;br /&gt;
&lt;br /&gt;
This category contains pages with {{xtag|syntaxhighlight}} or {{xtag|source}} calls which have encountered errors in parsing. To correct them, just define [https://github.com/wikimedia/mediawiki-extensions-SyntaxHighlight_GeSHi/blob/master/SyntaxHighlight.lexers.php a known computing language name] as an [[Attribute (computing)|attribute]] of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;source lang=&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
Some languages are not yet supported. If the language is valid, do not change or remove the name of the language just to remove the maintenance category. The real fix is to get the language supported by [http://pygments.org/ Pygments].&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
Many languages (mostly obscure) were de-supported due to the switch from GeSHi to Pygments for syntax highlighting.  Fallbacks may be added to [https://phabricator.wikimedia.org/diffusion/ESHG/browse/master/SyntaxHighlight_GeSHi.compat.php SyntaxHighlight_GeSHi.compat.php] where languages are sufficiently similar.  For unsupported commonly used languages, please contribute language definitions to Pygments.&lt;br /&gt;
&lt;br /&gt;
A list of the lexers understood in version 1.30 that this wiki is running can be found here: https://phabricator.wikimedia.org/diffusion/ESHG/browse/REL1_30/SyntaxHighlight.lexers.php&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Wikipedia:Syntax highlighting]]&lt;br /&gt;
* [[mw:Extension:SyntaxHighlight]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:IrcChat&amp;diff=139629</id>
		<title>Add-on:IrcChat</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:IrcChat&amp;diff=139629"/>
		<updated>2018-07-10T12:49:45Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=IrcChat&lt;br /&gt;
|provider-name=divingmule, MassIV&lt;br /&gt;
|ID=script.ircchat&lt;br /&gt;
|latest-version=1.0.1&lt;br /&gt;
|extension point=xbmc.python.script&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=An IRC Client&lt;br /&gt;
|Description=&lt;br /&gt;
      This add-on is a basic IRC client for Kodi mediacenter.&lt;br /&gt;
      Internet Relay Chat (IRC) is a protocol for live interactive&lt;br /&gt;
      Internet text messaging (chat) or synchronous conferencing.&lt;br /&gt;
      It is mainly designed for group communication in discussion forums, called channels.&lt;br /&gt;
    &lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU GENERAL PUBLIC LICENSE. Version 2, June 1991&lt;br /&gt;
|Forum=http://forum.kodi.tv/showthread.php?tid=163588&lt;br /&gt;
|Website=http://kodi.wiki/view/Add-on:IrcChat&lt;br /&gt;
|Source=https://github.com/divingmule/script.ircchat&lt;br /&gt;
|Email=&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.ircchat/icon.png}}&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
Internet Relay Chat (IRC) is a protocol for live interactive Internet text messaging (chat) or synchronous conferencing.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat Wiki]&lt;br /&gt;
&lt;br /&gt;
Many web chat&#039;s on the internet use an IRC server behind the scenes. It&#039;s well established and usable on all operating systems.&lt;br /&gt;
And for instance XBMC, has it&#039;s own IRC channel on Freenode. Much like the forum, a place to talk or ask a question. &lt;br /&gt;
Now lets have a look at that channel as example. The host looks like this &#039;&#039;&#039;irc.freenode.org&#039;&#039;&#039;. Kind of like a web address.&lt;br /&gt;
And you could in fact connect to the channel with a browser like so:&lt;br /&gt;
&lt;br /&gt;
[http://irc.lc/freenode/xbmc/irctc@@@ XBMC via webchat]&lt;br /&gt;
&lt;br /&gt;
That&#039;s nice. But why a chat in a media center?&lt;br /&gt;
Well, many live video streaming websites have a chat next to the stream. And watching these streams on our mediacenter without them sometimes felt like listening to half a conversation. So that is how the first version of the chat came to be. It was just read only, but then it started to grow.&lt;br /&gt;
&lt;br /&gt;
== Popular servers ==&lt;br /&gt;
* [http://xbmc.org/ Xbmc.org]: irc.freenode.org #xbmc&lt;br /&gt;
* [http://www.justin.tv/ Justin.tv]: channel_name.jtvirc.com #channel_name&lt;br /&gt;
* [http://twit.tv/ Twit.tv]: irc.twit.tv #twitlive&lt;br /&gt;
* [http://www.twitch.tv/ Twitch.tv]: channel_name.jtvirc.com #channel_name&lt;br /&gt;
* [http://www.ustream.tv/ Ustream.tv]: chat1.ustream.tv OR c.ustream.tv #channel_name&lt;br /&gt;
&lt;br /&gt;
== How To ==&lt;br /&gt;
After installing the addon. &lt;br /&gt;
* Go into the addon settings. &lt;br /&gt;
{{highlight|bordered=yes|[[Add-ons|Program Add-Ons -&amp;gt; IrcChat -&amp;gt; Context -&amp;gt; Add-On Settings]]}}&lt;br /&gt;
* Here you can input your initial login information, host and channel.&lt;br /&gt;
* Next, start a steam or playlist.&lt;br /&gt;
* Go to programs and start the IrcChat addon (use TAB toswitch to fullscreen video).&lt;br /&gt;
&lt;br /&gt;
* It is also possible to map a key to starting the script. As an easy way to start during playback, switch hosts or usernames.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;F1&amp;gt;RunScript(script.ircchat, run_irc=True&amp;amp;nickname=MyNick&amp;amp;username=name&amp;amp;password=pass123&amp;amp;host=irc.freenode.org&amp;amp;channel=xbmc)&amp;lt;/F1&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* There is a button in the top {{highlight|bordered=yes|[[List Container|&amp;lt;]]}} to slide out either a list of channels or a list of users. Depending on whether you are in a channel or not.&lt;br /&gt;
* A button to change colors {{highlight|bordered=yes|[[Spin Control|c]]}} that gives you a &#039;spin control&#039;.&lt;br /&gt;
* The chat&#039;s keyboard input also allows you to input a channel name to connect to IF you are not in a channel. You do not need to enter the # in front of the channel name. &lt;br /&gt;
* Selecting your own name in the list of users allows you options like changing your name IF this is supported by the host you are on.&lt;br /&gt;
&lt;br /&gt;
== Login Token ==&lt;br /&gt;
As of Sept. 17, 2013, Twitch now requires that you log into IRC using an OAuth token instead of your plaintext password or hash for additional security. To generate a token, visit:&lt;br /&gt;
http://www.twitchapps.com/tmi/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=200px heights=113px&amp;gt;&lt;br /&gt;
File:script.ircchat-screenshot-1.png &lt;br /&gt;
File:script.ircchat-screenshot-2.png&lt;br /&gt;
File:script.ircchat-screenshot-3.png&lt;br /&gt;
File:script.ircchat-screenshot-4.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Add-on integration ==&lt;br /&gt;
If you wish to integrate the chat with your video streaming add-on. Host, nickname, and username are required, the other parameters are optional. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
  &amp;lt;category label=&amp;quot;Chat&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;run_chat&amp;quot; type=&amp;quot;bool&amp;quot; label=&amp;quot;Run IrcChat&amp;quot; default=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;nickname&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Username&amp;quot; default=&amp;quot;&amp;quot; visible=&amp;quot;eq(-1,true)&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;setting id=&amp;quot;password&amp;quot; type=&amp;quot;text&amp;quot; label=&amp;quot;Justin.tv Password&amp;quot; default=&amp;quot;&amp;quot; option=&amp;quot;hidden&amp;quot; visible=&amp;quot;eq(-2,true)&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/category&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then pass the host, channel and user parameters of your website to the chat.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt;&lt;br /&gt;
#if stream started:&lt;br /&gt;
    xbmc.sleep(3000)&lt;br /&gt;
    if addon.getSetting(&#039;run_chat&#039;) == &#039;true&#039;:&lt;br /&gt;
        xbmc.executebuiltin(&lt;br /&gt;
            &amp;quot;RunScript(script.ircchat, run_irc=True&amp;amp;nickname=%s&amp;amp;username=%s&amp;amp;password=%s&amp;amp;host=%s&amp;amp;channel=%s)&amp;quot;&lt;br /&gt;
            %(addon.getSetting(&#039;nickname&#039;), addon.getSetting(&#039;nickname&#039;),&lt;br /&gt;
              addon.getSetting(&#039;password&#039;), name+&#039;.jtvirc.com&#039;, name)&lt;br /&gt;
            )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Skin integration ==&lt;br /&gt;
To simply overwrite one or two images (for example the loading .png). Add a folder to your skin media folder called &amp;quot;IrcChat&amp;quot;.&lt;br /&gt;
And place your own loading image in there with the same name as it has in the IrcChat add-on. In this case &amp;quot;ChatBusy.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To completely adjust all aspects of the chat layout. Place an xml file with the name &amp;quot;script-IrcChat-main.xml&amp;quot; in your skin&#039;s 720p folder. Or start by taking a copy of the one from the add-on. Note: Doing so requires all images to be in your skin, it will no longer look in the add-on folder.&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with syntax highlighting errors]]&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Social media]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Template:Index_three_column/doc&amp;diff=139628</id>
		<title>Template:Index three column/doc</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Template:Index_three_column/doc&amp;diff=139628"/>
		<updated>2018-07-10T12:48:07Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* Example 1 */ syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used for &amp;quot;landing pages&amp;quot; or &amp;quot;indexes&amp;quot; for a given topic. Creates a three column layout for links and summaries for those pages, with the summaries being generated from the intro sections marked on a given page.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The template can format anywhere between 1 and 20 page links.&lt;br /&gt;
&lt;br /&gt;
The only required parameter is &amp;lt;code&amp;gt;| link 1 =&amp;lt;/code&amp;gt;. To make a second link, use &amp;lt;code&amp;gt;| link 2 =&amp;lt;/code&amp;gt;, and so on until 20.&lt;br /&gt;
&lt;br /&gt;
Each link can also have an image icon, defined by &amp;lt;code&amp;gt;| image =&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Parameter !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; link # =&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| Page title to be linked to.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; link name # =&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;{{small|&#039;&#039;(optional)&#039;&#039;}}&lt;br /&gt;
| If you wish the displayed title to be different.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; image # =&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;{{small|&#039;&#039;(optional)&#039;&#039;}}&lt;br /&gt;
| An icon to be displayed with the link. The icon will be clickable with the above link. All images are auto resized to fit within 60px wide or tall. If no image is provided then [[:File:Circle arrow right font awesome.png]] will be used.&lt;br /&gt;
|-&lt;br /&gt;
| {{nowrap|1=&#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; description # =&amp;lt;/code&amp;gt;&#039;&#039;&#039;}}&amp;lt;br /&amp;gt;{{small|&#039;&#039;(optional)&#039;&#039;}}&lt;br /&gt;
| By default the descriptive text is the &amp;quot;intro&amp;quot; section (if marked) on the target link page. Use this parameter to override this.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Example 1 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
{{Index three column&lt;br /&gt;
 | image 1 = Preferences-system.png&lt;br /&gt;
 | link 1 = Video management&lt;br /&gt;
 | image 2 = Oxygen480-actions-media-playback-start.png&lt;br /&gt;
 | link 2 = Video playback&lt;br /&gt;
 | image 3 = Crystal Clear app starthere.png&lt;br /&gt;
 | link 3 = Basic_controls&lt;br /&gt;
 | image 4 = Television.png&lt;br /&gt;
 | link 4 = Live TV&lt;br /&gt;
 | image 5 = Map symbol concert hall 02.png&lt;br /&gt;
 | link 5 = Music videos&lt;br /&gt;
 | image 6 = Nuvola apps kthememgr.png&lt;br /&gt;
 | link 6 = Add-ons&lt;br /&gt;
 | image 7 = Gnome-system-run.png&lt;br /&gt;
 | link 7 = Settings&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;creates:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Index three column&lt;br /&gt;
 | image 1 = Preferences-system.png&lt;br /&gt;
 | link 1 = Video management&lt;br /&gt;
 | image 2 = Oxygen480-actions-media-playback-start.png&lt;br /&gt;
 | link 2 = Video playback&lt;br /&gt;
 | image 3 = Crystal Clear app starthere.png&lt;br /&gt;
 | link 3 = Basic_controls&lt;br /&gt;
 | image 4 = Television.png&lt;br /&gt;
 | link 4 = Live TV&lt;br /&gt;
 | image 5 = Map symbol concert hall 02.png&lt;br /&gt;
 | link 5 = Music videos&lt;br /&gt;
 | image 6 = Nuvola apps kthememgr.png&lt;br /&gt;
 | link 6 = Add-ons&lt;br /&gt;
 | image 7 = Gnome-system-run.png&lt;br /&gt;
 | link 7 = Settings&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Blank template ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Index two column&lt;br /&gt;
 | image 1 = &lt;br /&gt;
 | link 1 = &lt;br /&gt;
 | image 2 = &lt;br /&gt;
 | link 2 = &lt;br /&gt;
 | image 3 = &lt;br /&gt;
 | link 3 = &lt;br /&gt;
 | image 4 = &lt;br /&gt;
 | link 4 = &lt;br /&gt;
 | image 5 = &lt;br /&gt;
 | link 5 = &lt;br /&gt;
 | image 6 = &lt;br /&gt;
 | link 6 = &lt;br /&gt;
 | image 7 = &lt;br /&gt;
 | link 7 = &lt;br /&gt;
 | image 8 = &lt;br /&gt;
 | link 8 = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Template:Index two column]]&lt;br /&gt;
* [[Template:Main page icon]]&lt;br /&gt;
* [[Template:List]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Page specific templates]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_for_Linux&amp;diff=139627</id>
		<title>HOW-TO:Install Kodi for Linux</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Install_Kodi_for_Linux&amp;diff=139627"/>
		<updated>2018-07-10T12:47:35Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Linux]] {{l2| [[Installation]] }} }}&lt;br /&gt;
== Installing Kodi on Ubuntu-based distributions ==&lt;br /&gt;
{{warning|Some (later) Ubuntu versions include Kodi built by Ubuntu themselves. If you have installed Ubuntu Kodi, please remove the packages &amp;quot;kodi kodi-bin kodi-data&amp;quot; before trying to install team-xbmc PPA packages.}}&lt;br /&gt;
&lt;br /&gt;
See [[SSH]] or [http://help.ubuntu.com/community/UsingTheTerminal Click here to find out how to use the terminal.]&lt;br /&gt;
&lt;br /&gt;
Use the command line terminal and enter the following commands. Follow the prompts as you would any other software installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get install software-properties-common&lt;br /&gt;
sudo add-apt-repository ppa:team-xbmc/ppa&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#lst:Team XBMC PPA|repos}}&lt;br /&gt;
&lt;br /&gt;
Note that this PPA only provides builds for Ubuntu i386 and Ubuntu amd64 but not for Ubuntu armhf, which can run on a Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=== Installing binary add-ons (PVR, audio decoders, audio encoders, screensavers, visualizations, audio DSP) ===&lt;br /&gt;
{{see|Ubuntu binary add-ons}}&lt;br /&gt;
&lt;br /&gt;
=== Installing a development build ===&lt;br /&gt;
{{see also|Development builds}}&lt;br /&gt;
To install a beta/unstable version of {{kodi}} you must first add the unstable repository, then install XBMC. Use &amp;lt;code&amp;gt;ppa:team-xbmc/xbmc-nightly&amp;lt;/code&amp;gt; for nightly builds and &amp;lt;code&amp;gt;ppa:team-xbmc/unstable&amp;lt;/code&amp;gt; for [[beta]] builds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:team-xbmc/xbmc-nightly&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that if you have any addons (such as PVR clients), these must be updated as well (they will not be updated automatically):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get install kodi-pvr-mythtv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrading ===&lt;br /&gt;
&amp;lt;section begin=&amp;quot;Ubuntu upgrade&amp;quot; /&amp;gt;&lt;br /&gt;
To update Kodi when a new version is released, just do a general system/package or use the following commands in the terminal (or via [[SSH]]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note|In some cases where additional packages are required, Kodi will fail to upgrade when using the upgrade commands as above. To install additional packages use the command below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get dist-upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;Ubuntu upgrade&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downgrading to a stable version from a development version ===&lt;br /&gt;
If you install a nightly build or an unstable release and want to return to a stable release, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
Find the current PPA you are using:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-cache policy | grep team-xbmc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the unstable or nightly PPA where it says &#039;&#039;&#039;PPAHERE&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo add-apt-repository -r ppa:PPAHERE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then restore the stable version with the following commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:team-xbmc/ppa&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get remove kodi kodi-bin&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Downgrading between newer and older stable versions ===&lt;br /&gt;
If you want to return to the previous stable release, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
Remove the current stable PPA:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo add-apt-repository -r ppa:team-xbmc/ppa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install the old stable version with the following commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo add-apt-repository ppa:team-xbmc/kodi-old&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get remove kodi*&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reverting to an earlier nightly ===&lt;br /&gt;
ALthough launchpad doesn&#039;t list older nightlies in their PPA, they are usually still available for download directly from the website.&lt;br /&gt;
Visit https://launchpad.net/~team-xbmc/+archive/ubuntu/xbmc-nightly/+packages?field.name_filter=&amp;amp;field.status_filter=superseded&amp;amp;field.series_filter=&lt;br /&gt;
&lt;br /&gt;
You will then have to download the appropiate .deb file and manually install it.&lt;br /&gt;
&lt;br /&gt;
=== Uninstalling ===&lt;br /&gt;
If you need to remove and purge an application and finally removing/purging also the application configurations files, do so by using the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get remove kodi*&lt;br /&gt;
sudo apt-get purge kodi*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then remove the settings folder to remove all settings and library data. This will not delete any videos or music, but just the settings and library data itself:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
rm -r ~/.kodi/ &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
rm -r ~/.xbmc/ # for older versions before 14.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Embedded/Appliance type install==&lt;br /&gt;
&lt;br /&gt;
=== LibreELEC ===&lt;br /&gt;
{{main|LibreELEC}}&lt;br /&gt;
{{#lst:LibreELEC|intro}}&lt;br /&gt;
&lt;br /&gt;
== Third Party Repositories ==&lt;br /&gt;
&amp;lt;!-- Please only list repos that use an internal ffmpeg library --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The instructions in this section are for unofficial Linux binaries that are un/semi supported by Team Kodi. Most of those binaries use system ffmpeg or even worse totally untested libav, which is not recommended for {{kodi}} as we support ffmpeg only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
In Debian 9 (Stretch), Kodi is available in the default &amp;quot;main&amp;quot; Debian repository (you can check this with &#039;apt-cache show kodi&#039; to show the description or &#039;apt-cache policy kodi&#039; to check installed/available version). &lt;br /&gt;
&lt;br /&gt;
In Debian 9 (Stretch), update APT and install:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For installation if you are using Debian 8 (Jessie), you can use the debian-backports repository.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list file, as superuser (sudo)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
# kodi repos&lt;br /&gt;
# starting with debian jessie, debian provides kodi via its backports repository&lt;br /&gt;
# remember: those packages are not supported by team kodi&lt;br /&gt;
deb http://http.debian.net/debian jessie-backports main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then, update APT and install Kodi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy your new Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
Refer to [[HOW-TO:Install Kodi on Fedora 26 using RPMFusion packages]] for a guide showing how to install Fedora 26 and Kodi to create a quick-booting, standalone style of media player.&lt;br /&gt;
&lt;br /&gt;
=== Raspbian ===&lt;br /&gt;
{{see also|HOW-TO:Install Kodi on Raspberry Pi}}&lt;br /&gt;
Installing on Raspbian is done with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get install kodi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upgrading on Raspbian is done with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation from source ==&lt;br /&gt;
If distribution packages are not available, or you need a newer version, or specific features enabled, then you will most likely need to compile from source. While compiling from source does not differ very much between distributions (except for installation of build dependencies), a few different guides are available in this wiki.&lt;br /&gt;
&lt;br /&gt;
* [[HOW-TO compile XBMC for Linux from source code]]&lt;br /&gt;
* [[HOW-TO compile XBMC for Linux on Debian/Ubuntu]] - This is a tutorial on how to compile and install {{kodi}} on Debian and Ubuntu.&lt;br /&gt;
* [[HOW-TO compile Kodi for Linux on Arch/Manjaro]] - This is a tutorial on how to compile and install {{kodi}} on Arch or Manjaro linux.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Linux]]&lt;br /&gt;
* [[HOW-TO:Autostart XBMC for Linux]]&lt;br /&gt;
*[[JeOS implementations for Kodi]]&lt;br /&gt;
&amp;lt;!--{{mininav| [[Installing]] {{l2| [[Linux]] }} }}--&amp;gt;&lt;br /&gt;
* [[Linux FAQ]]&lt;br /&gt;
&lt;br /&gt;
{{Updated|17}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:How-to]]&lt;br /&gt;
[[Category:Installation|Linux]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Install_Kodi_on_Apple_TV_2&amp;diff=139626</id>
		<title>Archive:Install Kodi on Apple TV 2</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Install_Kodi_on_Apple_TV_2&amp;diff=139626"/>
		<updated>2018-07-10T12:46:45Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[iOS]] | [[ATV2]] }}&lt;br /&gt;
{{atv2 farewell}}&lt;br /&gt;
&lt;br /&gt;
The current stable release for iOS is {{current version}}.&lt;br /&gt;
;Requirements:&lt;br /&gt;
{{#lst:Supported hardware|ATV2}}&lt;br /&gt;
* If you have any issues, be sure to read the [[iOS FAQ]]!&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
{{Kodi migration note}}&lt;br /&gt;
&lt;br /&gt;
== Installing from the command line ==&lt;br /&gt;
# Open up your [[iOS FAQ#SSH|terminal/ssh application]] and enter the following command to log in to your ATV2. Note, you need to replace &amp;quot;YOUR.ATV2.IP.ADDRESS&amp;quot; with the IP address of the Apple TV:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;ssh root@YOUR.ATV2.IP.ADDRESS&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;ssh root@192.168.1.5&amp;lt;/code&amp;gt;&lt;br /&gt;
# You will be asked for a password: &#039;&#039;default password is &#039;&#039;&#039;alpine&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
# Continue to enter the following commands:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;apt-get install wget&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget -O- &amp;lt;nowiki&amp;gt;http://apt.awkwardtv.org/awkwardtv.pub&amp;lt;/nowiki&amp;gt; | apt-key add -&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://apt.awkwardtv.org/ stable main&amp;quot; &amp;gt;&amp;lt;/nowiki&amp;gt; /etc/apt/sources.list.d/awkwardtv.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://mirrors.kodi.tv/apt/atv2 ./&amp;quot; &amp;gt;&amp;lt;/nowiki&amp;gt; /etc/apt/sources.list.d/xbmc.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;apt-get install org.xbmc.kodi-atv2&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
And you&#039;re done! You should now be running 14.2 for Apple TV 2 (last supported version for the platform). See [[IOS FAQ#XBMC Version|here]] to verify your Kodi version.&lt;br /&gt;
&lt;br /&gt;
== Installing from NitoTV ==&lt;br /&gt;
{{notice|While this should work in theory, the official installation method for {{kodi}} is to use the command line instructions. If you have issues with any of the Nito installers then please try the command line instructions to see if that fixes the issue. Nito simply gives a GUI for those command line instructions, so it should work, but Team {{kodi}} has no control over those installers and cannot update them or see any errors from them, or anything like that.}}&lt;br /&gt;
;NitoTV on the Apple TV 2&lt;br /&gt;
# Scroll right to the NitoTV menu on the Apple TV and choose the first option &amp;quot;&#039;&#039;Install Software&#039;&#039;&amp;quot;.&lt;br /&gt;
# Scroll down the list until you see &amp;quot;&#039;&#039;Kodi-ATV2&#039;&#039;&amp;quot; and click on that.&lt;br /&gt;
# From that menu press &amp;quot;&#039;&#039;install&#039;&#039;&amp;quot; and your Apple TV will install {{kodi}} and then do a &#039;&#039;&#039;SOFT&#039;&#039;&#039; reboot (no tethered boot required).&lt;br /&gt;
# {{kodi}} will now be in your Apple TV menu, scroll right to it, click and enjoy.&lt;br /&gt;
And you&#039;re done! You should now be running 14.2 Apple TV 2. See [[IOS FAQ#XBMC Version|here]] to verify your {{kodi}} version.&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
Either update through NitoTV or issue the following commands to update:&lt;br /&gt;
# Open up your [[iOS FAQ#SSH|terminal/ssh application]] and enter the following command to log in to your ATV2:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;ssh root@YOUR.ATV2.IP.ADDRESS&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;ssh root@192.168.1.5&amp;lt;/code&amp;gt;&lt;br /&gt;
# You will be asked for a password: &#039;&#039;default password is &#039;&#039;&#039;alpine&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
# Continue to enter the following commands:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;apt-get install org.xbmc.kodi-atv2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Development and custom builds ==&lt;br /&gt;
{{anchor|Monthly builds|Beta|Frodo beta|Frodo RC|Beta builds|Nightly builds|Development builds}}&lt;br /&gt;
{{main|Development builds}}&lt;br /&gt;
&lt;br /&gt;
{{highlight|color=#FFB5B5| {{big|ALWAYS &#039;&#039;&#039;[[BACKUP]]&#039;&#039;&#039; YOUR &#039;&#039;&#039;[[userdata|USERDATA FOLDER]]&#039;&#039;&#039; WHEN USING DEVELOPMENT BUILDS! }} }}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build !! Description !! URL&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Nightly build&#039;&#039;&#039; || Nightly builds are unstable test builds that have the latest bug fixes and feature additions. They are not fully tested, so anticipate issues and be sure to [[iOS FAQ#Backup|backup your userdata folder]] || http://mirrors.kodi.tv/nightlies/darwin/atv2/&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Monthly build&#039;&#039;&#039; || Monthly builds are more stable than nightly builds, but still contain lots of experimental new code. || http://mirrors.kodi.tv/snapshots/darwin/atv2/&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Betas and {{nowrap|release candidates}}&#039;&#039;&#039; || Betas and release candidates are builds that are being tested to see if they have any bugs left before becoming a stable release. Most major bugs should be fixed in these builds. || http://mirrors.kodi.tv/apt/pre-release/atv2/deb/&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Older stable builds&#039;&#039;&#039; || If you wish to download an older version of {{kodi}} for whatever reason, you can do so with these same instructions below. || http://mirrors.kodi.tv/apt/atv2/deb/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# Open one of the above URL locations in a web browser and copy the url of the &#039;&#039;&#039;most recent file&#039;&#039;&#039; in that listing.&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;mirrors.kodi.tv/nightlies/darwin/atv2/kodi-20150120-e740097-master-atv2&#039;&#039;&#039;.deb&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Open up your [[iOS FAQ#What is SSH?|terminal/ssh application]] and enter the following command to log in to your ATV2:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;ssh root@YOUR.ATV2.IP.ADDRESS&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;ssh root@192.168.1.5&amp;lt;/code&amp;gt;&lt;br /&gt;
# You will be asked for a password: &#039;&#039;default password is &#039;&#039;&#039;alpine&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
# Continue to enter the following commands:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;rm -f *kodi*.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget URL-FROM-STEP-ONE-HERE&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget http://&amp;lt;/nowiki&amp;gt;mirrors.kodi.tv/nightlies/darwin/atv2/kodi-20150120-e740097-master-atv2&#039;&#039;&#039;.deb&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;dpkg -i *kodi*.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;rm *kodi*.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[IOS FAQ#XBMC Version|here]] to verify your {{kodi}} version.&lt;br /&gt;
&lt;br /&gt;
{{note|To go back to a stable version of {{kodi}} you might need to first uninstall {{kodi}} and then use the normal install instructions, or manually download the stable release deb file and install using the dev build instructions.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Going from Kodi to XBMC ===&lt;br /&gt;
Due to the name change, the steps for downgrading between Kodi (starting at v14 and up) to XBMC (v13.2 and lower) requires slightly different steps:&lt;br /&gt;
&lt;br /&gt;
# Open one of the [[#Development and custom builds|above URL locations]] in a web browser and copy the url of the version you wish to install.&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;mirrors.kodi.tv/apt/atv2/deb/old/org.xbmc.xbmc-atv2_12.2-0_iphoneos-arm&#039;&#039;&#039;.deb&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Open up your [[iOS FAQ#What is SSH?|terminal/ssh application]] and enter the following command to log in to your ATV2:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;ssh root@YOUR.ATV2.IP.ADDRESS&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;ssh root@192.168.1.5&amp;lt;/code&amp;gt;&lt;br /&gt;
# You will be asked for a password: &#039;&#039;default password is &#039;&#039;&#039;alpine&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
# Continue to enter the following commands:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;rm -f *kodi*.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;rm -f *xbmc*.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget URL-FROM-STEP-ONE-HERE&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:: &#039;&#039;&#039;EXAMPLE:&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget http://&amp;lt;/nowiki&amp;gt;mirrors.kodi.tv/apt/atv2/deb/old/org.xbmc.xbmc-atv2_12.2-0_iphoneos-arm&#039;&#039;&#039;.deb&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget http://mirrors.kodi.tv/apt/atv2/deb/org.xbmc.xbmc-seatbeltunlock_1.0-5_iphoneos-arm.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;dpkg -i *xbmc*.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;rm *xbmc*.deb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[IOS FAQ#XBMC Version|here]] to verify your {{kodi}} version.&lt;br /&gt;
&lt;br /&gt;
== Uninstalling ==&lt;br /&gt;
=== Uninstalling just {{kodi}} ===&lt;br /&gt;
SSH into your Apple TV (Using the same instructions from above to login). Then run:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get remove org.xbmc.xbmc-atv2&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt; apt-get remove org.xbmc.kodi-atv2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will ask you if you want to continue:&lt;br /&gt;
&amp;lt;pre&amp;gt;The following packages will be REMOVED:&lt;br /&gt;
  org.xbmc.kodi-atv2&lt;br /&gt;
0 upgraded, 0 newly installed, 1 to remove and 5 not upgraded.&lt;br /&gt;
After this operation, 0B of additional disk space will be used.&lt;br /&gt;
Do you want to continue [Y/n]?&amp;lt;/pre&amp;gt;&lt;br /&gt;
Just enter &amp;quot;Y&amp;quot; to accept and continue.&lt;br /&gt;
&lt;br /&gt;
=== Removing settings ===&lt;br /&gt;
{{kodi}} will uninstall from your Apple TV but will leave certain things ([[databases]] and everything in your [[userdata folder]]) behind to make it easier if you wanted to reinstall. To delete those also run:&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -Rf /private/var/mobile/Library/Preferences/XBMC&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -Rf /private/var/mobile/Library/Preferences/Kodi&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will then be completely clear and {{kodi}} will be removed.&lt;br /&gt;
&lt;br /&gt;
=== Deleting {{kodi}} dependencies ===&lt;br /&gt;
{{kodi}} has three dependencies that it installs along with itself when you first install {{kodi}} (org.xbmc.xbmc-seatbeltunlock, gawk, bsdiff). After uninstalling {{kodi}} you can also uninstall these 3 dependencies by running this command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
apt-get remove org.xbmc.xbmc-seatbeltunlock &amp;amp;&amp;amp; apt-get remove gawk &amp;amp;&amp;amp; apt-get remove bsdiff &amp;amp;&amp;amp; apt-get remove org.xbmc.kodi-seatbeltunlock&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Helix updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:IOS|Apple TV 2]]&lt;br /&gt;
[[Category:How-to|Apple TV 2]]&lt;br /&gt;
[[Category:Installation|Apple TV2]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Cinema_Experience&amp;diff=139624</id>
		<title>Add-on:Cinema Experience</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Cinema_Experience&amp;diff=139624"/>
		<updated>2018-07-10T12:45:01Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Cinema Experience&lt;br /&gt;
|provider-name=Giftie&lt;br /&gt;
|ID=script.cinema.experience&lt;br /&gt;
|latest-version=4.0.11&lt;br /&gt;
|extension point=xbmc.python.script&lt;br /&gt;
|provides=&lt;br /&gt;
|Summary=Re-create a full movie theater experience.&lt;br /&gt;
|Description=Play trailers, slideshows, intro videos, outro videos: To re-create a movie theater experience in the comfort of your home.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=&lt;br /&gt;
|Forum=http://forum.xbmc.org/showthread.php?tid=87563&lt;br /&gt;
|Website=&lt;br /&gt;
|Source=https://github.com/Giftie/script.cinema.experience&lt;br /&gt;
|Email=&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/krypton/script.cinema.experience/icon.png}}&lt;br /&gt;
&lt;br /&gt;
= About Cinema Experience =&lt;br /&gt;
== History ==&lt;br /&gt;
This add-on has a lot of history. It started life in 2009 as the Home Theatre Experience script, written by an amazing and skilled Python programmer &#039;&#039;&#039;nuka1195&#039;&#039;&#039;. Through out its life it has brought many changes to XBMC. In December 2010, &#039;&#039;&#039;giftie&#039;&#039;&#039; took the reigns, and the script was modified to work with the new add-on engine in XBMC&#039;s Dharma. The name was changed, and the incarnation of Cinema Experience you know was born.&lt;br /&gt;
&lt;br /&gt;
In the beginning, the script was only being maintained to function with XBMC. Then the script needed some functional repairs. Later, some major changes (and even some that brought about negative feedback). Now it&#039;s 2013, and XBMC Frodo is here. Cinema Experience is here to stay. Cinema Experience is currently maintained and improved by &#039;&#039;&#039;giftie&#039;&#039;&#039;. He&#039;s added numerous features to the script, and provides invaluable support via the [http://forum.kodi.tv/showthread.php?tid=87563 XBMC forums].&lt;br /&gt;
&lt;br /&gt;
== What does it do? ==&lt;br /&gt;
The Cinema Experience script will add that WOW factor to your home theater, and give you a true Cinema Experience! Yes, you will still have to supply the popcorn and drinks. There&#039;s not much we can do about that. This script allows you to play trivia slides, movie trailers and other videos (intros and outros) that will help you get that Cinema Experience - just like at the local theater. Trivia slides can be any JPG or PNG image (many Movie Trivia, Stills, and Movie Fact packs already exist). The Feature Presentation Movie(s) must be in your Video Library. Cinema Experience can stream trailers, download them from Apple Movie Trailers, or play locally stored trailer(s) that are on your system or in your Movie Library.&lt;br /&gt;
&lt;br /&gt;
== What doesn&#039;t it do? ==&lt;br /&gt;
The Cinema Experience script will NOT work with any movies that are NOT local and scraped into your Movie Library. This means that any streaming content (let&#039;s use Netflix as an example, but this applies to any and all Video Add-ons that stream content to XBMC) either supported and in the official repository or not supported and in a third party repository will not work with the Cinema Experience script.&lt;br /&gt;
&lt;br /&gt;
== How do I get it? ==&lt;br /&gt;
At the moment, for XBMC Dharma and Eden this add-on is only available through installable ZIP files. The Frodo version has been added to the Official Official XBMC Repository, making it easier to get.&lt;br /&gt;
&lt;br /&gt;
Dharma: [http://www.mediafire.com/file/6r7d1pqnfeib7xx/script.cinema.experience.1.0.53.zip Download]&lt;br /&gt;
&lt;br /&gt;
Eden: [https://www.dropbox.com/s/9xqnclvosuhm2o1/script.cinema.experience.2.0.57.zip Download]&lt;br /&gt;
&lt;br /&gt;
Frodo: Available from the Official XBMC Repository&lt;br /&gt;
&lt;br /&gt;
== Reporting Bugs &amp;amp; Requesting Features ==&lt;br /&gt;
Cinema Experience is an evolving creature, getting better and more feature-rich with each release. That said, &#039;&#039;bugs happen&#039;&#039;. When they do, a bug report needs to be made. These are to be made on the Cinema Experience [http://forum.kodi.tv/showthread.php?tid=87563 forum thread]. A [http://wiki.xbmc.org/index.php?title=Debug_log debug log] is &#039;&#039;&#039;ALWAYS&#039;&#039;&#039; required, along with the steps needed to re-create the bug. I won&#039;t be able to help you if I can&#039;t understand what&#039;s happening.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Reporting Bugs: Method 1&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the Debug Log Script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Reporting Bugs: Method 2&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Manually [[Log File|locate your xbmc.log file]].&lt;br /&gt;
Copy &amp;amp; paste your xbmc.log file to [http://pastebin.com/ pastebin.com] (or a similar site).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; If you feel that you have private information in your log file that you don&#039;t want the public be able to see, set up an account on [http://pastebin.com/ pastebin.com] and store it as a private paste.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Uploading Logs&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
# Put XBMC into Debug Mode.&lt;br /&gt;
# Restart XBMC.&lt;br /&gt;
# If you have add-ons that run automatically when XBMC starts, wait a few minutes for these scripts to run (ShareThe.TV, Weather.com Plus, etc.).&lt;br /&gt;
# Run Cinema Experience.&lt;br /&gt;
# Upload your &#039;&#039;&#039;FULL&#039;&#039;&#039; xbmc.log file to [http://pastebin.com/ pastebin.com] (or a similar site).&lt;br /&gt;
# Create a new forum message in [http://forum.kodi.tv/showthread.php?tid=87563 this thread]. Includethe  steps required to reproduce the bug and your [http://pastebin.com/ pastebin.com] URL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Requesting Features&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I accept feature requests in [http://forum.kodi.tv/showthread.php?tid=87563 this thread]. Be sure to be specific about what you&#039;d like to see added.&lt;br /&gt;
&lt;br /&gt;
= Information &amp;amp; Setup =&lt;br /&gt;
&lt;br /&gt;
== Supported Ratings Systems ==&lt;br /&gt;
Cinema Experience currently supports the [http://www.mpaa.org/ MPAA], [http://www.bbfc.co.uk/ BBFC], [http://www.fsk.de/ FSK] and [http://www.mj.gov.br/classificacao DEJUS] ratings systems. If you&#039;d like a new rating system supported, post in [http://forum.kodi.tv/showthread.php?tid=87563 this thread]. You may need to provide a database file, or some screenshots of the table. I need to know each different rating in that column. What I need to see will depend on your database. If you are using the default database format (i.e. you haven&#039;t made any changes to XBMC) you can post the database file to &#039;&#039;Google Drive&#039;&#039; or &#039;&#039;Drop Box&#039;&#039; and then PM me a link to the file. If you are using MySQL, you will need to access it yourself (using a viewer of some sort) and send me some screenshots &#039;&#039;&#039;movieview&#039;&#039;&#039; table. Generally, column &#039;&#039;&#039;c12&#039;&#039;&#039; contains the ratings.&lt;br /&gt;
&lt;br /&gt;
The database you need depends on the OS you are using. [[Databases|This Wiki Page]] will help you find the proper file. The Video database is named &#039;&#039;&#039;MyVideosXX.db&#039;&#039;&#039; - with XX representing the database version. Use the one with the latest date.&lt;br /&gt;
&lt;br /&gt;
== Sequence Overview ==&lt;br /&gt;
Cinema Experience gives you the ability to enable or disable any introduction videos, or the trivia slideshow. You have the power to customize your cinema experience. The following is an example of the complete script flow:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
:# Trivia Intro Video(s)&lt;br /&gt;
:# Trivia Slides with Optional Music Playlist&lt;br /&gt;
:# Trivia Outro Video(s)&lt;br /&gt;
:# Movie Theater Intro Video(s)&lt;br /&gt;
:# Coming Attractions Intro Video(s)&lt;br /&gt;
:# Trailer(s)&lt;br /&gt;
:# Coming Attractions Outro Video(s)&lt;br /&gt;
:# 3D Intro Video(s) - if upcoming Movie is in 3D format&lt;br /&gt;
:# 3D Trailers( from folder as I haven&#039;t found a site that has them really available) - if upcoming Movie is in 3D format&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Countdown Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Feature Presentation Intro Video(s)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Rating Video&#039;&#039;&#039;&#039;&#039; (MPAA, BBFC and FSK ratings are currently supported)&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Audio Format Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# FEATURE PRESENTATION&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Intermission Video(s)&#039;&#039;&#039;&#039;&#039; (note)&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Rating Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Audio Format Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# FEATURE PRESENTATION 2&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Intermission Video(s)&#039;&#039;&#039;&#039;&#039; (note)&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Rating Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Audio Format Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# FEATURE PRESENTATION 3&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Intermission Video(s)&#039;&#039;&#039;&#039;&#039; (note)&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Rating Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Audio Format Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# FEATURE PRESENTATION 4&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Intermission Video(s)&#039;&#039;&#039;&#039;&#039; (note)&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Rating Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Audio Format Video&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# FEATURE PRESENTATION 5 (end note)&lt;br /&gt;
:# &#039;&#039;&#039;&#039;&#039;Feature Presentation Outro Video(s)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:# 3D Outro Video(s) - if upcoming Movie is in 3D format&lt;br /&gt;
:# Movie Theater Outro Video(s)&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Available in 3D if upcoming movie is 3D and settings enabled&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;(note)&#039;&#039;&amp;lt;/small&amp;gt; At this point in the script, if multiple features have been queued and the skin uses home menu integration, multiple rating videos, audio format videos, features, and intermission videos will take the place of a single feature. A total of 5 features can be queued. This option can be even larger if you use one of the starting methods suggested in the Script Starting methods section.&lt;br /&gt;
&lt;br /&gt;
== Directory Tree Overviews ==&lt;br /&gt;
&lt;br /&gt;
=== Root Directory Structure ===&lt;br /&gt;
&lt;br /&gt;
This is the suggested directory structure for all of your Cinema Experience content.&lt;br /&gt;
&lt;br /&gt;
[[File:Cinema Experience Root.png]]&lt;br /&gt;
&lt;br /&gt;
=== Audio Format Directory Structure ===&lt;br /&gt;
&lt;br /&gt;
The only directories that need to be in a specific format are in the Audio Format directory. This is because the script uses the name of the Audio Format (DTS, Dolby Digital, etc.) to determine what video to play.&lt;br /&gt;
&lt;br /&gt;
[[File:Audio Format Directory Tree.png]]&lt;br /&gt;
&lt;br /&gt;
=== Intro &amp;amp; Outro Directory Structure ===&lt;br /&gt;
&lt;br /&gt;
Even though these directories don&#039;t need to be in a specific format, it&#039;s a good idea to use the standard shown below. If you&#039;re having trouble, switch to the standard and reconfigure Cinema Experience for the new directory structure.&lt;br /&gt;
&lt;br /&gt;
[[File:Intros %26 Outros Directory Tree.png]]&lt;br /&gt;
&lt;br /&gt;
=== Trivia Directory Structure ===&lt;br /&gt;
&lt;br /&gt;
Even though these directories don&#039;t need to be in a specific format, it&#039;s a good idea to use the standard shown below. If you&#039;re having trouble, switch to the standard and reconfigure Cinema Experience for the new directory structure. The example below shows some popular slide sets copied into the appropriate directory.&lt;br /&gt;
&lt;br /&gt;
[[File:Trivia_Directory_Tree.png]]&lt;br /&gt;
&lt;br /&gt;
== Trivia Slideshow Explained ==&lt;br /&gt;
&lt;br /&gt;
The script can display a slideshow at the start of the experience.  The slides can be standard still slides or Q&amp;amp;A(with clues). The best method of storing the slides are to have them in separate folders, the script can search the folders recursively.&lt;br /&gt;
&lt;br /&gt;
=== Types of Slides ===&lt;br /&gt;
&lt;br /&gt;
==== Stills ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stills&#039;&#039;&#039; are trivia slides that only have one part, or are not multiple part slides like the &#039;&#039;&#039;Question &amp;amp; Answer&#039;&#039;&#039; slides. These slides do not require the use of a &#039;&#039;slides.xml&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
==== Q&amp;amp;A ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question &amp;amp; Answer&#039;&#039;&#039; slides have multiple parts (for example: Question, Clue, Answer). This type of slide does require the use of a &#039;&#039;slides.xml&#039;&#039; file to enable the script to determine how and when to display each Q&amp;amp;A slide.&lt;br /&gt;
&lt;br /&gt;
===== XML File Explained =====&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A Breakdown of the XML File&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;slide rating=&amp;quot;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;quot; /&amp;gt; || This can be used to match the rating of the feature being played, or to set a limit on which slides are played based on value set in the Settings.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;question format=&amp;quot;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;quot; /&amp;gt; || Provides the format that identifies slides as an Question slide.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;clue format=&amp;quot;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;quot; /&amp;gt; || Provides the format that identifies slides as an Clue slide.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;answer format=&amp;quot;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;quot; /&amp;gt; || Provides the format that identifies slides as an Answer slide.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
     &amp;lt;slides&amp;gt;&lt;br /&gt;
         &amp;lt;slide&amp;gt;&lt;br /&gt;
             &amp;lt;slide rating=&amp;quot;R&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;question format=&amp;quot;.([0-9]{1,3})+_q.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;clue format=&amp;quot;.([0-9]{1,3})+_c.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;answer format=&amp;quot;.([0-9]{1,3})+_a.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/slide&amp;gt;&lt;br /&gt;
     &amp;lt;/slides&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A Breakdown of &amp;quot;.([0-9]{1,3})+_q.jpg&amp;quot;&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| . || Provides identification of any leters (i.e. identifies the word &amp;quot;stills&amp;quot; in &amp;quot;stills20_q.jpg&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| ([0-9]{1,3}) || Provides identification of any number from 0 - 999 (i.e. identifies the number &amp;quot;20&amp;quot; in &amp;quot;stills20_q.jpg&amp;quot;).&lt;br /&gt;
|-&lt;br /&gt;
| +_q || This allows the script to determine if it is a Question, Clue or Answer (i.e. &amp;quot;stills20_q.jpg&amp;quot; is a question, but &amp;quot;stills20_c.jpg&amp;quot; is a clue).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;+_q&amp;quot; can be any letter or combination of letters as long as the pattern is kept. For example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Question || &amp;lt;question format=&amp;quot;.([0-9]{1,3})+_q.jpg&amp;quot; /&amp;gt; || &amp;lt;question format=&amp;quot;.([0-9]{1,3})+_a.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Clue || &amp;lt;clue format=&amp;quot;.([0-9]{1,3})+_c.jpg&amp;quot; /&amp;gt; || &amp;lt;clue format=&amp;quot;.([0-9]{1,3})+_b.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Answer || &amp;lt;answer format=&amp;quot;.([0-9]{1,3})+_a.jpg&amp;quot; /&amp;gt; || &amp;lt;answer format=&amp;quot;.([0-9]{1,3})+_c.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Example XML Files&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example of a &#039;&#039;slides.xml&#039;&#039; file is for a two part trivia question (Q&amp;amp;A) with words and ordering numbers (i.e. slidename1_q&amp;quot;).&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
     &amp;lt;slides&amp;gt;&lt;br /&gt;
         &amp;lt;slide&amp;gt;&lt;br /&gt;
             &amp;lt;slide rating=&amp;quot;R&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;question format=&amp;quot;.([0-9]{1,3})+_q.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;clue format=&amp;quot;N/A&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;answer format=&amp;quot;.([0-9]{1,3})+_a.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/slide&amp;gt;&lt;br /&gt;
     &amp;lt;/slides&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example of a &#039;&#039;slides.xml&#039;&#039; file is for a two part trivia question (Q&amp;amp;A) without ordering numbers (i.e. slidename_q&amp;quot;).&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
     &amp;lt;slides&amp;gt;&lt;br /&gt;
         &amp;lt;slide&amp;gt;&lt;br /&gt;
             &amp;lt;slide rating=&amp;quot;R&amp;quot;&amp;gt;&lt;br /&gt;
             &amp;lt;question format=&amp;quot;.+_a.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;clue format=&amp;quot;N/A&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;answer format=&amp;quot;.+_b.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/slide&amp;gt;&lt;br /&gt;
     &amp;lt;/slides&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Settings Explained =&lt;br /&gt;
&lt;br /&gt;
== Trivia Mode ==&lt;br /&gt;
Three(3) modes available: &#039;&#039;&#039;None&#039;&#039;&#039;, &#039;&#039;&#039;Slide Show&#039;&#039;&#039; and &#039;&#039;&#039;Movie Quiz Script&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== None ===&lt;br /&gt;
&lt;br /&gt;
No Trivia pre-show&lt;br /&gt;
&lt;br /&gt;
=== Trivia Slideshow ===&lt;br /&gt;
&lt;br /&gt;
; Slide Show specific settings:&lt;br /&gt;
:; Duration(in Minutes): Set the total length, in minutes, of the slide show&lt;br /&gt;
:; Slides Folder: The parent folder of the slides&lt;br /&gt;
:; Show Question Slide for(seconds): The time, in seconds, that the question slide is displayed on the screen&lt;br /&gt;
:; Show Clue Slide for(seconds): The time, in seconds, that the clue slide is displayed on the screen&lt;br /&gt;
:; Show Answer Slide for(seconds): The time, in seconds, that the answer slide is displayed on the screen&lt;br /&gt;
:; Show Still Slide for(seconds): The time, in seconds, that the still slide is display on the screen&lt;br /&gt;
:; Play Music during Slide Show: Enabling this settings the script will play music during the slide show&lt;br /&gt;
:::; Music Mode: Two modes available, Music File/Playlist or Music Folder&lt;br /&gt;
:::; Music File/Playlist: Select the music file or playlist that is played during the slide show.  Only standard playlist(&#039;&#039;.m3u, .pls, .asf, .ram&#039;&#039;) are allowed(no SmartPlaylist) &lt;br /&gt;
:::; Music Folder: Select the folder which to play music from during the slide show&lt;br /&gt;
:::; Adjust Volume during Slide Show: Enabling this setting allows the script to drop the volume level during slide show&lt;br /&gt;
::::; Music Volume Level: Set the volume level(0-100)&lt;br /&gt;
::::; Fade Volume at end of Slide Show: Enabling this setting allows the script to fade the volume down, then back up at the end of the slide show&lt;br /&gt;
::::; Fade time in seconds: Set the fade time in seconds&lt;br /&gt;
:; Select Only Unwatched slides: Enabling this setting tells the script only to use unviewed slides.  The script will automatically reset the watched status during the slide show if slides run out before the end of the slide show&lt;br /&gt;
:; Reset Slide watched status: Manually reset the watched status of slides&lt;br /&gt;
:; Limit Slides by movie rating(requires slides.xml): Enabling this setting informs the script to limit the slides to a maximum MPAA rating of the movie.  Other movie rating formats are roughly assessed and matched to MPAA Ratings&lt;br /&gt;
:::; Rating Limit for Trivia(requires slides.xml): If the previous setting is not enabled, adjusting this setting will fix the MPAA level of the slides used in slide show&lt;br /&gt;
&lt;br /&gt;
=== Movie Quiz Script ===&lt;br /&gt;
&lt;br /&gt;
Use the Movie Quiz Script in place of the Slide Show&lt;br /&gt;
&lt;br /&gt;
=== Common Settings to the two trivia modes ===&lt;br /&gt;
:; Intro Video: Enabling this setting will play Intro video(s) before Trivia&lt;br /&gt;
:::; Single Video: Select a video to play, this also can be a playlist file(&#039;&#039;.m3u, .pls, .asf, .ram&#039;&#039;)&lt;br /&gt;
:::; 1 Random Video: Select a folder to play a single video from, randomly selected&lt;br /&gt;
:::; 2 Random Videos: Select a folder to play a two(2) videos from, randomly selected&lt;br /&gt;
:::; 3 Random Videos: Select a folder to play a three(3) videos from, randomly selected&lt;br /&gt;
:::; 4 Random Videos: Select a folder to play a four(4) videos from, randomly selected&lt;br /&gt;
:::; 5 Random Videos: Select a folder to play a five(5) videos from, randomly selected&lt;br /&gt;
:; Outro Video: Enabling this setting will play Outro video(s) at the end of the trivia&lt;br /&gt;
:::; Single Video: Select a video to play, this also can be a playlist file(&#039;&#039;.m3u, .pls, .asf, .ram&#039;&#039;)&lt;br /&gt;
:::; 1 Random Video: Select a folder to play a single video from, randomly selected&lt;br /&gt;
:::; 2 Random Videos: Select a folder to play a two(2) videos from, randomly selected&lt;br /&gt;
:::; 3 Random Videos: Select a folder to play a three(3) videos from, randomly selected&lt;br /&gt;
:::; 4 Random Videos: Select a folder to play a four(4) videos from, randomly selected&lt;br /&gt;
:::; 5 Random Videos: Select a folder to play a five(5) videos from, randomly selected&lt;br /&gt;
&lt;br /&gt;
== Special Videos ==&lt;br /&gt;
&lt;br /&gt;
== Movie Trailers ==&lt;br /&gt;
&lt;br /&gt;
== Feature Presentations ==&lt;br /&gt;
&lt;br /&gt;
== Home Automation ==&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
= Integration =&lt;br /&gt;
&lt;br /&gt;
== Home Automation Integration ==&lt;br /&gt;
&lt;br /&gt;
=== home_automation.py ===&lt;br /&gt;
When the script runs for the first time, the script will copy a folder named &#039;&#039;&#039;&#039;&#039;ha_scripts&#039;&#039;&#039;&#039;&#039; and it&#039;s contents to your &#039;&#039;&#039;&#039;&#039;userdata\addon_data\script.cinema.experience&#039;&#039;&#039;&#039;&#039; folder. Inside that folder is a file named &#039;&#039;home_automation.py&#039;&#039;, which is a python script that Cinema Experience will trigger. Here is were the coding begins. It may seem intimidating, but it&#039;s actually fairly simple. Edit &#039;&#039;home_automation.py&#039;&#039; in a text or script editor. Beginning on line 53 of the file, you will notice commented parts of the code that say &#039;&#039;{{color|#6aa84f|# place code below this line}}&#039;&#039;, example shown below in &#039;&#039;&#039;bold text&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
class Automate:&lt;br /&gt;
    def __init__( self ):&lt;br /&gt;
        pass&lt;br /&gt;
   &lt;br /&gt;
    def sab_pause(self, mode):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
            This function provides a method to pause and resume SabNZBd downloading, very useful on a limited network or low powered system&lt;br /&gt;
           &lt;br /&gt;
            Usage:&lt;br /&gt;
           &lt;br /&gt;
                apikey - Your SabNZBd API key goes here&lt;br /&gt;
                ip     - The IP of your SabNZBd Machine, if local, leave as is, if it does not work, put the actual address in&lt;br /&gt;
                port   - Normally 5000 but change it to match you SabNZBd program&lt;br /&gt;
               &lt;br /&gt;
                Pause:&lt;br /&gt;
               &lt;br /&gt;
                    self.sab_pause( &amp;quot;pause&amp;quot; )&lt;br /&gt;
               &lt;br /&gt;
                Resume:&lt;br /&gt;
               &lt;br /&gt;
                    self.sab_pause( &amp;quot;resume&amp;quot; )&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        apikey = &amp;quot;&amp;quot;&lt;br /&gt;
        ip = &amp;quot;127.0.0.1&amp;quot; # address&lt;br /&gt;
        port = &amp;quot;5000&amp;quot;&lt;br /&gt;
        url = &amp;quot;http://%s:%s/sabnzbd/&amp;quot; % ( ip, port )&lt;br /&gt;
        query = {}&lt;br /&gt;
        query[ &amp;quot;mode&amp;quot; ] = mode&lt;br /&gt;
        query[&amp;quot;apikey&amp;quot;] = apikey&lt;br /&gt;
        response = urllib2.urlopen( urllib2.Request( url + &amp;quot;api?&amp;quot;, urlencode( query ) ) )&lt;br /&gt;
        response_data = response.read()&lt;br /&gt;
     &lt;br /&gt;
    def activate_ha( self, trigger = None, prev_trigger = None, mode=&amp;quot;normal&amp;quot; ):&lt;br /&gt;
        if ha_settings[ &amp;quot;ha_enable&amp;quot; ]:&lt;br /&gt;
            if ha_settings[ &amp;quot;ha_multi_trigger&amp;quot; ] and prev_trigger == trigger:&lt;br /&gt;
                pass&lt;br /&gt;
            elif mode != &amp;quot;thread&amp;quot;:&lt;br /&gt;
                self.activate_on( trigger )&lt;br /&gt;
            else:&lt;br /&gt;
                thread = Thread( name=&#039;ha_trigger&#039;, target=self.activate_on, args=( trigger, ) )&lt;br /&gt;
                thread.start()&lt;br /&gt;
            prev_trigger = trigger&lt;br /&gt;
        return prev_trigger&lt;br /&gt;
&lt;br /&gt;
    def activate_on( self, trigger = None ):&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
            Scripting to trigger almost anything(HA, other scripts, etc...) when videos start. &lt;br /&gt;
           &lt;br /&gt;
            Usage:&lt;br /&gt;
                activate_on( &amp;quot;Movie&amp;quot; )&lt;br /&gt;
                will trigger code that is set under the Movie heading.&lt;br /&gt;
               &lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        if not trigger:&lt;br /&gt;
            utils.log( &amp;quot; - [ home_automation.py ] - No Trigger Sent, Returning&amp;quot;, xbmc.LOGNOTICE )&lt;br /&gt;
            return&lt;br /&gt;
        utils.log( &amp;quot; - [ home_automation.py ] - activate_on( %s ) Triggered&amp;quot; % trigger, xbmc.LOGNOTICE )&lt;br /&gt;
        if trigger in triggers:&lt;br /&gt;
            utils.log( &amp;quot; - [ home_automation.py ] - Trigger %s&amp;quot; % trigger, xbmc.LOGNOTICE )&lt;br /&gt;
        # Script Start&lt;br /&gt;
        if trigger == &amp;quot;Script Start&amp;quot; and ha_settings[ &amp;quot;ha_script_start&amp;quot; ]:&lt;br /&gt;
            # place code below this line&lt;br /&gt;
            pass&lt;br /&gt;
        # Trivia Intro&lt;br /&gt;
        elif trigger == &amp;quot;Trivia Intro&amp;quot; and ha_settings[ &amp;quot;ha_trivia_intro&amp;quot; ]:&lt;br /&gt;
            # place code below this line&lt;br /&gt;
            pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This line is where we will start. For those not familiar with python, lines beginning with &#039;{{color|#6aa84f|#}}&#039; are comment lines. To get the information to EventGhost, we need the script to send a broadcast. On XBMC Version Eden and Dharma, we used to use the xbmc.executehttpapi() function. Frodo and newer, HTTP API had been removed. Now the script includes it&#039;s own UDP Broadcaster. The home_automation.py script module already imports the &#039;&#039;&#039;utils&#039;&#039;&#039; module, all that is need it to used the &#039;&#039;&#039;utils.broadcastUDP()&#039;&#039;&#039; function.&lt;br /&gt;
&lt;br /&gt;
The broadcast we need to send from Cinema Experience is something that we can easily identify and distinguish in EventGhost. For this example we will use &amp;quot;CE_Automate&amp;quot;. We will also use the html &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; tag to start the broadcast, and &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; to end the broadcast, as well as &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; to separate the trigger. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=html&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;script_start&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;trivia_start&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s put it into the code, but first a little tip about the indentation. Python really likes indentation, in fact it will not work and throw a fit if the indentation is not correct. The script uses &#039;&#039;&#039;4 spaces per indentation&#039;&#039;&#039;, these are also &#039;&#039;&#039;not tabs&#039;&#039;&#039;. The code we insert will need to line up with the other indented lines. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# Script Start&lt;br /&gt;
if trigger == &amp;quot;Script Start&amp;quot; and ha_settings[ &amp;quot;ha_script_start&amp;quot; ]:&lt;br /&gt;
    # place code below this line&lt;br /&gt;
    utils.broadcastUDP( &amp;quot;&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;script_start&amp;lt;/b&amp;gt;&amp;quot; )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, when the script starts, it will broadcast: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;script_start&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== EventGhost Setup ===&lt;br /&gt;
&lt;br /&gt;
Now we need to turn our attention to EventGhost. Install the &#039;&#039;&#039;XBMC Event Receiver&#039;&#039;&#039; plugin [http://www.eventghost.net/forum/viewtopic.php?f=10&amp;amp;amp;t=2140&amp;amp;amp;start=30#p18203 found here] and setup with these settings(use the IP 127.0.0.1 if EventGhost is on the same machine as XBMC, otherwise use your XBMC IP address).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;35%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Event-Prefix:&lt;br /&gt;
| &#039;&#039;&#039;XBMC-Event&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| XBMC Host IP:&lt;br /&gt;
| &#039;&#039;&#039;127.0.0.1&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| XBMC HTTP Port:&lt;br /&gt;
| &#039;&#039;&#039;8083&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| XBMC Broadcast IP:&lt;br /&gt;
| &#039;&#039;&#039;255.255.255.255&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| UDP Port:&lt;br /&gt;
| &#039;&#039;&#039;8278&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Respond to Self Broadcast:&lt;br /&gt;
| &#039;&#039;&#039;checked&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Payload Delimiter:&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The triggers we need to look for are the messages that we have broadcast from Cinema Experience. The &#039;&#039;&#039;XBMC Event Receiver&#039;&#039;&#039; prefixes the broadcast with &#039;&#039;XBMC-Event.&#039;&#039;, so the event we will be looking for messages like this: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;script_start&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So now we can create a macro, and use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;script_start&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; as the event, then add what you want EventGhost to do when this event occurs. If the script senses that the playback has stopped (by pressing stop, video crash, etc.) it will trigger the &#039;&#039;script_end&#039;&#039; trigger.&lt;br /&gt;
&lt;br /&gt;
=== Script Triggers ===&lt;br /&gt;
&lt;br /&gt;
Here are a list of the triggers that are available:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;60%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Event !! Trigger&lt;br /&gt;
|-&lt;br /&gt;
| Script Start&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;script_start&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Script End&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;script_end&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trivia Intro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;trivia_intro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trivia Start&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;trivia_start&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trivia Outro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;trivia_outro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Movie Theater Intro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;movie_theatre_intro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Coming Attraction Intro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;coming_attractions_intro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Trailer&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;trailer&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Coming Attraction Outro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;coming_attractions_outro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Feature Presentation Intro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;feature_intro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Countdown Video&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;countdown_video&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Audio Format Video&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;audio_video&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rating Video&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;mpaa_rating&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FEATURE PRESENTATION&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;movie_start&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Intermission&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;intermission&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Feature Presentation Outro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;feature_outro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Movie Theater Outro&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;movie_theatre_outro&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paused&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;paused&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Resumed&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;XBMC-Event.&amp;lt;b&amp;gt;CE_Automate&amp;lt;li&amp;gt;resumed&amp;lt;/b&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Skin Integration ==&lt;br /&gt;
&lt;br /&gt;
Skin developers can now seamlessly integrate Cinema Experience! Often the chosen location for such integration is in the &#039;&#039;DialogVideoInfo.xml&#039;&#039; file. There are two methods, the old way and the new &#039;&#039;Movie ID&#039;&#039; way. Choose the method for your platform.&lt;br /&gt;
&lt;br /&gt;
=== Old Method (Dharma/Eden) ===&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
     &amp;lt;control type=&amp;quot;button&amp;quot; id=&amp;quot;49&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;description&amp;gt;Home Theatre&amp;lt;/description&amp;gt;&lt;br /&gt;
         &amp;lt;include&amp;gt;ButtonInfoDialogsCommonValues&amp;lt;/include&amp;gt;&lt;br /&gt;
         &amp;lt;label&amp;gt;Cinema&amp;lt;/label&amp;gt;&lt;br /&gt;
         &amp;lt;onclick&amp;gt;Dialog.Close(MovieInformation)&amp;lt;/onclick&amp;gt;&lt;br /&gt;
         &amp;lt;onclick&amp;gt;XBMC.RunScript(script.cinema.experience)&amp;lt;/onclick&amp;gt;&lt;br /&gt;
         &amp;lt;visible&amp;gt;system.hasaddon(script.cinema.experience) + Container.Content(movies)&amp;lt;/visible&amp;gt;&lt;br /&gt;
     &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== New Method (Frodo v3.0.1+) ===&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
     &amp;lt;control type=&amp;quot;button&amp;quot; id=&amp;quot;49&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;description&amp;gt;Home Theatre&amp;lt;/description&amp;gt;&lt;br /&gt;
         &amp;lt;include&amp;gt;ButtonInfoDialogsCommonValues&amp;lt;/include&amp;gt;&lt;br /&gt;
         &amp;lt;label&amp;gt;Cinema&amp;lt;/label&amp;gt;&lt;br /&gt;
         &amp;lt;onclick&amp;gt;Dialog.Close(MovieInformation)&amp;lt;/onclick&amp;gt;&lt;br /&gt;
         &amp;lt;onclick&amp;gt;XBMC.RunScript(script.cinema.experience,movieid=$INFO[ListItem.DBID])&amp;lt;/onclick&amp;gt;&lt;br /&gt;
         &amp;lt;visible&amp;gt;system.hasaddon(script.cinema.experience) + Container.Content(movies)&amp;lt;/visible&amp;gt;&lt;br /&gt;
     &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Script Starting Methods ==&lt;br /&gt;
&lt;br /&gt;
There are a few different arguments available to change the starting the script. This are mostly for starting from with-in a skin or from an outside source(remote). Each cause the script to behave differently.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Using the built-in RunScript Method&#039;&#039;&#039;&amp;lt;/big&amp;gt; &#039;&#039;&amp;lt;small&amp;gt;often used in skins and keymaps&amp;lt;/small&amp;gt;&#039;&#039;&lt;br /&gt;
:RunScript(script.cinema.experience,argument)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Using the JSON RPC Method&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
:{&amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;, &amp;quot;method&amp;quot;: &amp;quot;Addons.ExecuteAddon&amp;quot;, &amp;quot;params&amp;quot;: { &amp;quot;wait&amp;quot;: false, &amp;quot;addonid&amp;quot;: &amp;quot;script.cinema.experience&amp;quot;, &amp;quot;params&amp;quot;: [ &amp;quot;arguments&amp;quot; ] }, &amp;quot;id&amp;quot;: 1}&lt;br /&gt;
&lt;br /&gt;
=== Available Arguments ===&lt;br /&gt;
&lt;br /&gt;
==== Window ID ====&lt;br /&gt;
&lt;br /&gt;
This is primarily used to put the script into multiple feature mode, though it can be used for a single Movie. The user will need to queue the movies into a playlist(normal queuing methods are used, Q on a keyboard, 0 on a remote or from the context menu)&lt;br /&gt;
&lt;br /&gt;
Possible window IDs to use:&lt;br /&gt;
::movietitles&lt;br /&gt;
::moviegenres&lt;br /&gt;
::movieyears&lt;br /&gt;
::movieactors&lt;br /&gt;
::moviedirectors&lt;br /&gt;
::moviestudios&lt;br /&gt;
::moviesets&lt;br /&gt;
::moviecountries&lt;br /&gt;
::recentlyaddedmovies&lt;br /&gt;
&lt;br /&gt;
These match the general quick library links available from the homepage.&lt;br /&gt;
&lt;br /&gt;
eg.&lt;br /&gt;
:::RunScript(script.cinema.experience,movietitles)&lt;br /&gt;
&lt;br /&gt;
This will open up the library using Movie Titles, with the script waiting for the set number of features to be queue.&lt;br /&gt;
&lt;br /&gt;
==== Movie ID ====&lt;br /&gt;
&lt;br /&gt;
This is a new method introduced in version 3.0.1 of the script, to replace the former method of starting the script from a skin. The former method(no arguments sent to the script) caused an unsightly jump in the Movie Library list. This was due to the method XBMC uses to queue a video. With Frodo, skins now can extract the database ID for the Movie(using $INFO[ListItem.DBID] ) This method also allow a known database ID to be sent. Multiple database IDs can be sent at the same time, causing the script to go into Multiple Feature mode(fixed in version 3.0.4). The database IDs need to be separated by a semi-colon(;)&lt;br /&gt;
&lt;br /&gt;
eg.&lt;br /&gt;
:::RunScript(script.cinema.experience,movieid=$INFO[ListItem.DBID]) &amp;lt;small&amp;gt;&#039;&#039;skin method&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::RunScript(script.cinema.experience,movieid=35) &amp;lt;small&amp;gt;&#039;&#039;single movie database ID&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
:::{&amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;, &amp;quot;method&amp;quot;: &amp;quot;Addons.ExecuteAddon&amp;quot;, &amp;quot;params&amp;quot;: { &amp;quot;wait&amp;quot;: false, &amp;quot;addonid&amp;quot;: &amp;quot;script.cinema.experience&amp;quot;, &amp;quot;params&amp;quot;: [ &amp;quot;movieid=35&amp;quot; ] }, &amp;quot;id&amp;quot;: 1}&lt;br /&gt;
&lt;br /&gt;
:::RunScript(script.cinema.experience,movieid=35;123;112) &amp;lt;small&amp;gt;&#039;&#039;multiple movie database IDs&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
:::{&amp;quot;jsonrpc&amp;quot;: &amp;quot;2.0&amp;quot;, &amp;quot;method&amp;quot;: &amp;quot;Addons.ExecuteAddon&amp;quot;, &amp;quot;params&amp;quot;: { &amp;quot;wait&amp;quot;: false, &amp;quot;addonid&amp;quot;: &amp;quot;script.cinema.experience&amp;quot;, &amp;quot;params&amp;quot;: [ &amp;quot;movieid=35;123;112&amp;quot; ] }, &amp;quot;id&amp;quot;: 1}&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages with syntax highlighting errors]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Program add-ons]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Compile_Kodi_on_openSUSE&amp;diff=139619</id>
		<title>Archive:Compile Kodi on openSUSE</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Compile_Kodi_on_openSUSE&amp;diff=139619"/>
		<updated>2018-07-10T12:39:29Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Compiling]]}}&lt;br /&gt;
{{redv|Warning:|This page is &#039;&#039;&#039;deprecated&#039;&#039;&#039;.&amp;lt;br /&amp;gt;Starting with Kodi v18 &amp;quot;Leia&amp;quot;, Kodi&#039;s build guides are kept &#039;&#039;&#039;[https://github.com/xbmc/xbmc/blob/master/docs/README.md alongside the code]&#039;&#039;&#039;, where it is much easier to keep them up-to-date with current code.}}&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
In order to successful install XBMC Eden, (by source or by rpms) you need the following Repositories to be added in Yast (change &amp;quot;12.1&amp;quot; to &amp;quot;11.4&amp;quot; or &amp;quot;11.3&amp;quot; if required):&lt;br /&gt;
&lt;br /&gt;
* openSUSE-12.1-Oss (this is already enabled in a standard installation)&lt;br /&gt;
http://download.opensuse.org/distribution/12.1/repo/oss/&lt;br /&gt;
&lt;br /&gt;
* Packman Repository&lt;br /&gt;
http://ftp.skynet.be/pub/packman/suse/12.1/&lt;br /&gt;
&lt;br /&gt;
You can easly add them by &#039;&#039;&#039;YaST (package manager) --&amp;gt; repositories --&amp;gt; repositories manager --&amp;gt; add --&amp;gt; community repositories&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Installation with RPMs ===&lt;br /&gt;
Use YaST or zypper to install XBMC:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;$ sudo zypper in XBMC&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; XBMC is in the Packman repository&lt;br /&gt;
&#039;&#039;&#039;NOTE: As of April 1st, 2012, XBMC-Eden (11.0) has not yet been uploaded to the Packman repository&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can now skip to &#039;&#039;[[#Run It|Run It!]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installation from source code ===&lt;br /&gt;
&lt;br /&gt;
==== Getting the source code ====&lt;br /&gt;
===== Stable sources =====&lt;br /&gt;
&lt;br /&gt;
Stable sources can be downloaded in tar.gz format from&lt;br /&gt;
http://mirrors.kodi.tv/releases/source/&lt;br /&gt;
&lt;br /&gt;
After downloading, run &lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;$ tar -xfz xbmc-11.0.tar.gz&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now skip to &#039;&#039;[[#Installing all building dependencies|Installing all building dependencies]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Development sources =====&lt;br /&gt;
If you want to build xbmc from current development snapshot:&lt;br /&gt;
The first time:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;$ sudo zypper in git&lt;br /&gt;
$ cd $HOME&lt;br /&gt;
$ mkdir src&lt;br /&gt;
$ cd src&lt;br /&gt;
$ git clone git://github.com/xbmc/xbmc.git&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to update the source code (and clean old make files):&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;$ cd $HOME/src&lt;br /&gt;
$ git pull&lt;br /&gt;
$ make clean&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installing all building dependencies ====&lt;br /&gt;
&lt;br /&gt;
XBMC requires a number of external libraries to build (you may want to copy and paste):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;$ sudo zypper in make cmake autoconf automake gcc gcc-c++ libtool gettext-devel patch&lt;br /&gt;
$ sudo zypper in boost-devel glew-devel libmysqlclient-devel libass-devel libmpeg2-devel&lt;br /&gt;
$ sudo zypper in libmad-devel libjpeg-devel libsamplerate-devel libogg-devel libvorbis-devel&lt;br /&gt;
$ sudo zypper in libmodplug-devel libcurl-devel flac-devel libbz2-devel libtiff-devel lzo-devel &lt;br /&gt;
$ sudo zypper in libyajl-devel fribidi-devel sqlite3-devel libpng12-devel pcre-devel libcdio-devel&lt;br /&gt;
$ sudo zypper in libjasper-devel libSDL_mixer-devel libSDL_image-devel libmicrohttpd-devel&lt;br /&gt;
$ sudo zypper in libsmbclient-devel python-devel gperf zip nasm &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile source ====&lt;br /&gt;
To compile respecting openSUSE Filesystem structure please do the following:&lt;br /&gt;
&lt;br /&gt;
===== 32bit (i586) =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;$ cd XBMC_DIRECOTRY (the directory you extracted / pull XBMC into)&lt;br /&gt;
$ ./bootstrap&lt;br /&gt;
$ ./configure --enable-mid --disable-debug --disable-pulse --prefix=/usr&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 64bit (x86_64) =====&lt;br /&gt;
I doubt that all this is needed any more - I just did an x86_64 build without this stuff. I had to however install a few more dependencies. &lt;br /&gt;
&lt;br /&gt;
x86_64 users need to export CFLAGS and apply a patch because a non standard &#039;&#039;&#039;libdir&#039;&#039;&#039; ( http://forum.kodi.tv/showthread.php?t=34527 ) on ubuntu (the only one supported)&lt;br /&gt;
&lt;br /&gt;
create a text file called for example &amp;quot;missing-cflags.patch&amp;quot; a paste inside it the following lines:&lt;br /&gt;
&lt;br /&gt;
http://pastebin.com/f22b29f07&lt;br /&gt;
&lt;br /&gt;
than put it in your folder and type the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;$ cd $HOME/xbmc&lt;br /&gt;
$ mv ../missing-cflags.patch .&lt;br /&gt;
$ patch -p1 &amp;lt; missing-cflags.patch&lt;br /&gt;
$ CFLAGS=&amp;quot;-I/usr/lib64/dbus-1.0/include -I/usr/lib64/glib-2.0/include&amp;quot;&lt;br /&gt;
$ export CFLAGS&lt;br /&gt;
$ ./configure --enable-mid --disable-debug --disable-pulse --prefix=/usr&lt;br /&gt;
$ CFLAGS=&amp;quot;-I/usr/lib64/dbus-1.0/include -I/usr/lib64/glib-2.0/include&amp;quot; make&lt;br /&gt;
$ sudo make install&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Run it ==&lt;br /&gt;
&lt;br /&gt;
Open a shell and type &amp;lt;syntaxhighlight lang=bash&amp;gt;xbmc&amp;lt;/syntaxhighlight&amp;gt; to launch it.&lt;br /&gt;
&lt;br /&gt;
Continue with [[Media Sources|How to Add Content (Media Sources)]] to your XBMC.&lt;br /&gt;
&lt;br /&gt;
Have fun&lt;br /&gt;
[http://developer.novell.com/wiki/index.php/User:Anubisg1 Anubisg1]&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to]]&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Compiling]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Use_any_IR_remote_with_OpenELEC&amp;diff=139616</id>
		<title>Archive:Use any IR remote with OpenELEC</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Use_any_IR_remote_with_OpenELEC&amp;diff=139616"/>
		<updated>2018-07-10T12:36:56Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{forum link2|1=Have questions about this guide or want to comment on it? Go here: http://forum.kodi.tv/showthread.php?pid=1656784}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;How to get your infrared [[LIRC]] remote working in [[Archive:OpenELEC]]. This guide will show you how to modify OpenELEC so that it works with almost any LIRC remote. The four files are lircd.conf Lircmap.xml remote.xml and autostart.sh&lt;br /&gt;
&lt;br /&gt;
This is really simple and can be accomplished in 15-20 min.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can likely use any remote.xml you can find. The one in the default root location (/usr/share/xbmc/system/keymaps) should be fine. Copy it and put it in the /storage/.xbmc/userdata/keymaps location as we might be tweaking it.&lt;br /&gt;
&lt;br /&gt;
== Guide ==&lt;br /&gt;
{{how-to&lt;br /&gt;
| Step1 = We must first change the protocol if you are going to use irrecord on the OpenELEC machine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;ir-keytable -p lirc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step2 = First thing is grab the IR remote of your choice and follow the previous tutorial [http://forum.kodi.tv/showthread.php?tid=170372 &amp;quot;Use Any IR Remote In The House&amp;quot;], but &#039;&#039;&#039;skip the remote.xml part.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| Step3 = Start at step 13 and don&#039;t use sudo. Also, use the terminal editor nano or do all of it on some other linux based machine. You will have to adjust a few things as OpenELEC is different.&lt;br /&gt;
&lt;br /&gt;
| Step4 = This will get you the first 2 files and consumes most of the 15 mins.&lt;br /&gt;
&lt;br /&gt;
:lircd.conf&lt;br /&gt;
:Lircmap.xml (see below for template)&lt;br /&gt;
&lt;br /&gt;
| Step5 = &lt;br /&gt;
Make sure the name of your remote matches in Lircmap.xml and lircd.conf&lt;br /&gt;
&lt;br /&gt;
Here are the valid Lircmap.xml names. Don&#039;t try to make up your own. Don&#039;t go too crazy. Stick to the common names and it will mean less editing. Copy this entire thing to your Lircmap.xml (change your remote name) and only fill in the ones you need. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&amp;lt;lircmap&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;remote device=&amp;quot;MY-Remote-Name&amp;quot;&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
  &amp;lt;left&amp;gt;&amp;lt;/left&amp;gt;&lt;br /&gt;
  &amp;lt;right&amp;gt;&amp;lt;/right&amp;gt;&lt;br /&gt;
  &amp;lt;up&amp;gt;&amp;lt;/up&amp;gt;&lt;br /&gt;
  &amp;lt;down&amp;gt;&amp;lt;/down&amp;gt;&lt;br /&gt;
  &amp;lt;select&amp;gt;&amp;lt;/select&amp;gt;&lt;br /&gt;
  &amp;lt;back&amp;gt;&amp;lt;/back&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;play&amp;gt;&amp;lt;/play&amp;gt;&lt;br /&gt;
  &amp;lt;pause&amp;gt;&amp;lt;/pause&amp;gt;&lt;br /&gt;
  &amp;lt;stop&amp;gt;&amp;lt;/stop&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;volumeplus&amp;gt;&amp;lt;/volumeplus&amp;gt;&lt;br /&gt;
  &amp;lt;volumeminus&amp;gt;&amp;lt;/volumeminus&amp;gt;&lt;br /&gt;
  &amp;lt;mute&amp;gt;&amp;lt;/mute&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pageplus&amp;gt;&amp;lt;/pageplus&amp;gt;&lt;br /&gt;
  &amp;lt;pageminus&amp;gt;&amp;lt;/pageminus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;power&amp;gt;&amp;lt;/power&amp;gt;&lt;br /&gt;
  &amp;lt;menu&amp;gt;&amp;lt;/menu&amp;gt;&lt;br /&gt;
  &amp;lt;info&amp;gt;&amp;lt;/info&amp;gt;&lt;br /&gt;
  &amp;lt;display&amp;gt;&amp;lt;/display&amp;gt;&lt;br /&gt;
  &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;red&amp;gt;&amp;lt;/red&amp;gt;&lt;br /&gt;
  &amp;lt;green&amp;gt;&amp;lt;/green&amp;gt;&lt;br /&gt;
  &amp;lt;yellow&amp;gt;&amp;lt;/yellow&amp;gt;&lt;br /&gt;
  &amp;lt;blue&amp;gt;&amp;lt;/blue&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;zero&amp;gt;&amp;lt;/zero&amp;gt;&lt;br /&gt;
  &amp;lt;one&amp;gt;&amp;lt;/one&amp;gt;&lt;br /&gt;
  &amp;lt;two&amp;gt;&amp;lt;/two&amp;gt;&lt;br /&gt;
  &amp;lt;three&amp;gt;&amp;lt;/three&amp;gt;&lt;br /&gt;
  &amp;lt;four&amp;gt;&amp;lt;/four&amp;gt;&lt;br /&gt;
  &amp;lt;five&amp;gt;&amp;lt;/five&amp;gt;&lt;br /&gt;
  &amp;lt;six&amp;gt;&amp;lt;/six&amp;gt;&lt;br /&gt;
  &amp;lt;seven&amp;gt;&amp;lt;/seven&amp;gt;&lt;br /&gt;
  &amp;lt;eight&amp;gt;&amp;lt;/eight&amp;gt;&lt;br /&gt;
  &amp;lt;nine&amp;gt;&amp;lt;/nine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;skipplus&amp;gt;&amp;lt;/skipplus&amp;gt;&lt;br /&gt;
  &amp;lt;skipminus&amp;gt;&amp;lt;/skipminus&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;reverse&amp;gt;&amp;lt;/reverse&amp;gt;&lt;br /&gt;
  &amp;lt;forward&amp;gt;&amp;lt;/forward&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;subtitle&amp;gt;&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&amp;lt;/language&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;channelplus&amp;gt;&amp;lt;/channelplus&amp;gt;&lt;br /&gt;
  &amp;lt;channelminus&amp;gt;&amp;lt;/channelminus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;mytv&amp;gt;&amp;lt;/mytv&amp;gt;&lt;br /&gt;
  &amp;lt;mymusic&amp;gt;&amp;lt;/mymusic&amp;gt;&lt;br /&gt;
  &amp;lt;mypictures&amp;gt;&amp;lt;/mypictures&amp;gt;&lt;br /&gt;
  &amp;lt;myvideo&amp;gt;&amp;lt;/myvideo&amp;gt;&lt;br /&gt;
  &amp;lt;livetv&amp;gt;&amp;lt;/livetv&amp;gt;&lt;br /&gt;
  &amp;lt;recordedtv&amp;gt;&amp;lt;/recordedtv&amp;gt;&lt;br /&gt;
  &amp;lt;liveradio&amp;gt;&amp;lt;/liveradio&amp;gt;&lt;br /&gt;
  &amp;lt;epgsearch&amp;gt;&amp;lt;/epgsearch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;guide&amp;gt;&amp;lt;/guide&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;record&amp;gt;&amp;lt;/record&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&amp;lt;/start&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
  &amp;lt;star&amp;gt;&amp;lt;/star&amp;gt;&lt;br /&gt;
  &amp;lt;hash&amp;gt;&amp;lt;/hash&amp;gt;&lt;br /&gt;
  &amp;lt;clear&amp;gt;&amp;lt;/clear&amp;gt;&lt;br /&gt;
  &amp;lt;enter&amp;gt;&amp;lt;/enter&amp;gt;&lt;br /&gt;
  &amp;lt;xbox&amp;gt;&amp;lt;/xbox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;playlist&amp;gt;&amp;lt;/playlist&amp;gt;&lt;br /&gt;
  &amp;lt;teletext&amp;gt;&amp;lt;/teletext&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/remote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lircmap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step6 = Next create an autostart.sh file in /storage/.config (If you have one already just add the following to that file)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
killall lircd&lt;br /&gt;
ir-keytable -p lirc&lt;br /&gt;
lircd --device=/dev/lirc0 /storage/.config/lircd.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need the #!/bin/sh if you already have it in the file.&lt;br /&gt;
&lt;br /&gt;
| Step7 = Make the file executable:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;chmod +x /storage/.config/autostart.sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step8 = Place lircd.conf in /storage/.config/&lt;br /&gt;
&lt;br /&gt;
Place Lircmap.xml in /storage/.xbmc/userdata/&lt;br /&gt;
&lt;br /&gt;
and place remote.xml in /storage/.xbmc/userdata/keymaps/&lt;br /&gt;
&lt;br /&gt;
| Step9 = That&#039;s it! Piece of cake. Reboot&lt;br /&gt;
&lt;br /&gt;
| Step10 = If for any reason you want to go back to the way it was, simply delete those files.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Credit goes to FishOil for the original guide: http://forum.kodi.tv/showthread.php?pid=1656784&lt;br /&gt;
&lt;br /&gt;
* You also may want to have a look at [http://forum.kodi.tv/showthread.php?tid=189617 Understanding LIRC &amp;amp; XBMC]&lt;br /&gt;
&lt;br /&gt;
* If it doesn&#039;t work the first step is to find out if LIRC is configured correctly&lt;br /&gt;
:# SSH into the box and type irw&lt;br /&gt;
:# Push some buttons on the remote.&lt;br /&gt;
:# Your custom remote name should be displayed along with the button name.&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to]]&lt;br /&gt;
[[Category:Remotes]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Use_SMS-style_text_entry_for_remotes&amp;diff=139613</id>
		<title>HOW-TO:Use SMS-style text entry for remotes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Use_SMS-style_text_entry_for_remotes&amp;diff=139613"/>
		<updated>2018-07-10T12:35:41Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Remote controls]]}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;If you have a remote control that is viewed as a keyboard to Kodi and want to enable SMS-style text input and page jumping, this guide wills how you how to enable this using a custom &#039;&#039;&#039;[[keymap]]&#039;&#039;&#039;. If you have a normal &amp;quot;[[MCE]]&amp;quot; style remote or non-Android [[CEC]] device, then this how-to may not necessary.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{how-to&lt;br /&gt;
| Step1 = Create a &#039;&#039;&#039;plain text file&#039;&#039;&#039; (no rich text formatting, don&#039;t use .doc, etc) and save it as &#039;&#039;&#039;keyboard.xml&#039;&#039;&#039;. Make sure that the file extension is &amp;quot;.xml&amp;quot; and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;quot;.txt&amp;quot; or &amp;quot;.xml.txt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
| Step2 = Cut and paste this into your new plain text file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;global&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;JumpSMS1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;JumpSMS2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;JumpSMS3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;JumpSMS4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;JumpSMS5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;JumpSMS6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;JumpSMS7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;JumpSMS8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;JumpSMS9&amp;lt;/nine&amp;gt;&lt;br /&gt;
      &amp;lt;escape&amp;gt;Back&amp;lt;/escape&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
  &amp;lt;VirtualKeyboard&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
      &amp;lt;backspace&amp;gt;Backspace&amp;lt;/backspace&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualKeyboard&amp;gt;&lt;br /&gt;
  &amp;lt;FullscreenVideo&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
      &amp;lt;escape&amp;gt;Stop&amp;lt;/escape&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/FullscreenVideo&amp;gt;&lt;br /&gt;
  &amp;lt;VideoMenu&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/VideoMenu&amp;gt;&lt;br /&gt;
  &amp;lt;NumericInput&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/NumericInput&amp;gt;&lt;br /&gt;
  &amp;lt;Teletext&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/Teletext&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step3 = Save this file in [[userdata]]/Keymaps/:&lt;br /&gt;
{{hidden|1=[[userdata folder]] location:|2={{#lst:userdata|location all}} }}&lt;br /&gt;
Note: if you use the Keymap Editor addon for Kodi, you need to append these new XML lines above inside the XML file generated by this addon, &#039;&#039;&#039;not&#039;&#039;&#039; in keyboard.xml. In March of 2015, the file generated by Keymap Editor is called &amp;quot;gen.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
| Step4 = If Kodi is already running then restart it so that the changes take effect.&lt;br /&gt;
&lt;br /&gt;
| Step5 = {{note|This step is not required for Kodi v14 and higher.}}&lt;br /&gt;
&lt;br /&gt;
Go into Kodi and then {{highlight|bordered=yes|[[Settings/System#Input devices|Settings -&amp;gt; System -&amp;gt; Input devices]]}} and enable &#039;&#039;&#039;Remote control sends keyboard presses&#039;&#039;&#039;. This will allow your arrow keys to use the on-screen keyboard even though Kodi thinks your remote is a keyboard already.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Filter instead of jump ==&lt;br /&gt;
You can also use FilterSMS instead of JumpSMS in the above keymap. This will filter out titles that don&#039;t match the letters being entered.&lt;br /&gt;
&lt;br /&gt;
For example, typing &amp;quot;STAR&amp;quot; will filter out anything that doesn&#039;t start with those letters, leaving behind entries like &amp;quot;Star Wars&amp;quot;, &amp;quot;Star Trek&amp;quot;, &amp;quot;Stargate&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
== Note for Imon remotes users ==&lt;br /&gt;
* Some Imon remotes, such as the Pad, and perhaps other remotes, have numeric buttons that do not send keys like “one”, “two”, etc. Neither they do output key-codes from the numeric pad of a keyboard. What they do is send key-codes from the keys Under the function keys (F1, F2, etc), meaning: 1,2,3, etc. The problem on some system is : they send the keyboard’s lowercase (unshifted) characters for the 1,2,3, etc, keys. For example, if you have a French AZERTY keyboard, the remote&#039;s numeric keys will be understood by Kodi as &amp;quot;&amp;amp;é”‘(-è_çà)&amp;quot;. As a result, the XML lines above need to be changed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Using the Keymap Editor addon, it should be possible to press the remote buttons and have the button&#039;s output registered. But in some cases it is not possible or not handy, so it is sometimes better to use some real keyboard key codes. In the following method, we do not count on the remote&#039;s IR emitted key codes, but on regular keyboard keystrokes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use the Keymap Editor addon to note which key-code Kodi gets when typing the keys from the second row of the keyboard. Go to Keymap Editor &amp;gt; edit &amp;gt; global &amp;gt; virtual keyboard &amp;gt; and for each number, type the corresponding numeric key on the keyboard (not the numpad).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Open the gen.xml file, generated by the Keymap Editor addon. Following the instructions above, it should include the XML lines above for the T9 ability. Edit the lines like &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt; and replace them by the codes you got from the Keymap Editor addon. For example : &amp;lt;key id=”61488″&amp;gt;Number0&amp;lt;/key&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* More info on this : http://www.dreamcraftdigital.com/kodiandimon/ , http://forum.kodi.tv/showthread.php?tid=218401 , http://www.soundgraph.com/forums/showthread.php?t=27737&lt;br /&gt;
&lt;br /&gt;
{{Isengard updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Remotes]]&lt;br /&gt;
[[Category:How-to]]&lt;br /&gt;
[[Category:Custom keymaps]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Fade_label_control&amp;diff=139611</id>
		<title>Fade label control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Fade_label_control&amp;diff=139611"/>
		<updated>2018-07-10T12:34:23Z</updated>

		<summary type="html">&lt;p&gt;Kibje: /* Example */ syntaxhighlight fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The fade label control is used for displaying multiple pieces of text in the same space in Kodi. You can choose the font, size, colour, location and contents of the text to be displayed. The first piece of information to display fades in over 50 frames, then scrolls off to the left. Once it is finished scrolling off screen, the second piece of information fades in and the process repeats. A fade label control is not supported in a list container.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;control type=&amp;quot;fadelabel&amp;quot; id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;My First fadelabel&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
        &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
        &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
        &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
        &amp;lt;scrollout&amp;gt;true&amp;lt;/scrollout&amp;gt;&lt;br /&gt;
        &amp;lt;pauseatend&amp;gt;200&amp;lt;/pauseatend&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt;6&amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Genre&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Artist&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Album&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Year&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;font&amp;gt;font14&amp;lt;/font&amp;gt;&lt;br /&gt;
        &amp;lt;textcolor&amp;gt;FFB2D4F5&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
        &amp;lt;textoffsetx&amp;gt;20&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
        &amp;lt;scroll&amp;gt;true&amp;lt;/scroll&amp;gt;&lt;br /&gt;
        &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
  &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag descriptions ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tags !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the text which should be drawn. You should specify an entry from the strings.xml here, however you may also specify a piece of text yourself if you wish, though ofcourse it will not be localisable. [[Label Parsing|You may also specify more than one piece of information here by using the $INFO and $LOCALIZE formats.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;info&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the information that should be presented. Kodi will &amp;lt;span class=&amp;quot;nobr&amp;quot;&amp;gt;auto-fill&amp;lt;/span&amp;gt; in this info in place of the &amp;lt;label&amp;gt;. [[InfoLabels|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the font to use from the font.xml file.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specified the color the text should be, in hex AARRGGBB format, or a name from the [[Colour Themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
|  Specify the offset from the left edge that the text should be rendered at when static (not scrolling).  The scrolling text will still scroll using the full &amp;lt;width&amp;gt; of the control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour Themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;angle&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the angle at which the text should be drawn, measured counter clockwise from the horizontal.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrollout&#039;&#039;&#039;&lt;br /&gt;
|  If set to False the fadelabel will only scroll until the last char is to the right side of the width of the fadelabel instead of all the way out to the left. Defaults to true&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;pauseatend&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the time that the text will wait until it fades away before it scrolls again or moves to the next item.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;resetonlabelchange&#039;&#039;&#039;&lt;br /&gt;
|  If set to false the fadelabel will not reset the scrolling offset when the label&#039;s content changes. Useful if you have things such as the play time (in seconds) inside a fadelabel. Defaults to true.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrollspeed&#039;&#039;&#039;&lt;br /&gt;
|  Scroll speed of text in pixels per second. Defaults to 60.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scroll&#039;&#039;&#039;&lt;br /&gt;
|  If set to false, the labels won&#039;t scroll. Defaults to true.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;randomize&#039;&#039;&#039;&lt;br /&gt;
|  If set to true, the labels will be displayed in a random order. Defaults to false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Fade_label_control&amp;diff=139610</id>
		<title>Fade label control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Fade_label_control&amp;diff=139610"/>
		<updated>2018-07-10T12:34:06Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighter fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The fade label control is used for displaying multiple pieces of text in the same space in Kodi. You can choose the font, size, colour, location and contents of the text to be displayed. The first piece of information to display fades in over 50 frames, then scrolls off to the left. Once it is finished scrolling off screen, the second piece of information fades in and the process repeats. A fade label control is not supported in a list container.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;control type=&amp;quot;fadelabel&amp;quot; id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;My First fadelabel&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
        &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
        &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
        &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
        &amp;lt;scrollout&amp;gt;true&amp;lt;/scrollout&amp;gt;&lt;br /&gt;
        &amp;lt;pauseatend&amp;gt;200&amp;lt;/pauseatend&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt;6&amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Genre&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Artist&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Album&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Year&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;font&amp;gt;font14&amp;lt;/font&amp;gt;&lt;br /&gt;
        &amp;lt;textcolor&amp;gt;FFB2D4F5&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
        &amp;lt;textoffsetx&amp;gt;20&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
        &amp;lt;scroll&amp;gt;true&amp;lt;/scroll&amp;gt;&lt;br /&gt;
        &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
  &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag descriptions ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tags !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the text which should be drawn. You should specify an entry from the strings.xml here, however you may also specify a piece of text yourself if you wish, though ofcourse it will not be localisable. [[Label Parsing|You may also specify more than one piece of information here by using the $INFO and $LOCALIZE formats.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;info&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the information that should be presented. Kodi will &amp;lt;span class=&amp;quot;nobr&amp;quot;&amp;gt;auto-fill&amp;lt;/span&amp;gt; in this info in place of the &amp;lt;label&amp;gt;. [[InfoLabels|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the font to use from the font.xml file.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specified the color the text should be, in hex AARRGGBB format, or a name from the [[Colour Themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
|  Specify the offset from the left edge that the text should be rendered at when static (not scrolling).  The scrolling text will still scroll using the full &amp;lt;width&amp;gt; of the control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour Themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;angle&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the angle at which the text should be drawn, measured counter clockwise from the horizontal.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrollout&#039;&#039;&#039;&lt;br /&gt;
|  If set to False the fadelabel will only scroll until the last char is to the right side of the width of the fadelabel instead of all the way out to the left. Defaults to true&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;pauseatend&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the time that the text will wait until it fades away before it scrolls again or moves to the next item.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;resetonlabelchange&#039;&#039;&#039;&lt;br /&gt;
|  If set to false the fadelabel will not reset the scrolling offset when the label&#039;s content changes. Useful if you have things such as the play time (in seconds) inside a fadelabel. Defaults to true.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrollspeed&#039;&#039;&#039;&lt;br /&gt;
|  Scroll speed of text in pixels per second. Defaults to 60.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scroll&#039;&#039;&#039;&lt;br /&gt;
|  If set to false, the labels won&#039;t scroll. Defaults to true.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;randomize&#039;&#039;&#039;&lt;br /&gt;
|  If set to true, the labels will be displayed in a random order. Defaults to false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Favourites.xml&amp;diff=139608</id>
		<title>Favourites.xml</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Favourites.xml&amp;diff=139608"/>
		<updated>2018-07-10T12:33:37Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighter fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Userdata]] {{l2| [[Favourites]] }} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Developer documentation detailing the structure and modification of the favourites.xml file. For the User Guide about the favourites feature see &#039;&#039;&#039;&#039;&#039;[[Favourites]]&#039;&#039;&#039;&#039;&#039;.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Favourites via xml==&lt;br /&gt;
The &#039;&#039;&#039;display order&#039;&#039;&#039; seen in the Favourites screen is determined by the order of the entries in the xml file. Adjust the order of the favourites in the file to modify the displayed order in {{kodi}}.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;&#039;&#039;favourites.xml&#039;&#039;&#039;&#039;&#039; is located in the &#039;&#039;&#039;&#039;&#039;[[Userdata]]&#039;&#039;&#039;&#039;&#039; folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example: &#039;&#039;&#039;&lt;br /&gt;
The format of the favourites.xml is as follows. The example shows Playlist, TV Show, TV Episode, Artist, Album and Add-on.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;favourites&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;Marvel Universe&amp;quot;&amp;gt;ActivateWindow(10025,&amp;amp;quot;special://profile/playlists/video/Marvel Universe.xsp&amp;amp;quot;,return)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;Continuum&amp;quot; thumb=&amp;quot;E:\TV Show- TEST\Continuum\thumb.jpg&amp;quot;&amp;gt;ActivateWindow(10025,&amp;amp;quot;E:\\TV Show- TEST\\Continuum\\&amp;amp;quot;,return)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;1x02. Fast Times&amp;quot; thumb=&amp;quot;E:\TV Show- TEST\Continuum\Continuum S01E02-thumb.jpg&amp;quot;&amp;gt;PlayMedia(&amp;amp;quot;E:\\TV Show- TEST\\Continuum\\Continuum S01E02.mkv&amp;amp;quot;)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;Era&amp;quot; thumb=&amp;quot;F:\Music\ArtistInfoKodi\Era\folder.jpg&amp;quot;&amp;gt;ActivateWindow(10502,&amp;amp;quot;musicdb://artists/113/?albumartistsonly=false&amp;amp;quot;,return)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;NextPVR PVR Client&amp;quot; thumb=&amp;quot;F:\Kodi v18- Nightly\addons\pvr.nextpvr\icon.png&amp;quot;&amp;gt;RunAddon(pvr.nextpvr)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;TV Show- TEST&amp;quot;&amp;gt;ActivateWindow(10025,&amp;amp;quot;E:\\TV Show- TEST\\&amp;amp;quot;,return)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;Artist Albums&amp;quot;&amp;gt;ActivateWindow(10502,&amp;amp;quot;F:\\Music\\FLAC\\Artist Albums\\&amp;amp;quot;,return)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
&amp;lt;/favourites&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Renaming a favourite via xml== &lt;br /&gt;
Change the name of any item by amending the &#039;&#039;&amp;lt;fabourite name=&amp;quot;&amp;quot;&amp;gt;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;favourites&amp;gt;&lt;br /&gt;
    &amp;lt;favourite name=&amp;quot;Enter Desired name here&amp;quot; thumb=&amp;quot;http://static.ddmcdn.com/gif/videos/120x90/52447.jpg&amp;quot;&amp;gt;PlayMedia(&amp;amp;quot;plugin://plugin.video.howstuffworks_com/?url=52447&amp;amp;amp;mode=playVideo&amp;amp;quot;)&amp;lt;/favourite&amp;gt;&lt;br /&gt;
&amp;lt;/favourites&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
{{updated|18}}&lt;br /&gt;
[[Category:Index]]&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:General topics]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Use_SMS-style_text_entry_for_remotes&amp;diff=139604</id>
		<title>HOW-TO:Use SMS-style text entry for remotes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Use_SMS-style_text_entry_for_remotes&amp;diff=139604"/>
		<updated>2018-07-10T12:31:34Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighter fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Remote controls]]}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;If you have a remote control that is viewed as a keyboard to Kodi and want to enable SMS-style text input and page jumping, this guide wills how you how to enable this using a custom &#039;&#039;&#039;[[keymap]]&#039;&#039;&#039;. If you have a normal &amp;quot;[[MCE]]&amp;quot; style remote or non-Android [[CEC]] device, then this how-to may not necessary.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
{{how-to&lt;br /&gt;
| Step1 = Create a &#039;&#039;&#039;plain text file&#039;&#039;&#039; (no rich text formatting, don&#039;t use .doc, etc) and save it as &#039;&#039;&#039;keyboard.xml&#039;&#039;&#039;. Make sure that the file extension is &amp;quot;.xml&amp;quot; and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;quot;.txt&amp;quot; or &amp;quot;.xml.txt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
| Step2 = Cut and paste this into your new plain text file:&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;global&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;JumpSMS1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;JumpSMS2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;JumpSMS3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;JumpSMS4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;JumpSMS5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;JumpSMS6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;JumpSMS7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;JumpSMS8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;JumpSMS9&amp;lt;/nine&amp;gt;&lt;br /&gt;
      &amp;lt;escape&amp;gt;Back&amp;lt;/escape&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
  &amp;lt;VirtualKeyboard&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
      &amp;lt;backspace&amp;gt;Backspace&amp;lt;/backspace&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualKeyboard&amp;gt;&lt;br /&gt;
  &amp;lt;FullscreenVideo&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
      &amp;lt;escape&amp;gt;Stop&amp;lt;/escape&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/FullscreenVideo&amp;gt;&lt;br /&gt;
  &amp;lt;VideoMenu&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/VideoMenu&amp;gt;&lt;br /&gt;
  &amp;lt;NumericInput&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/NumericInput&amp;gt;&lt;br /&gt;
  &amp;lt;Teletext&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/Teletext&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step3 = Save this file in [[userdata]]/Keymaps/:&lt;br /&gt;
{{hidden|1=[[userdata folder]] location:|2={{#lst:userdata|location all}} }}&lt;br /&gt;
Note: if you use the Keymap Editor addon for Kodi, you need to append these new XML lines above inside the XML file generated by this addon, &#039;&#039;&#039;not&#039;&#039;&#039; in keyboard.xml. In March of 2015, the file generated by Keymap Editor is called &amp;quot;gen.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
| Step4 = If Kodi is already running then restart it so that the changes take effect.&lt;br /&gt;
&lt;br /&gt;
| Step5 = {{note|This step is not required for Kodi v14 and higher.}}&lt;br /&gt;
&lt;br /&gt;
Go into Kodi and then {{highlight|bordered=yes|[[Settings/System#Input devices|Settings -&amp;gt; System -&amp;gt; Input devices]]}} and enable &#039;&#039;&#039;Remote control sends keyboard presses&#039;&#039;&#039;. This will allow your arrow keys to use the on-screen keyboard even though Kodi thinks your remote is a keyboard already.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Filter instead of jump ==&lt;br /&gt;
You can also use FilterSMS instead of JumpSMS in the above keymap. This will filter out titles that don&#039;t match the letters being entered.&lt;br /&gt;
&lt;br /&gt;
For example, typing &amp;quot;STAR&amp;quot; will filter out anything that doesn&#039;t start with those letters, leaving behind entries like &amp;quot;Star Wars&amp;quot;, &amp;quot;Star Trek&amp;quot;, &amp;quot;Stargate&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
== Note for Imon remotes users ==&lt;br /&gt;
* Some Imon remotes, such as the Pad, and perhaps other remotes, have numeric buttons that do not send keys like “one”, “two”, etc. Neither they do output key-codes from the numeric pad of a keyboard. What they do is send key-codes from the keys Under the function keys (F1, F2, etc), meaning: 1,2,3, etc. The problem on some system is : they send the keyboard’s lowercase (unshifted) characters for the 1,2,3, etc, keys. For example, if you have a French AZERTY keyboard, the remote&#039;s numeric keys will be understood by Kodi as &amp;quot;&amp;amp;é”‘(-è_çà)&amp;quot;. As a result, the XML lines above need to be changed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Using the Keymap Editor addon, it should be possible to press the remote buttons and have the button&#039;s output registered. But in some cases it is not possible or not handy, so it is sometimes better to use some real keyboard key codes. In the following method, we do not count on the remote&#039;s IR emitted key codes, but on regular keyboard keystrokes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use the Keymap Editor addon to note which key-code Kodi gets when typing the keys from the second row of the keyboard. Go to Keymap Editor &amp;gt; edit &amp;gt; global &amp;gt; virtual keyboard &amp;gt; and for each number, type the corresponding numeric key on the keyboard (not the numpad).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Open the gen.xml file, generated by the Keymap Editor addon. Following the instructions above, it should include the XML lines above for the T9 ability. Edit the lines like &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt; and replace them by the codes you got from the Keymap Editor addon. For example : &amp;lt;key id=”61488″&amp;gt;Number0&amp;lt;/key&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* More info on this : http://www.dreamcraftdigital.com/kodiandimon/ , http://forum.kodi.tv/showthread.php?tid=218401 , http://www.soundgraph.com/forums/showthread.php?t=27737&lt;br /&gt;
&lt;br /&gt;
{{Isengard updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Remotes]]&lt;br /&gt;
[[Category:How-to]]&lt;br /&gt;
[[Category:Custom keymaps]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Use_any_IR_remote_with_OpenELEC&amp;diff=139602</id>
		<title>Archive:Use any IR remote with OpenELEC</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Use_any_IR_remote_with_OpenELEC&amp;diff=139602"/>
		<updated>2018-07-10T12:30:52Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighter fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{forum link2|1=Have questions about this guide or want to comment on it? Go here: http://forum.kodi.tv/showthread.php?pid=1656784}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;How to get your infrared [[LIRC]] remote working in [[Archive:OpenELEC]]. This guide will show you how to modify OpenELEC so that it works with almost any LIRC remote. The four files are lircd.conf Lircmap.xml remote.xml and autostart.sh&lt;br /&gt;
&lt;br /&gt;
This is really simple and can be accomplished in 15-20 min.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can likely use any remote.xml you can find. The one in the default root location (/usr/share/xbmc/system/keymaps) should be fine. Copy it and put it in the /storage/.xbmc/userdata/keymaps location as we might be tweaking it.&lt;br /&gt;
&lt;br /&gt;
== Guide ==&lt;br /&gt;
{{how-to&lt;br /&gt;
| Step1 = We must first change the protocol if you are going to use irrecord on the OpenELEC machine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlighterlang=bash&amp;gt;ir-keytable -p lirc&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step2 = First thing is grab the IR remote of your choice and follow the previous tutorial [http://forum.kodi.tv/showthread.php?tid=170372 &amp;quot;Use Any IR Remote In The House&amp;quot;], but &#039;&#039;&#039;skip the remote.xml part.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| Step3 = Start at step 13 and don&#039;t use sudo. Also, use the terminal editor nano or do all of it on some other linux based machine. You will have to adjust a few things as OpenELEC is different.&lt;br /&gt;
&lt;br /&gt;
| Step4 = This will get you the first 2 files and consumes most of the 15 mins.&lt;br /&gt;
&lt;br /&gt;
:lircd.conf&lt;br /&gt;
:Lircmap.xml (see below for template)&lt;br /&gt;
&lt;br /&gt;
| Step5 = &lt;br /&gt;
Make sure the name of your remote matches in Lircmap.xml and lircd.conf&lt;br /&gt;
&lt;br /&gt;
Here are the valid Lircmap.xml names. Don&#039;t try to make up your own. Don&#039;t go too crazy. Stick to the common names and it will mean less editing. Copy this entire thing to your Lircmap.xml (change your remote name) and only fill in the ones you need. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlighterlang=xml&amp;gt;&amp;lt;lircmap&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;remote device=&amp;quot;MY-Remote-Name&amp;quot;&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
  &amp;lt;left&amp;gt;&amp;lt;/left&amp;gt;&lt;br /&gt;
  &amp;lt;right&amp;gt;&amp;lt;/right&amp;gt;&lt;br /&gt;
  &amp;lt;up&amp;gt;&amp;lt;/up&amp;gt;&lt;br /&gt;
  &amp;lt;down&amp;gt;&amp;lt;/down&amp;gt;&lt;br /&gt;
  &amp;lt;select&amp;gt;&amp;lt;/select&amp;gt;&lt;br /&gt;
  &amp;lt;back&amp;gt;&amp;lt;/back&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;play&amp;gt;&amp;lt;/play&amp;gt;&lt;br /&gt;
  &amp;lt;pause&amp;gt;&amp;lt;/pause&amp;gt;&lt;br /&gt;
  &amp;lt;stop&amp;gt;&amp;lt;/stop&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;volumeplus&amp;gt;&amp;lt;/volumeplus&amp;gt;&lt;br /&gt;
  &amp;lt;volumeminus&amp;gt;&amp;lt;/volumeminus&amp;gt;&lt;br /&gt;
  &amp;lt;mute&amp;gt;&amp;lt;/mute&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pageplus&amp;gt;&amp;lt;/pageplus&amp;gt;&lt;br /&gt;
  &amp;lt;pageminus&amp;gt;&amp;lt;/pageminus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;power&amp;gt;&amp;lt;/power&amp;gt;&lt;br /&gt;
  &amp;lt;menu&amp;gt;&amp;lt;/menu&amp;gt;&lt;br /&gt;
  &amp;lt;info&amp;gt;&amp;lt;/info&amp;gt;&lt;br /&gt;
  &amp;lt;display&amp;gt;&amp;lt;/display&amp;gt;&lt;br /&gt;
  &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;red&amp;gt;&amp;lt;/red&amp;gt;&lt;br /&gt;
  &amp;lt;green&amp;gt;&amp;lt;/green&amp;gt;&lt;br /&gt;
  &amp;lt;yellow&amp;gt;&amp;lt;/yellow&amp;gt;&lt;br /&gt;
  &amp;lt;blue&amp;gt;&amp;lt;/blue&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;zero&amp;gt;&amp;lt;/zero&amp;gt;&lt;br /&gt;
  &amp;lt;one&amp;gt;&amp;lt;/one&amp;gt;&lt;br /&gt;
  &amp;lt;two&amp;gt;&amp;lt;/two&amp;gt;&lt;br /&gt;
  &amp;lt;three&amp;gt;&amp;lt;/three&amp;gt;&lt;br /&gt;
  &amp;lt;four&amp;gt;&amp;lt;/four&amp;gt;&lt;br /&gt;
  &amp;lt;five&amp;gt;&amp;lt;/five&amp;gt;&lt;br /&gt;
  &amp;lt;six&amp;gt;&amp;lt;/six&amp;gt;&lt;br /&gt;
  &amp;lt;seven&amp;gt;&amp;lt;/seven&amp;gt;&lt;br /&gt;
  &amp;lt;eight&amp;gt;&amp;lt;/eight&amp;gt;&lt;br /&gt;
  &amp;lt;nine&amp;gt;&amp;lt;/nine&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;skipplus&amp;gt;&amp;lt;/skipplus&amp;gt;&lt;br /&gt;
  &amp;lt;skipminus&amp;gt;&amp;lt;/skipminus&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;reverse&amp;gt;&amp;lt;/reverse&amp;gt;&lt;br /&gt;
  &amp;lt;forward&amp;gt;&amp;lt;/forward&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;subtitle&amp;gt;&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&amp;lt;/language&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;channelplus&amp;gt;&amp;lt;/channelplus&amp;gt;&lt;br /&gt;
  &amp;lt;channelminus&amp;gt;&amp;lt;/channelminus&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;mytv&amp;gt;&amp;lt;/mytv&amp;gt;&lt;br /&gt;
  &amp;lt;mymusic&amp;gt;&amp;lt;/mymusic&amp;gt;&lt;br /&gt;
  &amp;lt;mypictures&amp;gt;&amp;lt;/mypictures&amp;gt;&lt;br /&gt;
  &amp;lt;myvideo&amp;gt;&amp;lt;/myvideo&amp;gt;&lt;br /&gt;
  &amp;lt;livetv&amp;gt;&amp;lt;/livetv&amp;gt;&lt;br /&gt;
  &amp;lt;recordedtv&amp;gt;&amp;lt;/recordedtv&amp;gt;&lt;br /&gt;
  &amp;lt;liveradio&amp;gt;&amp;lt;/liveradio&amp;gt;&lt;br /&gt;
  &amp;lt;epgsearch&amp;gt;&amp;lt;/epgsearch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;guide&amp;gt;&amp;lt;/guide&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;record&amp;gt;&amp;lt;/record&amp;gt;&lt;br /&gt;
  &amp;lt;start&amp;gt;&amp;lt;/start&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
  &amp;lt;star&amp;gt;&amp;lt;/star&amp;gt;&lt;br /&gt;
  &amp;lt;hash&amp;gt;&amp;lt;/hash&amp;gt;&lt;br /&gt;
  &amp;lt;clear&amp;gt;&amp;lt;/clear&amp;gt;&lt;br /&gt;
  &amp;lt;enter&amp;gt;&amp;lt;/enter&amp;gt;&lt;br /&gt;
  &amp;lt;xbox&amp;gt;&amp;lt;/xbox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;playlist&amp;gt;&amp;lt;/playlist&amp;gt;&lt;br /&gt;
  &amp;lt;teletext&amp;gt;&amp;lt;/teletext&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/remote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lircmap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step6 = Next create an autostart.sh file in /storage/.config (If you have one already just add the following to that file)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlighterlang=bash&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
killall lircd&lt;br /&gt;
ir-keytable -p lirc&lt;br /&gt;
lircd --device=/dev/lirc0 /storage/.config/lircd.conf&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need the #!/bin/sh if you already have it in the file.&lt;br /&gt;
&lt;br /&gt;
| Step7 = Make the file executable:&lt;br /&gt;
&amp;lt;syntaxhighlighterlang=bash&amp;gt;chmod +x /storage/.config/autostart.sh&amp;lt;/syntaxhighlighter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| Step8 = Place lircd.conf in /storage/.config/&lt;br /&gt;
&lt;br /&gt;
Place Lircmap.xml in /storage/.xbmc/userdata/&lt;br /&gt;
&lt;br /&gt;
and place remote.xml in /storage/.xbmc/userdata/keymaps/&lt;br /&gt;
&lt;br /&gt;
| Step9 = That&#039;s it! Piece of cake. Reboot&lt;br /&gt;
&lt;br /&gt;
| Step10 = If for any reason you want to go back to the way it was, simply delete those files.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Credit goes to FishOil for the original guide: http://forum.kodi.tv/showthread.php?pid=1656784&lt;br /&gt;
&lt;br /&gt;
* You also may want to have a look at [http://forum.kodi.tv/showthread.php?tid=189617 Understanding LIRC &amp;amp; XBMC]&lt;br /&gt;
&lt;br /&gt;
* If it doesn&#039;t work the first step is to find out if LIRC is configured correctly&lt;br /&gt;
:# SSH into the box and type irw&lt;br /&gt;
:# Push some buttons on the remote.&lt;br /&gt;
:# Your custom remote name should be displayed along with the button name.&lt;br /&gt;
&lt;br /&gt;
[[Category:How-to]]&lt;br /&gt;
[[Category:Remotes]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Kodibuntu_FAQ&amp;diff=139599</id>
		<title>Archive:Kodibuntu FAQ</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Kodibuntu_FAQ&amp;diff=139599"/>
		<updated>2018-07-10T12:29:06Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighter fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{outdated}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;F&#039;&#039;&#039;requently &#039;&#039;&#039;A&#039;&#039;&#039;sked &#039;&#039;&#039;Q&#039;&#039;&#039;uestions for KodiBuntu (formally known as XBMCbuntu).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== General FAQ ==&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;See also: &#039;&#039;&#039;[[All platforms FAQ]]&#039;&#039;&#039; for FAQs that apply to all versions of Kodi.&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;See also: &#039;&#039;&#039;[[Linux FAQ]]&#039;&#039;&#039; for general Kodi on Linux questions.&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
{{FAQ|1=Kodi|2=What_is_it&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question=What is Kodibuntu?&lt;br /&gt;
| Answer=&lt;br /&gt;
{{#lst:Kodibuntu|intro}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FAQ|1=what_version&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question=What version of Lubuntu is used by the current Kodibuntu?&lt;br /&gt;
| Answer=&lt;br /&gt;
: For v13 and v14, Kodibuntu is based on Lubuntu 14.04LTS (Trusty Tahr)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FAQ|1=Minimum_requirements&lt;br /&gt;
| BGcolor=WhiteSmoke&lt;br /&gt;
| Question=What are Kodibuntu&#039;s minimum and recommended requirements?&lt;br /&gt;
| Answer=&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
{{#lst:Supported hardware|Linux}}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FAQ|1=upgrading&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question=Upgrading Kodi&lt;br /&gt;
| Answer=&lt;br /&gt;
{{main|HOW-TO:Install Kodi for Linux#Upgrading}}&lt;br /&gt;
{{#lst:HOW-TO:Install Kodi for Linux|Ubuntu upgrade}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
{{FAQ|1=upgrade_drivers&lt;br /&gt;
| BGcolor=whitesmoke&lt;br /&gt;
| Question=How can I Upgrade NVidia drivers in Ubuntu/Kodibuntu and variants?&lt;br /&gt;
| Answer=&lt;br /&gt;
&amp;lt;section begin=&amp;quot;Upgrade_nvidia_driver /&amp;gt;&lt;br /&gt;
Nvidia as well as drivers suppliers for Ubuntu and variants, recommended user to install these packages via repositories provided!&lt;br /&gt;
The maintainers ensure the drivers are correct and compatible to the distro being targeted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=bash enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install python-software-properties pkg-config&lt;br /&gt;
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install nvidia-current nvidia-settings&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, there is now a repository for Nvidia graphics drivers containing upto the latest proprietary GPU drivers. You can specify the driver version that you want to install.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=bash enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install python-software-properties pkg-config&lt;br /&gt;
sudo add-apt-repository ppa:graphics-drivers/ppa&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install nvidia-XXX nvidia-settings libvdpau1&lt;br /&gt;
(XXX being the selected driver version, e.g. 355)&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
A list of available driver versions can be found at [http://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa launchpad.net/~graphics-drivers/+archive/ubuntu/ppa] .&lt;br /&gt;
&lt;br /&gt;
{{forum link2|[[forum:142220|Nvidia Drivers updates Kodibuntu]] (Ubuntu and variants forum discussion thread)}}&amp;lt;br /&amp;gt;&lt;br /&gt;
}}&amp;lt;section end=&amp;quot;Upgrade_nvidia_driver&amp;quot; /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Handling files &amp;amp; Backups ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
{{FAQ|1=transferring_files&lt;br /&gt;
| BGcolor=#ffffff&lt;br /&gt;
| Question=How can I transfer files to/from Kodibuntu?&lt;br /&gt;
| Answer=&lt;br /&gt;
Use SFTP with a client such as Cyberduck or FileZilla or scp via SSH within Linux/OS X shell. &#039;&#039;&#039;username and password&#039;&#039;&#039; is &#039;&#039;&#039;xbmc&#039;&#039;&#039;, &#039;&#039;&#039;kodi&#039;&#039;&#039;, blank or the Kodi password selected during install.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See also:&#039;&#039; [[SFTP|Connecting to Kodibuntu via SFTP]]&lt;br /&gt;
:&#039;&#039;See also:&#039;&#039; [[SSH|Connecting to Kodibuntu via SSH]]&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
{{FAQ|1=Backup&lt;br /&gt;
| BGcolor=whitesmoke&lt;br /&gt;
| Question=How can I backup all my settings to restore them if something goes wrong?&lt;br /&gt;
| Answer=&lt;br /&gt;
{{see also|Backup}}&lt;br /&gt;
You can use the [[Add-on:Backup]] Backup and restore your Kodi database and configuration files in the event of a crash or file corruption.&lt;br /&gt;
&lt;br /&gt;
Alternatively if you do not wish to use a addon, you can navigate to your [[userdata]] folder and copy/archive all its contents to a external drive. This can be achieved various ways, depending on your OS.&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Connectivity ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
{{FAQ|1=connectivity&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question=How can I connect a bluetooth keyboard/mouse/remote??&lt;br /&gt;
| Answer=&lt;br /&gt;
A good way to decipher this is to:&lt;br /&gt;
:See this video:http://lubuntu.net/blog/lubuntu-screencast-bluetooth&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
{{FAQ|1=audio_issues&lt;br /&gt;
| BGcolor=whitesmoke&lt;br /&gt;
| Question=What if I have audio issues with Kodibuntu?&lt;br /&gt;
| Answer=&lt;br /&gt;
You can look at the audio troubleshooting page below, if your problems persist, you can always try to search for answers to your problem in forums and if none are found open your own thread.&lt;br /&gt;
Remember to have &#039;&#039;&#039;[[Debug log]]&#039;&#039;&#039; handy in pastebin, in such cases.&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;&#039;&#039;See: [[Audio Troubleshooting]]&amp;lt;/big&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FAQ|1=window_too_big&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question=Can&#039;t install, because the install window is too big?&lt;br /&gt;
| Answer=&lt;br /&gt;
In the event you come across this issue, you can look at adapting the solutions proposed in the forum post below.&lt;br /&gt;
:See [[forum:126453|Can&#039;t install because the install window is too big?]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FAQ|1=text_too_small&lt;br /&gt;
| BGcolor=whitesmoke&lt;br /&gt;
| Question=Can&#039;t install because the text is too small?&lt;br /&gt;
| Answer=&lt;br /&gt;
In the event you come across this issue, you can look at adapting the solutions proposed in the forum post below.&lt;br /&gt;
:See [[forum:126453|Can&#039;t install because the text is too small?]]&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
{{#lst:Linux FAQ|problem_req_info}}&lt;br /&gt;
&lt;br /&gt;
== Upgrading Ubuntu / Kodibuntu ==&lt;br /&gt;
&amp;lt;section begin=&amp;quot;upgradeOS&amp;quot; /&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
{{FAQ|1=Upgrading_OS_base&lt;br /&gt;
| BGcolor=&lt;br /&gt;
| Question=How do I upgrade the Kodibuntu base OS?&lt;br /&gt;
| Answer=&lt;br /&gt;
To actually upgrade the underlying Linux which &amp;quot;Kodibuntu&amp;quot; is based on, it is possible to do so via release upgrade.&lt;br /&gt;
&lt;br /&gt;
There are advantages and disadvantages to doing so. It&#039;s not a method recommended lightly to inexperienced users, doing so means you understand and accept responsibility for breaking your system.&lt;br /&gt;
&lt;br /&gt;
{{redv|&#039;&#039;&#039;BACKUP!&#039;&#039;&#039;| Never attempt any upgrades without having proper backups of the files you consider important or value or have a full system image/backup of working system you can restore.}}&lt;br /&gt;
{{greenv|&#039;&#039;&#039;RECOMMENDED!&#039;&#039;&#039;|It is possible (in order to preserve systems tweaks) to just upgrade Kodi itself by treating it as a normal Linux package and update/install via: [[Team KODI PPA|Upgrading Kodi via ppa in Kodibuntu]]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlighter lang=bash enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install update-manager-core&lt;br /&gt;
sudo do-release-upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlighter&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This should upgrade your Base distribution, however if your current version is too old it may require repeating these steps until you reach the desired version.&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
Do note&#039;&#039;&#039; that this is not recommended to inexperienced Linux users in case of breakages that you wont be able to resolve. &lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;section end=&amp;quot;upgradeOS&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Kodibuntu]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Keymap&amp;diff=139597</id>
		<title>Keymap</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Keymap&amp;diff=139597"/>
		<updated>2018-07-10T12:27:18Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighligher fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Remote controls]] }}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Keymaps are XML base files that define the mappings of keys (keyboard keys, mouse/remote/joysticks buttons and more) to Kodi actions.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Customizing keymaps through the GUI ==&lt;br /&gt;
{{main|Add-on:Keymap Editor}}&lt;br /&gt;
Users can customize keymaps for remotes in GUI by using the community [[Add-on:Keymap Editor|Keymap Editor]] add-on.&lt;br /&gt;
&lt;br /&gt;
== Location of keymaps ==&lt;br /&gt;
User modified keymap files must be stored in the &amp;quot;&#039;&#039;&#039;keymaps&#039;&#039;&#039;&amp;quot; folder in the [[userdata]] folder:&lt;br /&gt;
{{#lsth:userdata|Location of the UserData folder}}&lt;br /&gt;
&lt;br /&gt;
=== Defaults ===&lt;br /&gt;
Default keymaps are included when Kodi is installed, but users should not edit those install files directly. Instead, place user modified keymaps in the [[userdata]]/keymaps/ directory.&lt;br /&gt;
&lt;br /&gt;
Kodi can process multiple keymap files and does so like this:&lt;br /&gt;
&lt;br /&gt;
* All *.xml files from the default install settings and userdata/kemaps/ folders are applied as keymaps.&lt;br /&gt;
* All *.xml files are processed in alphabetical order.&lt;br /&gt;
* Keymaps defined in an .xml file add to or override mappings in previous .xml file.&lt;br /&gt;
* Keymaps defined in the userdata folder add to or override mappings in the global keymap.&lt;br /&gt;
&lt;br /&gt;
By default there will be no files in these locations, so grab one from the link below to make a new one/over-ride:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; https://github.com/xbmc/xbmc/tree/master/system/keymaps &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; https://github.com/kodi-game/peripheral.joystick/tree/master/peripheral.joystick/resources/buttonmaps/xml &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
There is one &#039;&#039;&#039;global&#039;&#039;&#039; keymap and several &#039;&#039;&#039;window&#039;&#039;&#039;-specific keymaps.&amp;lt;br /&amp;gt;&lt;br /&gt;
Kodi falls back to the global map when the window-specific map hasn&#039;t bound the key being pressed.&lt;br /&gt;
&lt;br /&gt;
The format of keymapping files is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;global&amp;gt;&lt;br /&gt;
    &amp;lt;gamepad&amp;gt;&lt;br /&gt;
      &amp;lt;A&amp;gt;Select&amp;lt;/A&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/gamepad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;remote&amp;gt;&lt;br /&gt;
      &amp;lt;select&amp;gt;Select&amp;lt;/select&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/remote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;enter&amp;gt;Select&amp;lt;/enter&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;mouse&amp;gt;&lt;br /&gt;
      &amp;lt;leftclick&amp;gt;Select&amp;lt;/leftclick&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/mouse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;universalremote&amp;gt;&lt;br /&gt;
      &amp;lt;obc25&amp;gt;XBMC.ActivateWindow(MyMusic)&amp;lt;/obc25&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/universalremote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;joystick name=&amp;quot;PLAYSTATION(R)3 Controller (00:1B:FB:F6:E0:F2)&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;button id=&amp;quot;15&amp;quot;&amp;gt;Select&amp;lt;/button&amp;gt;&lt;br /&gt;
      [...]&lt;br /&gt;
    &amp;lt;/joystick&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Home&amp;gt;&lt;br /&gt;
    [...]&lt;br /&gt;
  &amp;lt;/Home&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, it&#039;s divided into a &amp;lt;global&amp;gt; section, and a number of window sections (such as &amp;lt;Home&amp;gt;).&amp;lt;br /&amp;gt;&lt;br /&gt;
A list of the available window names can be seen [[Window IDs|here]]. The WINDOW can also be a custom window formatted as &amp;lt;windowId#&amp;gt; (e. g. &amp;lt;window1113&amp;gt;). &amp;lt;br /&amp;gt;&lt;br /&gt;
Each of these sections can contain Gamepad, Remote, Keyboard, Universal Remote, and custom Joystick sections.&lt;br /&gt;
&lt;br /&gt;
The format for mapping a particular key under one of these device types is as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;keyname&amp;gt;action&amp;lt;/keyname&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keynames ==&lt;br /&gt;
Depending on your device you will need to use a specific &amp;quot;keyname&amp;quot;.&lt;br /&gt;
=== Gamepads ===&lt;br /&gt;
An up to date list of the available actions can be found in the source code of Kodi in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp] where the &#039;&#039;TranslateGamepadString()&#039;&#039; function does the work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;gamepad&amp;gt;&lt;br /&gt;
  &amp;lt;A&amp;gt;Select&amp;lt;/A&amp;gt;&lt;br /&gt;
&amp;lt;/gamepad&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remotes ===&lt;br /&gt;
An up to date list of the available actions can be found in the source code of Kodi in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp] where the &#039;&#039;TranslateRemoteString()&#039;&#039; (NOTE: not existing anymore) function does the work.&lt;br /&gt;
&lt;br /&gt;
{{Note|Some remotes (e.g. FLIRC) are actually seen as &amp;quot;keyboards&amp;quot;. Those will need to use the &amp;lt;keyboard&amp;gt; tag instead.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;remote&amp;gt; &lt;br /&gt;
  &amp;lt;play&amp;gt;Play&amp;lt;/play&amp;gt;&lt;br /&gt;
&amp;lt;/remote&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Universal Remotes ===&lt;br /&gt;
To map Universal Remote buttons using the RCA infrared protocol, you may add &#039;&#039;&#039;&amp;lt;universalremote&amp;gt;&#039;&#039;&#039; sections to keymap.xml.&amp;lt;br /&amp;gt;&lt;br /&gt;
In this case, the tags used are &amp;lt;obc#&amp;gt; where # is the original button code (OBC) of the button.&amp;lt;br /&amp;gt;&lt;br /&gt;
You would put it inside a &amp;lt;universalremote&amp;gt; section in the &amp;lt;window&amp;gt; or &amp;lt;global&amp;gt; sections.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;universalremote&amp;gt; &lt;br /&gt;
  &amp;lt;obc148&amp;gt;Stop&amp;lt;/obc148&amp;gt;&lt;br /&gt;
&amp;lt;/universalremote&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Will map &#039;&#039;Stop Playback&#039;&#039; to the RCA DVD repeat button &amp;lt;obc148&amp;gt;, which is not used by Kodi by default. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Note:&#039;&#039;&#039; ensure that the &amp;lt;universalremote&amp;gt; section is &#039;&#039;&#039;NOT&#039;&#039;&#039; added &#039;within&#039; the &amp;lt;remote&amp;gt; section - it can appear before or after. Otherwise it will not be recognised and produces errors in the logfile.&lt;br /&gt;
&lt;br /&gt;
Remote keys can be observed in the kodi.log file (&#039;&#039;&#039;~/.kodi/temp/kodi.log&#039;&#039;&#039; on Linux) when debugging is enabled in the GUI (Settings -&amp;gt; debugging ). The list of pre-defined OBC codes can be found at [https://github.com/xbmc/xbmc/blob/master/xbmc/input/XBIRRemote.h XBIRRemote.h].&lt;br /&gt;
&lt;br /&gt;
=== Keyboards ===&lt;br /&gt;
Valid keyboard keymap syntax includes &amp;lt;keyname&amp;gt;, &amp;lt;key id=&amp;quot;&amp;quot;&amp;gt;, and &amp;lt;keyname mod=&amp;quot;&amp;quot;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mapping for arbitrary key codes can be configured using the following syntax: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;key id=&amp;quot;123&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
where &amp;quot;123&amp;quot; is replaced by the key code.&lt;br /&gt;
&lt;br /&gt;
A full list of valid keynames can be found in &lt;br /&gt;
* the &#039;&#039;TranslateKeyboardString()&#039;&#039; method in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ButtonTranslator.cpp ButtonTranslator.cpp] &lt;br /&gt;
* or in [[List of Kodi keynames]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;key id=&amp;quot;123&amp;quot;&amp;gt;action&amp;lt;/key&amp;gt; -- id is the keys keycode. &amp;gt;&lt;br /&gt;
  &amp;lt;a mod=&amp;quot;shift,alt&amp;quot;&amp;gt;action&amp;lt;/a&amp;gt; -- corresponds to shift-alt-a, the mod=&amp;quot;&amp;quot; syntax is enabled since build 26407. &amp;gt;&lt;br /&gt;
  &amp;lt;space&amp;gt;action&amp;lt;/space&amp;gt; -- for a complete list of valid keynames, see ButtonTranslator.cpp or List of Kodi keynames above. &amp;gt;&lt;br /&gt;
&amp;lt;/keyboard&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Modifiers&lt;br /&gt;
* shift&lt;br /&gt;
* alt&lt;br /&gt;
* ctrl&lt;br /&gt;
&lt;br /&gt;
=== Mouse ===&lt;br /&gt;
&lt;br /&gt;
As this highly depends on the mouse you are using and which kind of buttons are available, we only mention the most common buttons on a mouse:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;mouse&amp;gt;&lt;br /&gt;
    &amp;lt;global&amp;gt;&lt;br /&gt;
      &amp;lt;leftclick&amp;gt;...&amp;lt;/leftclick&amp;gt;&lt;br /&gt;
      &amp;lt;middleclick&amp;gt;...&amp;lt;/middleclick&amp;gt;&lt;br /&gt;
      &amp;lt;rightclick&amp;gt;...&amp;lt;/rightclick&amp;gt;&lt;br /&gt;
      &amp;lt;wheelup&amp;gt;...&amp;lt;/wheelup&amp;gt;&lt;br /&gt;
      &amp;lt;wheeldown&amp;gt;...&amp;lt;/wheeldown&amp;gt;&lt;br /&gt;
    &amp;lt;/global&amp;gt;&lt;br /&gt;
  &amp;lt;/mouse&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Example for changing the volume while on MusicOSD window using the mouse wheel&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;MusicOSD&amp;gt;&lt;br /&gt;
    &amp;lt;mouse&amp;gt;&lt;br /&gt;
      &amp;lt;wheeldown&amp;gt;VolumeDown&amp;lt;/wheeldown&amp;gt;&lt;br /&gt;
      &amp;lt;wheelup&amp;gt;VolumeUp&amp;lt;/wheelup&amp;gt;&lt;br /&gt;
    &amp;lt;/mouse&amp;gt;&lt;br /&gt;
  &amp;lt;/MusicOSD&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Joystick Configuration ===&lt;br /&gt;
Custom joysticks are defined using the following syntax:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;joystick name=&amp;quot;JOYSTICK NAME&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;button id=&amp;quot;BUTTON ID&amp;quot;&amp;gt;action&amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;lt;/joystick&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Getting the joystick name:&lt;br /&gt;
* On linux: &#039;cat /proc/bus/input/devices&#039;&lt;br /&gt;
* or see your Kodi log file&lt;br /&gt;
&lt;br /&gt;
Getting the button ids:&lt;br /&gt;
* &#039;id&#039; is the button ID used by SDL. Joystick button ids of connected joysticks appear in kodi.log when they are pressed. Use your log to map custom buttons to actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;joystick name=&amp;quot;PLAYSTATION(R)3 Controller (00:1B:FB:F6:E0:F2)&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;button id=&amp;quot;15&amp;quot;&amp;gt;Select&amp;lt;/button&amp;gt;&lt;br /&gt;
  &amp;lt;button id=&amp;quot;14&amp;quot;&amp;gt;PreviousMenu&amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;lt;/joystick&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Long-press ==&lt;br /&gt;
{{note| Longpress seems to only be working on keyboard keymaps at the moment }}&lt;br /&gt;
Depending on the device, many remotes, keyboards, and gamepads can use the long-press modifier. This allows a button to do a separate action when held for a short period of time. The syntax for this is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;button mod=&amp;quot;longpress&amp;quot;&amp;gt;action&amp;lt;/button&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not all devices will correctly work with the longpress action, but most should. &lt;br /&gt;
&lt;br /&gt;
{{Note|Long-press will disable keyrepeat for that key/window.}}&lt;br /&gt;
&lt;br /&gt;
=== Removing a long-press action from a default keymap ===&lt;br /&gt;
If you want to simply remove a long-press action, rather than override it, you can place an empty long-press tag in a keymap. This also has the effect of re-enabling keyrepeat for the short-press action.&lt;br /&gt;
&lt;br /&gt;
For example, this will remove the context menu action from the default keyboard.xml keymap:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;keymap&amp;gt;&lt;br /&gt;
  &amp;lt;global&amp;gt;&lt;br /&gt;
    &amp;lt;keyboard&amp;gt;&lt;br /&gt;
      &amp;lt;return mod=&amp;quot;longpress&amp;quot;&amp;gt;&amp;lt;/return&amp;gt;&lt;br /&gt;
      &amp;lt;enter mod=&amp;quot;longpress&amp;quot;&amp;gt;&amp;lt;/enter&amp;gt;&lt;br /&gt;
    &amp;lt;/keyboard&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
&amp;lt;/keymap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
The most recent available actions can be found in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/ActionTranslator.cpp ActionTranslator.cpp].&lt;br /&gt;
&lt;br /&gt;
For those debugging integer action codes from the debug log, the mapping of action codes to constants is in [https://github.com/xbmc/xbmc/blob/master/xbmc/input/Key.h Key.h]&lt;br /&gt;
&lt;br /&gt;
In addition to the following actions, you can also use &#039;&#039;&#039;[[Built-in scripting]]&#039;&#039;&#039; in Kodi.&lt;br /&gt;
&lt;br /&gt;
=== Actions ===&lt;br /&gt;
{{Main|Action IDs}}&lt;br /&gt;
{{#lst:Action IDs|Action IDs}}&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
{{main|List of built-in functions|Built-in scripting}}&lt;br /&gt;
{{#lst:List of built-in functions|functions}}&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
{{main|Window IDs}}&lt;br /&gt;
{{#lst:Window IDs|main content}}&lt;br /&gt;
&lt;br /&gt;
== Additional keys ==&lt;br /&gt;
Other keys that can be mapped to actions.&lt;br /&gt;
&lt;br /&gt;
=== Media keyboards/remotes ===&lt;br /&gt;
* browser_back&lt;br /&gt;
* browser_forward&lt;br /&gt;
* browser_refresh&lt;br /&gt;
* browser_stop&lt;br /&gt;
* browser_search&lt;br /&gt;
* browser_favorites&lt;br /&gt;
* browser_home&lt;br /&gt;
* volume_mute&lt;br /&gt;
* volume_down&lt;br /&gt;
* volume_up&lt;br /&gt;
* next_track&lt;br /&gt;
* prev_track&lt;br /&gt;
* stop&lt;br /&gt;
* play_pause&lt;br /&gt;
* launch_mail&lt;br /&gt;
* launch_media_select&lt;br /&gt;
* launch_app1&lt;br /&gt;
* launch_app2&lt;br /&gt;
* play&lt;br /&gt;
* pause&lt;br /&gt;
* fastforward&lt;br /&gt;
* rewind&lt;br /&gt;
* channelup&lt;br /&gt;
* channeldown&lt;br /&gt;
&lt;br /&gt;
=== Mouse actions ===&lt;br /&gt;
* leftclick&lt;br /&gt;
* rightclick &lt;br /&gt;
* middleclick&lt;br /&gt;
* doubleclick&lt;br /&gt;
* wheelup&lt;br /&gt;
* wheeldown&lt;br /&gt;
* mousemove&lt;br /&gt;
* mousedrag&lt;br /&gt;
* mousedragstart&lt;br /&gt;
* mousedragend&lt;br /&gt;
* mouserdrag - right button drag&lt;br /&gt;
* mouserdragstart - start of right button drag&lt;br /&gt;
* mouserdragend - end of right button drag&lt;br /&gt;
&lt;br /&gt;
== Examples and pre-made keymaps ==&lt;br /&gt;
{{see|:Category:Custom keymaps}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Remote controls]]&lt;br /&gt;
* [[Keyboard controls]]&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Python development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Remotes]]&lt;br /&gt;
[[Category:Settings]]&lt;br /&gt;
[[Category:Controls]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Karaoke&amp;diff=139596</id>
		<title>Archive:Karaoke</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Karaoke&amp;diff=139596"/>
		<updated>2018-07-10T12:26:28Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighter fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Karaoke note}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;This page provides information about karaoke playback in Kodi and provides advanced setup details.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
Kodi supports the following Karaoke features:&lt;br /&gt;
* Supports CDG, LRCv1 and LRCv2 lyrics formats;&lt;br /&gt;
* Supports UltraStar song lyrics and video formats;&lt;br /&gt;
* Supports MIDI music and KAR files;&lt;br /&gt;
* Plays directly from MP3+CDG archived together;&lt;br /&gt;
* Supports song numbering with permanent numbers, which means the song could be selected by number, even if another song is being played. The numbering information could be exported into HTML file and used to print catalogs.&lt;br /&gt;
* Supports real-time lyrics timing modification, allowing to modify the lyrics-music delay. The delay is associated to the song, and then restored when this song is played again.&lt;br /&gt;
* Supports different background modes, including visualization, still picture or video.&lt;br /&gt;
&lt;br /&gt;
== Missing features ==&lt;br /&gt;
What is not currently supported:&lt;br /&gt;
* Playing CD-G disks directly. The suggested workaround is to rip them into MP3+CDG files using available software.&lt;br /&gt;
* Using digitized microphone input. The microphone should work in pass-through mode, but will not work in digitized mode, where the sound should be digitally processed by Kodi. This also means that any voice post-processing is not possible yet.&lt;br /&gt;
* Pitch modification.&lt;br /&gt;
&lt;br /&gt;
== What will not be implemented ==&lt;br /&gt;
* Playing vendor-specific Karaoke disks (like California Electronics or LG). Those disks need to be converted to playable files set first.&lt;br /&gt;
* Automatic voice removal. This is not possible to do automatically without seriously degrading music quality.&lt;br /&gt;
* Scoring table, nicknames and other attributes of karaoke-based games.&lt;br /&gt;
&lt;br /&gt;
== Supported formats ==&lt;br /&gt;
The following karaoke formats are supported by Kodi.&lt;br /&gt;
&lt;br /&gt;
=== MP3+CDG ===&lt;br /&gt;
The karaoke song consist of two files: the music file (usually MP3 but could be any playable type), and a separate binary file with the same file name as the music file, but with .cdg extension. This is the most popular format in the NA/USA, with a lot of English language music in this format available both legally and illegally. The source of those files are usually original CD disks in CD-G formats designed for hardware karaoke players. Those disks got ripped by any of freely available CD rippers, repacked and shared via typical channels, or sold on multiple web sites around the world.&lt;br /&gt;
&lt;br /&gt;
The main feature of this format is that the lyrics are stored in the binary format, in form of drawing instructions. This means the CDG file could contain text in any language, or even graphics, and will be properly rendered on any supported device no matter what fonts are installed. However those drawing instructions operate on a small 300x216 window, and therefore have to be upscaled. As a result, this format combines usually very good music quality with very poor graphics. Because of upscaling the lyrics visualization quality is the worst through all supported formats, especially on large screen TVs. Other problems of this format are inability for the ordinary user to fix the typos or synchronization issues in the song, and that software required to create .CDG files is not widely available. There are only two programs, and neither is cheap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MP3+LRC ===&lt;br /&gt;
Same as with CDG, the karaoke song consist of two files: the music file (usually MP3 but could be any playable type), and a separate text file with the same file name as the music file, but with .lrc extension. This is the most popular format in the Asia, and the most widespread lyrics format in the Internet. The source of those files are either original karaoke CDs where text in CD-G format was replaced by text in LRC by the person who ripped it, or a home-made music often made from MIDI files. There is also a lot of legitimate lyrics web sites where the lyrics in LRC format are available for download, usually for free.&lt;br /&gt;
&lt;br /&gt;
The main feature of this format is that the lyrics are stored in the text file, usually in UTF-8 encoding. This means nothing but text (i.e. no graphics), and that the rendering software (Kodi) must have all necessary fonts installed. However since the rendering device uses real scalable fonts to render the text, the lyrics visualization quality is very good, especially on large screens. Being a text file it could also contain meta information (artist and song name, overall song delay and so on), is easy to edit/fix, and easy to create. Under Linux such files could be [[HOW-TO: Create karaoke lyrics|created]] in five minutes using free software.&lt;br /&gt;
&lt;br /&gt;
=== MP3+TXT (UltraStar) ===&lt;br /&gt;
Similar to CDG and LRC, the karaoke song consist of several files. Usually it&#039;s just two files - the music file (usually MP3 but could be any playable type), and a separate text file with the same file name as the music file, but with .txt extension. This is relatively new and a very popular format due to its usage in UltraStar game and its numerous clones. This format also supports pitch, which is now ignored but in future may be used to track the individual performance. Also the song archive often includes video and pictures. At this moment the pictures are ignored, however the video will be played at background if available.&lt;br /&gt;
&lt;br /&gt;
There are several song packages available in Internet. For starters, the Performous web site, http://performous.org/, contains a few songs with a liberal license. A bunch of websites over Internet are also providing Ultrastar lyrics (only text, they do not provide music).&lt;br /&gt;
&lt;br /&gt;
You can create your own MP3 and TXT files from Karaoke MIDI files or ABC files. Since the timing of lyrics is already in the Karaoke MIDI file, it&#039;s easier to programatically convert this information to the TXT format rather than trying to create lyrics files by hand. See the tips under the Karaoke MIDI section for creating Karaoke MIDI files from ABC files. To convert a Karaoke MIDI file to MP3, you can use Timidity itself. Timidity can take a MIDI file and convert it to WAV or other formats. If your version of Timidity doesn&#039;t support MP3, you can convert to WAV and then use a program like Audacity or Sox to convert to MP3. Many UltraStar files are also availabe in [http://www.vorbis.com/ Ogg Vorbis] (rather than MP3). Again, you can use tools like Audacity or Sox to convert audio file formats as necessary. To create a text file with lyrics automatically from a Karaoke MIDI file, so far, the only program I&#039;ve found for this is [http://ultrastar.fr.free.fr/index.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=62 MidiKar2UltraStar]. It&#039;s written in Java and isn&#039;t Open Source. It would be nice to find some Open Source programs to automate the lyrics conversion.&lt;br /&gt;
&lt;br /&gt;
=== MIDI/KAR ===&lt;br /&gt;
The karaoke song consist of a single MIDI file which usually has .kar or .mid extension. The MIDI file inside usually contains multiple tracks, and one of those tracks contains lyrics synchronized with the music. Because MIDI file only contains instructions for the music synthesizer (like //play note &amp;quot;A&amp;quot; using instrument &amp;quot;Grand Piano&amp;quot;//) and do not contain the music itself, the file is usually very small. Most song files are around 50K. Vast majority of MIDI files is created by amateurs, and legally offered for download for free. This format is very popular in Eastern Europe. But for any language it&#039;s usually much easier to find a MIDI karaoke song than MP3 karaoke song.&lt;br /&gt;
&lt;br /&gt;
To play MIDI files, Kodi incorporates a MIDI synthesizer Timidity++. This is a full-featured synthesizer which supports soundfonts, but special configuration is required. Since the lyrics in the MIDI file are in text format, a good quality rendering is possible. However there is no standard which would require MIDI files to use only UTF8 encoding, and therefore some of them use UTF8, and some of them use local encoding. Kodi tries to auto-detect whether to use UTF-8 but it might not always succeed. The text in MIDI files is relatively hard to edit or modify, however a lot of editors are available on all platforms, and there is open-source free software like Rosegarden to edit MIDI files.&lt;br /&gt;
&lt;br /&gt;
You can create your own Karaoke MIDI files using a standard text editor, ABC notation and the Open Source program [http://abc.sourceforge.net/abcMIDI/ abc2midi]. This will work on all platforms. If you&#039;re familiar with notes or can read sheet music, [http://abcnotation.com/ ABC Notation] should be easy to work with. You can also convert available ABC files to MIDI or Karaoke MIDI files to use with Kodi. If you have a MIDI file and want to edit it to add or tweak lyrics or change some notes, you can use [http://abc.sourceforge.net/abcMIDI/ midi2abc] to convert to ABC notation and then edit in a text editor. (You may lose some information in the conversion to ABC, but you can now change the music however you want.) After editing, you can convert back to Karaoke MIDI using abc2midi. If you want a more lossless way to edit MIDI files, try mf2t and t2mf or midicomp (combination of mf2t and t2mf available at [http://freepats.zenvoid.org/ Freepats site]). These Open Source programs let you convert a Karoake MIDI file directly into a text format that can edited in any standard text editor. You can easily edit Karaoke lyrics in this format. The programs then convert the text file back to Karaoke MIDI format.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Kodi needs to be configured to support karaoke. You need is to enable karaoke in the Setup -&amp;gt; Music -&amp;gt; Karaoke. I also suggest to disable &amp;quot;Music -&amp;gt; General -&amp;gt; Auto play next item&amp;quot; as it&#039;s usually not desirable for karaoke.&lt;br /&gt;
&lt;br /&gt;
=== Skin selection ===&lt;br /&gt;
Skins other than default Confluence might require extra files to support Karaoke. Please make sure everything works with the default skin before switching to another, and if something does not work, please make sure it does not work on default skin too. The rule is the following: bugs in karaoke which happen using default skin, are assigned to me. Bugs which only happen using non-default skin, should be assigned to the team/person responsible for this skin.&lt;br /&gt;
&lt;br /&gt;
=== Checking timings ===&lt;br /&gt;
You need to make sure there is no delay between audio and lyrics, or set up the appropriate value to compensate it. For this, get a couple of songs which you&#039;re sure are synchronized properly, and try to play it. If the lyrics are not synchronized, adjust delay through advancedsettings.xml. Note that there are two different delays for CDG and for LRC files. There is no delay for MIDI playback, it must be always synchronized.&lt;br /&gt;
&lt;br /&gt;
=== MIDI playback ===&lt;br /&gt;
There are two ways to configure embedded Timidity synthesizer and enable MIDI playback - a simple way, and a more advanced way.&lt;br /&gt;
&lt;br /&gt;
Simple way, you need a single soundfont file. Those are typically large (50Mb+) files with .sf2 extension, the most popular resource is http://www.sf2midi.com &lt;br /&gt;
I recommend using widespread and well-tested SGM-180 soundfont, google for it or get 2.01 version from http://www.geocities.jp/shansoundfont/ (this one is included into Arch linux in the soundfont-sgm180 package). Download the file, rename it to &#039;&#039;&#039;soundfont.sf2&#039;&#039;&#039; and put it into your Kodi directory:&lt;br /&gt;
* For revisions before 35301 copy it into &#039;&#039;&#039;system/players/paplayer/timidity&#039;&#039;&#039; subdirectory (you must create it first). &lt;br /&gt;
* For revisions after 35301 copy it into &#039;&#039;&#039;timidity&#039;&#039;&#039; subdirectory in your home &#039;&#039;&#039;userdata&#039;&#039;&#039; folder, i.e. something like .kodi/userdata/timidity/soundfont.sf2&lt;br /&gt;
&lt;br /&gt;
Advanced way, you need to prepare timidity.cfg configuration file. Usually this is necessary when you use multiple soundfonts or want to add post-processing effects. This means you know enough of Timidity, and could handle it yourself. Kodi embeds [http://trac.kodi.tv/ticket/5490 version 2.13.2 of Timidity]. (Note: Versions of Timidity created in 2010 and after have better support for Karaoke midi files created by ABC notation and better timing for lyrics especially in the xaw part of the code.) Create timidity.cfg and put it in the &#039;&#039;&#039;system/players/paplayer/timidity&#039;&#039;&#039; subdirectory, and check Kodi log file for errors if it doesn&#039;t work. There&#039;s a soundfont configurator tool available online at [http://ocmnet.com/saxguru/Timidity.htm Tim Brechbill&#039;s Timidity site]. It&#039;s assumes you&#039;re on a Windows system, but should be okay with Posix systems too if you correct your paths appropriately. You can use it to generate the Timidity.cfg file for you. There are also links to other good soundfonts at this site.&lt;br /&gt;
&lt;br /&gt;
Please note that for SGM-180 soundfont playback you need a decent machine with at least 256Mb of RAM and at least Pentium 2.4GHz CPU. Otherwise get a smaller soundfont.&lt;br /&gt;
&lt;br /&gt;
If you want to use soundfonts with Open Source and/or Creative Commons licenses, check out the [http://freepats.zenvoid.org/ Freepats Project]. Many Linux distributions offer a Freepats package. The Freepats Project has Open Source and/or Creative Commons licensed soundfonts, instruments sounds and tools to create your own soundfonts.&lt;br /&gt;
&lt;br /&gt;
=== Selection by number ===&lt;br /&gt;
To enable song selection by number, your music collection needs to be scanned (or rescanned if it was scanned already). During scan, the karaoke songs are detected, and the song numbers will be automatically assigned. After the scan is completed, you can export the numbered songs as HTML file (Setup -&amp;gt; Music -&amp;gt; Karaoke -&amp;gt; Export Karaoke titles... -&amp;gt; Export as HTML), open them in the OpenOffice Writer and print a song directory to have a professional Karaoke setup. Use two-column mode if you want to save space.&lt;br /&gt;
&lt;br /&gt;
It is also possible to change the song numbering if you don&#039;t like it or if you want to maintain compatibility with your printed guide. For this you need to export numbered songs as CSV (Setup -&amp;gt; Music -&amp;gt; Karaoke -&amp;gt; Export Karaoke titles... -&amp;gt; Export as CSV), modify it as necessary, and import it back (Setup -&amp;gt; Music -&amp;gt; Karaoke -&amp;gt; Import Karaoke titles). The CSV format is TAB-separated, no quotes, no escape characters. The first field is song number, second field is artist name, third is song name, and fourth is path to the music file. &lt;br /&gt;
&lt;br /&gt;
It is possible to select songs while a karaoke song is still played, by using numbers on your remote. This feature is enabled by default, however you need to make sure that the number buttons from your remote generate Number* events. By default they do not, so you need to modify your Keymap.xml. Put the following in your &amp;lt;remote&amp;gt; section:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;zero&amp;gt;Number0&amp;lt;/zero&amp;gt;&lt;br /&gt;
      &amp;lt;one&amp;gt;Number1&amp;lt;/one&amp;gt;&lt;br /&gt;
      &amp;lt;two&amp;gt;Number2&amp;lt;/two&amp;gt;&lt;br /&gt;
      &amp;lt;three&amp;gt;Number3&amp;lt;/three&amp;gt;&lt;br /&gt;
      &amp;lt;four&amp;gt;Number4&amp;lt;/four&amp;gt;&lt;br /&gt;
      &amp;lt;five&amp;gt;Number5&amp;lt;/five&amp;gt;&lt;br /&gt;
      &amp;lt;six&amp;gt;Number6&amp;lt;/six&amp;gt;&lt;br /&gt;
      &amp;lt;seven&amp;gt;Number7&amp;lt;/seven&amp;gt;&lt;br /&gt;
      &amp;lt;eight&amp;gt;Number8&amp;lt;/eight&amp;gt;&lt;br /&gt;
      &amp;lt;nine&amp;gt;Number9&amp;lt;/nine&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start pressing numbers, a small dialog will pop up in a left top screen corner. It will show selected song number and song name or &amp;quot;Unknown&amp;quot; if there is no such song for this name. Once the song is selected, press &amp;quot;Select&amp;quot; on your remote to add it into the playlist.&lt;br /&gt;
&lt;br /&gt;
=== Show song selector automatically ===&lt;br /&gt;
If the setting &amp;quot;Show song selector automatically&amp;quot; is enabled, the song selection dialog will pop up after the karaoke song ends if there are no more songs in the queue. It will not pop up after a non-Karaoke song. This dialog works exactly as the in-song dialog, however once the song is selected, it starts playing immediately.&lt;br /&gt;
&lt;br /&gt;
=== Setting up default background mode ===&lt;br /&gt;
Default background mode is &amp;quot;no background&amp;quot;. If you wish to use visualization, video or a picture as background, it should be enabled in [[AdvancedSettings.xml#.3Ckaraoke.3E|advancedsettings.xml]].&lt;br /&gt;
&lt;br /&gt;
For video background the video file must be available in supported format. Currently all the formats which could be played by Kodi are supported with exception of DVD and DVD images. Video playback is in alpha phase, so currently only one video could be selected as background. Using highly compressed video is not recommended; MPEG2 is recommended for fast machines and MPEG1 for slow machines. Educational videos like National Geography look very good for background. Stripping audio is not needed, as any available audio stream will be ignored.&lt;br /&gt;
&lt;br /&gt;
When playing CDG+MP3 files, note that they usually have their own background which you can turn on/off in [[AdvancedSettings.xml#.3Ckaraoke.3E|advancedsettings.xml]] as well.&lt;br /&gt;
&lt;br /&gt;
== Where to get Karaoke files ==&lt;br /&gt;
&#039;&#039;&#039;MP3+CDG&#039;&#039;&#039;. CD-G disks are available from many online retailers such as http://www.shopkaraoke.com or http://www.mycdg.com, as well as from some high street shops. Since at this moment Kodi cannot play such disks, you&#039;re suggested to rip them using available tools. Once you have ripped the disks to MP3+G format, you can play the songs directly from your hard disk using Kodi.&lt;br /&gt;
&lt;br /&gt;
Alternatively there are some online retailers offering downloadable MP3+G files. See http://www.tricerasoft.com for a good example. From sites like this you can download the files already in MP3+G format and play them directly using Kodi. There is also a bunch of web sites selling huge collections of MP3+G songs on multiple DVD disks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MP3+LRC&#039;&#039;&#039;. At this moment we do not know about any vendor which would sell legit MP3 karaoke files with LRC lyrics. A lot of LRC karaoke files and music are available on Asian (mostly Chinese) web sites, either freely or commercially, but their legality is questionable. However, LRC lyrics alone are freely available at a lot of web sites, and relatively easy to create, see the article in this wiki on [[HOW-TO create LRC karaoke lyrics files]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MP3+TXT&#039;&#039;&#039;. A few Creative Commons licensed songs come with UltraStar Deluxe. These will work on POSIX platforms as well as Windows. You can do a [http://search.creativecommons.org/ search on Creative Commons licensed MP3 files] to find songs you can legally share with others. You&#039;ll probably need to create your own lyrics files though. You can also check Ultrastar, Ultrastar Deluxe and Performous forums for more songs and/or lyrics. If you legally own songs on CD, you can rip them to WAV for personal use using Open Source tools like CDex or Asunder or K3B and then convert to MP3 with tools like Audacity or Sox. Some software may convert directly to MP3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MIDI&#039;&#039;&#039;. MIDI karaoke files are mostly available for free as &amp;quot;public domain&amp;quot;, while only a few of them are available commercially. (Note: Some freely available MIDI Karaoke files have copyright notifications embedded in them. Also, just because the MIDI file is available for free, doesn&#039;t mean it&#039;s public domain. If the song itself is under copyright, the midi file is not legally in the public domain.) They are often found in specialized musician/karaoke forums as well as on [http://www.midikaraoke.com dedicated websites]. The MIDI format was very popular before introduction of MP3, and tons of them could be found in the old newsgroups archives. There&#039;s also a search engine for Karaoke MIDI files at the VanBasco site, but the site isn&#039;t always available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ABC&#039;&#039;&#039;. ABC Notation text files files can easily be converted to Karaoke MIDI files or even MP3 files with text lyrics. Many are free, in the public domain or have friendly licensing restrictions. There are several [http://abcnotation.com/search search engines] available for them. Another good place to look for them is [http://www.mudcat.org/ The Mudcat Cafe].&lt;br /&gt;
&lt;br /&gt;
== Playing ==&lt;br /&gt;
Select the Karaoke song (either on disk or by number) and press &amp;quot;Select&amp;quot;. The screen should change to visualization, and the song should start playing with the lyrics shown on screen. For us the best visualization for karaoke so far was Goom, but it is very resource-consuming so if your hardware is not top notch, you might want to switch to Project M instead, which is also very good.&lt;br /&gt;
&lt;br /&gt;
If the lyrics for this specific song need to start earlier or later, press the button associated with SubtitleDelayPlus or SubtitleDelayMinus until lyrics are synchronized. Each press changes the delay by 50ms.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re in the middle of a song and decide you want to hear something else, press x to get back to your song listings. You can also move through your songs lists by pressing , or . to go backward or forward in your song listings.&lt;br /&gt;
&lt;br /&gt;
== Advanced settings ==&lt;br /&gt;
The following advanced settings are added for karaoke support. All they must be stored in the advancedsettings.xml file in the &amp;lt;karaoke&amp;gt; section:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;karaoke&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Music-lyrics delay for CDG format lyrics in SECONDS. Floating number, may be negative. --&amp;gt;&lt;br /&gt;
  &amp;lt;syncdelaycdg&amp;gt;0.0&amp;lt;/syncdelaycdg&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Music-lyrics delay for LRC format lyrics in 1/10 seconds. Floating number, may be negative. --&amp;gt;&lt;br /&gt;
  &amp;lt;syncdelaylrc&amp;gt;0.0&amp;lt;/syncdelaylrc&amp;gt;&lt;br /&gt;
  &amp;lt;!-- If set to true, when the songs are added to the library, Kodi will automatically replace the song genre by &amp;quot;Karaoke&amp;quot;&lt;br /&gt;
    if the song has associated lyrics. Default is false. --&amp;gt;&lt;br /&gt;
  &amp;lt;alwaysreplacegenre&amp;gt;false&amp;lt;/alwaysreplacegenre&amp;gt;&lt;br /&gt;
  &amp;lt;!-- If set to true, when the music-lyrics delay was modified while playing using subtitle delay buttons, the delay value&lt;br /&gt;
    for this song will be stored, and restored when the song is played next time. Default is true. --&amp;gt;&lt;br /&gt;
  &amp;lt;storedelay&amp;gt;true&amp;lt;/storedelay&amp;gt;&lt;br /&gt;
  &amp;lt;!-- When karaoke songs are added to the library during scans, an autoincrement number is automatically assigned&lt;br /&gt;
 to each song, starting from the value specified below. Default starts from 1. --&amp;gt;&lt;br /&gt;
  &amp;lt;autoassignstartfrom&amp;gt;1&amp;lt;/autoassignstartfrom&amp;gt;&lt;br /&gt;
  &amp;lt;!-- If set to true (default), the background for CDG songs is always empty (plain color) no matter what setting is set in &lt;br /&gt;
    defaultbackground below. When setting this to false, then one can see through the background and see the video or&lt;br /&gt;
    visualization.--&amp;gt;&lt;br /&gt;
  &amp;lt;nocdgbackground&amp;gt;true&amp;lt;/nocdgbackground&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Sets default background mode. Type could be &amp;quot;none&amp;quot;, &amp;quot;vis&amp;quot; for visualisation, &amp;quot;image&amp;quot; or &amp;quot;video&amp;quot;.&lt;br /&gt;
    For image/video types the &amp;quot;path&amp;quot; parameter should specify the image or video file to play. --&amp;gt;&lt;br /&gt;
  &amp;lt;defaultbackground type=&amp;quot;video&amp;quot; path=&amp;quot;special://masterprofile/karaokevideobg.avi&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;!-- If non-zero, specifies the time in seconds left before the end of the current song when a window will pop up informing you&lt;br /&gt;
    about the next played song. The window does not pop up if there is no next song, or it is not a karaoke song --&amp;gt;&lt;br /&gt;
  &amp;lt;nextsongpopuptime&amp;gt;0.0&amp;lt;/nextsongpopuptime&amp;gt;&lt;br /&gt;
&amp;lt;/karaoke&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
{{#dpl: | category = Karaoke }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Karaoke]]&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=MySQL/Setting_up_Kodi&amp;diff=139595</id>
		<title>MySQL/Setting up Kodi</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=MySQL/Setting_up_Kodi&amp;diff=139595"/>
		<updated>2018-07-10T12:24:56Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighlighter fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:MySQL/Contents}}&lt;br /&gt;
{{mininav| [[MySQL]] }}&lt;br /&gt;
Each device that will be sharing a library will need an [[Advancedsettings.xml|advancedsetting.xml]] file.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
{{-}}&lt;br /&gt;
==Make files accessible over the network==&lt;br /&gt;
If you haven&#039;t already done so, you will need to make your media files accessible to all your Kodi devices by sharing them on the network through file sharing. Kodi itself or the MySQL server will not share the actual files for this setup. Most operating systems have built-in methods for sharing files to the network, or a [[NAS]] device can be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note|&lt;br /&gt;
*If you use passwords on your network shares then you will need to copy (or [[MySQL/Sync other parts of Kodi|sync]]) your passwords.xml file from the userdata folder to each Kodi device.&lt;br /&gt;
*Do not use mapped drives on the OS-level, as Kodi will see those as local drives.&lt;br /&gt;
*If you use smb:// paths, you may want to use static IP addresses rather than NetBIOS names, as not all your devices may be able to resolve the latter.&lt;br /&gt;
*&#039;&#039;&#039;Even if the media is on the same computer as one of the Kodi instances, you MUST use a network share path. You cannot use a local file path with MySQL.&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[:Category:File Sharing]] for some of the file sharing methods that work with Kodi.&lt;br /&gt;
&lt;br /&gt;
==Exporting==&lt;br /&gt;
{{see also|HOW-TO:Backup the video library|Import-export library}}&lt;br /&gt;
&lt;br /&gt;
{{note|You only need to do the exporting steps if you are migrating an existing local library to a MySQL database. The MySQL setup creates an entirely new library on the MySQL server, so this step allows you to preserve your old library and restore it once MySQL is used in Kodi.}}&lt;br /&gt;
&lt;br /&gt;
{{redv|&#039;&#039;&#039;Warning:&#039;&#039;&#039; |This will create individual &amp;quot;.nfo&amp;quot; and image files along side your video files. This is considered the safest way to backup and/or migrate a library (MySQL or otherwise), but some users might not want the file clutter. For an alternative method see &#039;&#039;&#039;[[why multiple files|here]]&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
#Open Kodi on the computer that has the library you want to share&lt;br /&gt;
##Export the Video Library by doing the following:&lt;br /&gt;
###Go to &#039;&#039;&#039;Settings/Media/Library/Video Library&#039;&#039;&#039; and select &#039;&#039;&#039;Export library&#039;&#039;&#039;&lt;br /&gt;
###Select &#039;&#039;&#039;Multiple files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
##Export the Music Library by doing the following:&lt;br /&gt;
###Go to &#039;&#039;&#039;&#039;Settings/Media/Library/Music Library&#039;&#039;&#039; and select &#039;&#039;&#039;Export library&#039;&#039;&#039;&lt;br /&gt;
###Select &#039;&#039;&#039;Multiple files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==MySQL and advancedsettings.xml==&lt;br /&gt;
{| class=infobox&lt;br /&gt;
| advancedsettings.xml:&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
  &amp;lt;videodatabase&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;mysql&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;host&amp;gt;***.***.***.***&amp;lt;/host&amp;gt;&lt;br /&gt;
    &amp;lt;port&amp;gt;3306&amp;lt;/port&amp;gt;&lt;br /&gt;
    &amp;lt;user&amp;gt;kodi&amp;lt;/user&amp;gt;&lt;br /&gt;
    &amp;lt;pass&amp;gt;kodi&amp;lt;/pass&amp;gt;&lt;br /&gt;
  &amp;lt;/videodatabase&amp;gt; &lt;br /&gt;
  &amp;lt;musicdatabase&amp;gt;&lt;br /&gt;
    &amp;lt;type&amp;gt;mysql&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;host&amp;gt;***.***.***.***&amp;lt;/host&amp;gt;&lt;br /&gt;
    &amp;lt;port&amp;gt;3306&amp;lt;/port&amp;gt;&lt;br /&gt;
    &amp;lt;user&amp;gt;kodi&amp;lt;/user&amp;gt;&lt;br /&gt;
    &amp;lt;pass&amp;gt;kodi&amp;lt;/pass&amp;gt;&lt;br /&gt;
  &amp;lt;/musicdatabase&amp;gt;&lt;br /&gt;
  &amp;lt;videolibrary&amp;gt;&lt;br /&gt;
    &amp;lt;importwatchedstate&amp;gt;true&amp;lt;/importwatchedstate&amp;gt;&lt;br /&gt;
    &amp;lt;importresumepoint&amp;gt;true&amp;lt;/importresumepoint&amp;gt;&lt;br /&gt;
  &amp;lt;/videolibrary&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;See also this note about using the &amp;lt;name&amp;gt; tag: [[#Name tag]]&amp;lt;br/&amp;gt;&amp;lt;importwatchedstate&amp;gt; is only needed when you&#039;re importing a previous library from exported files.&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
#Create (or add to, if you already have one) an [[Advancedsettings.xml#.3Cmusicdatabase.3E.2F.3Cvideodatabase.3E|advancedsettings.xml]] file:&lt;br /&gt;
##Open up a plain text editor&lt;br /&gt;
##Copy and paste the text from the right-hand box into a new text document&lt;br /&gt;
##Replace the two instances of &amp;lt;code&amp;gt;***.***.***.***&amp;lt;/code&amp;gt; with local network IP address of your MySQL server. If you installed MySQL on a Windows machine, do not use its NetBIOS name, as not all devices may be able to resolve them.&lt;br /&gt;
##Save the file as &#039;&#039;&#039;advancedsettings.xml&#039;&#039;&#039;&lt;br /&gt;
#Copy this &#039;&#039;advancedsettings.xml&#039;&#039; file you just created to the &#039;&#039;&#039;[[userdata folder]]&#039;&#039;&#039; of every Kodi install you want to sync with.&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
{{note|Sometimes it takes your dhcp too long before an ip-address is assigned to the local machine and the [https://github.com/samnazarko/osmc/issues/131 mysql driver are therefore not loaded]. In this case the library will appear empty and will not show resumepoints and watchedstates. In that case run &amp;lt;code&amp;gt;sudo systemctl enable connman-wait-for-network.service&amp;lt;/code&amp;gt; on the shell or look for the option &amp;quot;wait for a network connection before loading&amp;quot; in the network options}}&lt;br /&gt;
&lt;br /&gt;
==Importing==&lt;br /&gt;
At this point Kodi is using the MySQL server for the database, which means it has a new blank library. Now we can either import an old library (see below) or simply start a new library (see [[adding videos to the library]]). From this point on, Kodi behaves exactly like it would as if it had a local database, except that database is on the MySQL server and multiple installs can access that single database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Open any of your installs and re-import your library data, &#039;&#039;or&#039;&#039; simply set up a new library if you are starting fresh.&lt;br /&gt;
# Add (or just &amp;quot;set content&amp;quot; on) the networked video source to Kodi and scan it in as if you were setting up your library for the first time (see [[adding videos to the library]]). However, Kodi will read the exported nfo files and images and use those instead of rebuilding the library from scratch. The end result will be an identical library, and your watched status for videos will be preserved.&lt;br /&gt;
#:{{Note|You must add a network source using Kodi&#039;s standard formatting. For example, use &amp;quot;smb://192.168.1.20/Videos/&amp;quot; and not &amp;quot;\\BOBPC\Videos\&amp;quot;.  Try to use static IP addresses over NetBIOS names if using SMB.}}&lt;br /&gt;
# Import the Music Library by doing the following: Same idea as videos, but using the steps for [[adding music to the library]]. You&#039;ll end up with an identical library.&lt;br /&gt;
You can now add files and update the library from any of your devices and the library for all of them will stay in sync.&lt;br /&gt;
&lt;br /&gt;
== Adding new Kodi devices to the MySQL setup ==&lt;br /&gt;
Since the database has now been set up on the MySQL server, all you need to do for any additional Kodi devices, is to copy a small number of files/folders.&lt;br /&gt;
* Copy the MySQL connections section for video and/or music databases into the &#039;&#039;&#039;advancedsettings.xml&#039;&#039;&#039; file on the other Kodi client(s). If you have identical Kodi devices, simply copy the whole advancedsettings.xml file from the initially setup Kodi device.&lt;br /&gt;
* Copy from the same userdata root folder the files, such as &amp;quot;&#039;&#039;&#039;favourites.xml&#039;&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;&#039;sources.xml&#039;&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;&#039;mediasources.xml&#039;&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;&#039;passwords.xml&#039;&#039;&#039;&amp;quot; (if present).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To have the other Kodi client(s) also benefit from the already downloaded/cached art thumbnails:&lt;br /&gt;
* Copy the &#039;&#039;&#039;Textures13.db&#039;&#039;&#039; file from the &#039;&#039;&#039;userdata/Database folder&#039;&#039;&#039; to the other Kodi client(s).&lt;br /&gt;
* Copy the full &#039;&#039;&#039;Thumbnails&#039;&#039;&#039; subfolder from the userdata folder to other Kodi client(s). (This subfolder may contain several megabytes of small files when dealing with large video/music collections)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to do any of the other steps, such as rescanning or reimporting. Any fanart not already cached will be downloaded shortly after. If this method works on one device, it should work on all of them, as they are basically sharing the same &amp;quot;brain&amp;quot; for the video/music metadata.&lt;br /&gt;
&lt;br /&gt;
If you however used a metadata collector add-on ([[scraper]]) that does not ship by default with new installations, such as the [[Add-on:Universal Movie Scraper|Universal Movie Scraper]] you will not be able to display the [[Basic_controls|media information screen]] on the new Kodi device. To fix that, you need to install the same metadata collector add-on on the new device.&lt;br /&gt;
&lt;br /&gt;
==Name tag==&lt;br /&gt;
&amp;lt;section begin=&amp;quot;name tag&amp;quot; /&amp;gt;&lt;br /&gt;
An additional &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; tag can be used for both the &amp;lt;code&amp;gt;&amp;lt;videodatabase&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;musicdatabase&amp;gt;&amp;lt;/code&amp;gt; entries in advancedsettings.xml file, if you want to change the name of the database. The &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; tag is not required. Kodi will use &amp;quot;MyVideos&amp;quot; and &amp;quot;MyMusic&amp;quot; as database names if the &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; tag is not specified. &lt;br /&gt;
&lt;br /&gt;
You may want to do this if you want to have multiple separate libraries (with different content) on the same MySQL server. For example, if you want to create multiple profiles, each with their own shared library, so that each Kodi device can &amp;quot;log-into&amp;quot; that library. (a kids library, a guest library, etc)&lt;br /&gt;
&lt;br /&gt;
{{note|Don&#039;t try to merge the video and music databases! You need to use different values in the &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; tag or you&#039;ll end up confusing Kodi leading to the library functionality not working at all. In other words, don&#039;t use &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;Kids&amp;lt;/name&amp;gt;&amp;lt;/code&amp;gt; for both music and videos, but instead use something like &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;Kids-music&amp;lt;/name&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;Kids-video&amp;lt;/name&amp;gt;&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
{{Krypton updated}}&lt;/div&gt;</summary>
		<author><name>Kibje</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=MySQL/Advanced_notes&amp;diff=139594</id>
		<title>MySQL/Advanced notes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=MySQL/Advanced_notes&amp;diff=139594"/>
		<updated>2018-07-10T12:24:35Z</updated>

		<summary type="html">&lt;p&gt;Kibje: syntaxhighligher fix&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;
For Kodi/XBMC ≤ v12 (Frodo) and/or MySQL 5.0 or lower: with MyISAM as the default storage engine, the following tweaks are necessary:&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://xbmcstuff.bossanova808.net/2011/03/summary-of-xbmc-mysql-database.html?m=1 MySQL speed-up tweaks for Kodi/XBMC] - See Comments for more information.&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://forum.kodi.tv/showthread.php?tid=212806&amp;amp;pid=1875330#pid1875330 More MySQL speed-up tweaks for Kodi/XBMC]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For MySQL 5.5 or latest: with InnoDB as the default storage engine and/or v13 (Gotham)/Kodi+ only the following two tweaks are necessary.&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;
=== 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>Kibje</name></author>
	</entry>
</feed>