<?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=BobCratchett</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=BobCratchett"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/BobCratchett"/>
	<updated>2026-06-15T15:01:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Library_Node_Editor&amp;diff=124570</id>
		<title>Add-on:Library Node Editor</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Library_Node_Editor&amp;diff=124570"/>
		<updated>2016-10-03T15:30:15Z</updated>

		<summary type="html">&lt;p&gt;BobCratchett: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Library Node Editor&lt;br /&gt;
|provider-name=Unfledged, Team-Kodi&lt;br /&gt;
|ID=plugin.library.node.editor&lt;br /&gt;
|latest-version=0.0.4&lt;br /&gt;
|extension point=xbmc.python.pluginsource&lt;br /&gt;
|provides=executable&lt;br /&gt;
|Summary=Manage custom library nodes.&lt;br /&gt;
|Description=Create and edit custom library nodes.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=GNU General Public License, v2&lt;br /&gt;
|Forum=http://forum.kodi.tv/showthread.php?tid=224512&lt;br /&gt;
|Website=&lt;br /&gt;
|Source=https://github.com/XBMC-Addons/plugin.library.node.editor&lt;br /&gt;
|Email=&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/jarvis/plugin.library.node.editor/icon.png}}&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
The Library Node Editor allows you to create and customise custom [[video nodes]] and [[music nodes]] within Kodi.&lt;br /&gt;
&lt;br /&gt;
== Anatomy of a Custom Node ==&lt;br /&gt;
=== Parent nodes ===&lt;br /&gt;
Parent nodes act like folders - they contain nodes, and can contain parent nodes. You can also add rules to a parent node, which will be applied to all nodes immediately within it.&lt;br /&gt;
&lt;br /&gt;
=== Nodes ===&lt;br /&gt;
Nodes describe views of your media. They can include multiple elements which describe what media Kodi will display, and how it will filter it. A new node will let you set one of two parameters, either &#039;Content&#039; or &#039;Path&#039;. If you select &#039;Content&#039;, then you will be able to create a node based on various rules. If you select &#039;Path&#039;, you will be able to create a node which links directly to a library path with various path components specified within the editor.&lt;br /&gt;
&lt;br /&gt;
==== Content ====&lt;br /&gt;
Set content to the type of media that Kodi will display in this node. Either Movies, TV Shows, Episodes or Music Videos for a video node; Artists, Albums or Songs for a music node. Once content is set, new options become available.&lt;br /&gt;
&lt;br /&gt;
===== Order =====&lt;br /&gt;
Set the property of the media that it will be ordered by in the view. You can select the property (title, year, director, etc) and the direction that it will be ordered (ascending, descending)&lt;br /&gt;
&lt;br /&gt;
===== Grouping =====&lt;br /&gt;
Group media be a given property (genre, actor, director, etc)&lt;br /&gt;
&lt;br /&gt;
===== Limit =====&lt;br /&gt;
Limit the number of results that will be returned&lt;br /&gt;
&lt;br /&gt;
===== Rule =====&lt;br /&gt;
A rule that must be matched by any content that will be returned. Rules are made of three parts - the property of the media that is being queried (title, year, director, etc); the operator (Is, Is Not, etc) and the value that must be matched.&lt;br /&gt;
&lt;br /&gt;
==== Path ====&lt;br /&gt;
Set content to a particular videodb:// or musicdb:// address provided by Kodi. For example, for recently added movies, videodb://recentlyaddedmovies/. You will then be able to specify additional components of the path to customise what content will be available.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Add a &#039;Recently Viewed&#039; node ===&lt;br /&gt;
To add a new &#039;Recently Viewed&#039; node which shows the last 20 watched items to an existing parent node:&lt;br /&gt;
# Open the Parent Node you wish to add the Recently Viewed node to&lt;br /&gt;
# Select &#039;New Node...&#039; and give it the title &#039;Recently Viewed&#039;&lt;br /&gt;
# Open the &#039;Recently Added&#039; node you just added&lt;br /&gt;
# Select &#039;Add content...&#039; and choose the content that matched the Parent Node you are using&lt;br /&gt;
# Select &#039;Add limit...&#039; and type 20 in the dialog&lt;br /&gt;
# Select &#039;Add order...&#039;&lt;br /&gt;
## Select &#039;Title&#039; and change this to &#039;Last played&#039;&lt;br /&gt;
## Select &#039;ascending&#039; and change this to &#039;Descending&#039;&lt;br /&gt;
## Back out of the &#039;Order&#039; property by clicking &#039;..&#039; or pressing Back&lt;br /&gt;
&lt;br /&gt;
=== Limit content by path ===&lt;br /&gt;
To add a new Parent Node for video nodes which only shows movies from a particular path.&lt;br /&gt;
(This presumes that differing types of media you want to display are kept in different sources. In this example, the source is smb://anime/)&lt;br /&gt;
# Select &#039;Video Library&#039;&lt;br /&gt;
# Select &#039;New parent node...&#039;&lt;br /&gt;
## Type a title which corresponds to the type of media you want to display, for example &#039;Anime&#039;&lt;br /&gt;
## Choose &#039;Movies&#039; when asked which defaults to start with. This will give you all the nodes you will find under the default &#039;Movies&#039; Parent Node&lt;br /&gt;
# Open the new Parent Node you just added&lt;br /&gt;
# Select &#039;Add Rules...&#039;&lt;br /&gt;
## Select &#039;Title&#039; and change to &#039;Path&#039;&lt;br /&gt;
## Select &#039;contains&#039; and change to &#039;starts with&#039;&lt;br /&gt;
## Select &#039;&amp;lt;No value&amp;gt;&#039; and type in &#039;smb://anime/&#039; OR select &#039;Browse for value&#039;, open the source containing your media and click OK.&lt;br /&gt;
&lt;br /&gt;
All nodes within your new Parent Node will now be limited to content from that path.&lt;br /&gt;
&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;/div&gt;</summary>
		<author><name>BobCratchett</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Video_nodes&amp;diff=124518</id>
		<title>Video nodes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Video_nodes&amp;diff=124518"/>
		<updated>2016-09-30T20:57:20Z</updated>

		<summary type="html">&lt;p&gt;BobCratchett: /* Video node editor add-on */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Video library]]|[[Video management|Management]] }}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Video nodes are defined views that are used to organize your media from the videos menu. In the past Kodi has had a number of standard nodes such as Title, Director, Year, Studios, Countries, Genres that were hard coded. As of v12 Frodo, Kodi introduces the ability to customize these nodes using an XML file. Using XML files really gives great flexibility in how you display your media. Don&#039;t want your screaming kids stuff in your main movie node... exclude it. Want documentaries in a separate node, create it. Don&#039;t like how recently added is presented, change it.&lt;br /&gt;
&lt;br /&gt;
To get full functionality from custom nodes, you need to use a skin that allows you to deploy them as you would like (e.g. latest builds of Aeon Nox). Confluence will show your nodes, but doesn&#039;t allow you to decide exactly where.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Library node editor add-on ==&lt;br /&gt;
{{main|Add-on:Library Node Editor}}&lt;br /&gt;
Users can now create and edit video and music nodes from within {{kodi}} thanks to the community add-on [[Add-on:Library Node Editor|Lbrary Node Editor]].&lt;br /&gt;
&lt;br /&gt;
== Technical documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Default video nodes ===&lt;br /&gt;
[[File:defaultnodes.jpg|right|500px|frame|The standard video nodes]]&lt;br /&gt;
You can find a copy of the default nodes in one of two ways. One is to download all or some of the nodes you want form https://github.com/xbmc/xbmc/tree/master/system/library .&lt;br /&gt;
&lt;br /&gt;
The other way is to copy the Kodi system default nodes that come with Kodi, shown in the table below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Operative system&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;default nodes paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039; || /data/data/org.xbmc.kodi/cache/apk/assets/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS&#039;&#039;&#039; - Varied || /Applications/Kodi.frappliance/KodiData/KodiHome/system/library/ &amp;lt;br /&amp;gt; /Applications/Kodi.app/KodiData/KodiHome/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || /usr/share/Kodi/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || /Applications/Kodi.app/Contents/Resources/Kodi/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (32bit)&#039;&#039;&#039; || C:\Program Files\Kodi\system\library\&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (64bit)&#039;&#039;&#039; || C:\Program Files (x86)\Kodi\system\library\&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To understand nodes a little better, lets take a look at one of the defaults. As an example take a quick look at the &#039;&#039;video/movies/years.xml&#039;&#039; node in its simplest form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;node order=&amp;quot;3&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;562&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultYear.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;group&amp;gt;years&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see we are using standard xml format here so nothing too complicated.&lt;br /&gt;
&lt;br /&gt;
=== XML node components ===&lt;br /&gt;
&#039;&#039;&#039;Order&#039;&#039;&#039; = This is the order that you want to show the nodes. Starts at 1 for the top and goes sequentially so 2 will be the next node down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Label&#039;&#039;&#039; = This is the text that will show for the node. In this case it is pointing to an ID in the strings.xml file (for transltion purposes) It can also just be any String you want, just type some text instead of the id number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Path&#039;&#039;&#039; = This can be any valid Kodi path, such as a file path. This includes internal Kodi DB paths, such as &amp;lt;code&amp;gt;videodb://movies/genres/&amp;lt;/code&amp;gt;. For more on internal paths, see &#039;&#039;&#039;[[Opening Windows and Dialogs]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Icon&#039;&#039;&#039; = Pretty self explanatory really, this is the icon that will show when the node is navigated over.&lt;br /&gt;
&lt;br /&gt;
== Manually creating or editing a custom node ==&lt;br /&gt;
So now we understand how the default nodes work, lets have a look at making a custom node. Custom nodes live inside your [[Userdata]] folder. To create custom nodes, the first step is to copy the whole of the default node file structure from the default library folder to a new folder called &#039;&#039;library&#039;&#039; inside your [[Userdata]] folder.&lt;br /&gt;
&lt;br /&gt;
So, in the case of Windows, copy the &#039;video&#039; and the &#039;video_flat&#039; folders from &#039;&#039;C:\Program Files (x86)\Kodi\system\library&#039;&#039; to &#039;&#039;%appdata%\Kodi\userdata\library&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Why the whole lot? Well, currently it seems that when you have a custom video node in your userdata folder, it&#039;s assumed that you are customizing the node structure, and that therefore any nodes that are missing are missing intentionally.&lt;br /&gt;
&lt;br /&gt;
Having copied the node structure, we can now create a new xml file under the relevant directory.&lt;br /&gt;
&lt;br /&gt;
In a vanilla install with the confluence skin, custom nodes in &#039;&#039;/video&#039;&#039; will appear in the sub-list of the Video main menu item. &lt;br /&gt;
&lt;br /&gt;
Custom nodes in the &#039;&#039;/video/movies&#039;&#039; will appear in the sub-list of &#039;Movies&#039; which in turn appears in the sub-list of Video.&lt;br /&gt;
&lt;br /&gt;
In other skins (notably, Aeon Nox), custom main-menu items can be set to a custom video node, meaning that you can use your custom video nodes to have a main-menu item for your collection of post-modern european arthouse anime, if you so wish.&lt;br /&gt;
&lt;br /&gt;
For now, we&#039;re going to place our node under&lt;br /&gt;
&lt;br /&gt;
 /userdata/library/video/&lt;br /&gt;
&lt;br /&gt;
Let&#039;s call it Custom_Motor_dvds.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;10&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;(Custom) Motor DVDs&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultCars.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;limit&amp;gt;20&amp;lt;/limit&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;path&amp;quot; operator=&amp;quot;contains&amp;quot;&amp;gt;&amp;lt;value&amp;gt;ExtremeSports/Cars/&amp;lt;/value&amp;gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see as well as changing the order, we have a few more xml tags this time:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039; = Can be folder or filter, folder requires path to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Match&#039;&#039;&#039; = Specifies how many rules should match. In this case we are matching all rules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rule&#039;&#039;&#039; = Any rule created with the smart playlist editor. (See [[Smart Playlists]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limit&#039;&#039;&#039; = Limit the number of results returned (can be excluded altogether for unlimited)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:motordvds.jpg|500px|Custom node in action]]&lt;br /&gt;
&lt;br /&gt;
So there you have it, a simple path filter for our Motor DVDs.&lt;br /&gt;
&lt;br /&gt;
One thing that you may want to do now is edit your &amp;quot;Title&amp;quot; xml file to remove the motor dvds from the main movie library. Though if you are attempting to setup a main movie entrypoint for a path labeled &amp;quot;Movies&amp;quot; it may be best to simply hide the default Movies entry from the main menu and create a &amp;quot;Custom Movies&amp;quot; video node that points to your specific path. Still you can remove paths using the DoesNotContain operator:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;2&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;Movies&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultMovieTitle.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;path&amp;quot; operator=&amp;quot;doesnotcontain&amp;quot;&amp;gt;&amp;lt;value&amp;gt;/ExtremeSports/Cars/&amp;lt;/value&amp;gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are many other rules you can apply, a simple way to find them is to have a go with the smart playlist editor and copy the rule from the resulting xml playlist. There are many possibilities, you could create a rule for any of the database fields such as genre or year, use paths or combine rules together.&lt;br /&gt;
&lt;br /&gt;
[[File:customnodes.jpg|500px|Various custom video nodes]]&lt;br /&gt;
&lt;br /&gt;
== Manually creating or editing a custom parent node ==&lt;br /&gt;
You can also create a nested node structure as can be observed in the &amp;quot;unflattened&amp;quot; default structure from [[Custom video nodes#The default Node|above]] (under video).&lt;br /&gt;
Then you simply create a folder containing valid xml node files and also include a &amp;quot;index.xml&amp;quot; file that looks like this (which of course can be adapted to the type of media required):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;1&amp;quot; visible=&amp;quot;Library.HasContent(Movies)&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- a virtual folder --&amp;gt;&lt;br /&gt;
   &amp;lt;label&amp;gt;342&amp;lt;/label&amp;gt;&lt;br /&gt;
   &amp;lt;icon&amp;gt;DefaultMovies.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
[[File:PatK_Nodes.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Audio nodes]]&lt;br /&gt;
* [[Custom home items]]&lt;br /&gt;
* [[Smart playlists]]&lt;br /&gt;
* [[Video library tags]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>BobCratchett</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Video_nodes&amp;diff=124517</id>
		<title>Video nodes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Video_nodes&amp;diff=124517"/>
		<updated>2016-09-30T20:56:59Z</updated>

		<summary type="html">&lt;p&gt;BobCratchett: /* Video node editor add-on */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Video library]]|[[Video management|Management]] }}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Video nodes are defined views that are used to organize your media from the videos menu. In the past Kodi has had a number of standard nodes such as Title, Director, Year, Studios, Countries, Genres that were hard coded. As of v12 Frodo, Kodi introduces the ability to customize these nodes using an XML file. Using XML files really gives great flexibility in how you display your media. Don&#039;t want your screaming kids stuff in your main movie node... exclude it. Want documentaries in a separate node, create it. Don&#039;t like how recently added is presented, change it.&lt;br /&gt;
&lt;br /&gt;
To get full functionality from custom nodes, you need to use a skin that allows you to deploy them as you would like (e.g. latest builds of Aeon Nox). Confluence will show your nodes, but doesn&#039;t allow you to decide exactly where.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Video node editor add-on ==&lt;br /&gt;
{{main|Add-on:Library Node Editor}}&lt;br /&gt;
Users can now create and edit video and music nodes from within {{kodi}} thanks to the community add-on [[Add-on:Library Node Editor|Lbrary Node Editor]].&lt;br /&gt;
&lt;br /&gt;
== Technical documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Default video nodes ===&lt;br /&gt;
[[File:defaultnodes.jpg|right|500px|frame|The standard video nodes]]&lt;br /&gt;
You can find a copy of the default nodes in one of two ways. One is to download all or some of the nodes you want form https://github.com/xbmc/xbmc/tree/master/system/library .&lt;br /&gt;
&lt;br /&gt;
The other way is to copy the Kodi system default nodes that come with Kodi, shown in the table below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Operative system&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;default nodes paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039; || /data/data/org.xbmc.kodi/cache/apk/assets/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS&#039;&#039;&#039; - Varied || /Applications/Kodi.frappliance/KodiData/KodiHome/system/library/ &amp;lt;br /&amp;gt; /Applications/Kodi.app/KodiData/KodiHome/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || /usr/share/Kodi/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || /Applications/Kodi.app/Contents/Resources/Kodi/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (32bit)&#039;&#039;&#039; || C:\Program Files\Kodi\system\library\&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (64bit)&#039;&#039;&#039; || C:\Program Files (x86)\Kodi\system\library\&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To understand nodes a little better, lets take a look at one of the defaults. As an example take a quick look at the &#039;&#039;video/movies/years.xml&#039;&#039; node in its simplest form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;node order=&amp;quot;3&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;562&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultYear.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;group&amp;gt;years&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see we are using standard xml format here so nothing too complicated.&lt;br /&gt;
&lt;br /&gt;
=== XML node components ===&lt;br /&gt;
&#039;&#039;&#039;Order&#039;&#039;&#039; = This is the order that you want to show the nodes. Starts at 1 for the top and goes sequentially so 2 will be the next node down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Label&#039;&#039;&#039; = This is the text that will show for the node. In this case it is pointing to an ID in the strings.xml file (for transltion purposes) It can also just be any String you want, just type some text instead of the id number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Path&#039;&#039;&#039; = This can be any valid Kodi path, such as a file path. This includes internal Kodi DB paths, such as &amp;lt;code&amp;gt;videodb://movies/genres/&amp;lt;/code&amp;gt;. For more on internal paths, see &#039;&#039;&#039;[[Opening Windows and Dialogs]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Icon&#039;&#039;&#039; = Pretty self explanatory really, this is the icon that will show when the node is navigated over.&lt;br /&gt;
&lt;br /&gt;
== Manually creating or editing a custom node ==&lt;br /&gt;
So now we understand how the default nodes work, lets have a look at making a custom node. Custom nodes live inside your [[Userdata]] folder. To create custom nodes, the first step is to copy the whole of the default node file structure from the default library folder to a new folder called &#039;&#039;library&#039;&#039; inside your [[Userdata]] folder.&lt;br /&gt;
&lt;br /&gt;
So, in the case of Windows, copy the &#039;video&#039; and the &#039;video_flat&#039; folders from &#039;&#039;C:\Program Files (x86)\Kodi\system\library&#039;&#039; to &#039;&#039;%appdata%\Kodi\userdata\library&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Why the whole lot? Well, currently it seems that when you have a custom video node in your userdata folder, it&#039;s assumed that you are customizing the node structure, and that therefore any nodes that are missing are missing intentionally.&lt;br /&gt;
&lt;br /&gt;
Having copied the node structure, we can now create a new xml file under the relevant directory.&lt;br /&gt;
&lt;br /&gt;
In a vanilla install with the confluence skin, custom nodes in &#039;&#039;/video&#039;&#039; will appear in the sub-list of the Video main menu item. &lt;br /&gt;
&lt;br /&gt;
Custom nodes in the &#039;&#039;/video/movies&#039;&#039; will appear in the sub-list of &#039;Movies&#039; which in turn appears in the sub-list of Video.&lt;br /&gt;
&lt;br /&gt;
In other skins (notably, Aeon Nox), custom main-menu items can be set to a custom video node, meaning that you can use your custom video nodes to have a main-menu item for your collection of post-modern european arthouse anime, if you so wish.&lt;br /&gt;
&lt;br /&gt;
For now, we&#039;re going to place our node under&lt;br /&gt;
&lt;br /&gt;
 /userdata/library/video/&lt;br /&gt;
&lt;br /&gt;
Let&#039;s call it Custom_Motor_dvds.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;10&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;(Custom) Motor DVDs&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultCars.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;limit&amp;gt;20&amp;lt;/limit&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;path&amp;quot; operator=&amp;quot;contains&amp;quot;&amp;gt;&amp;lt;value&amp;gt;ExtremeSports/Cars/&amp;lt;/value&amp;gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see as well as changing the order, we have a few more xml tags this time:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039; = Can be folder or filter, folder requires path to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Match&#039;&#039;&#039; = Specifies how many rules should match. In this case we are matching all rules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rule&#039;&#039;&#039; = Any rule created with the smart playlist editor. (See [[Smart Playlists]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limit&#039;&#039;&#039; = Limit the number of results returned (can be excluded altogether for unlimited)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:motordvds.jpg|500px|Custom node in action]]&lt;br /&gt;
&lt;br /&gt;
So there you have it, a simple path filter for our Motor DVDs.&lt;br /&gt;
&lt;br /&gt;
One thing that you may want to do now is edit your &amp;quot;Title&amp;quot; xml file to remove the motor dvds from the main movie library. Though if you are attempting to setup a main movie entrypoint for a path labeled &amp;quot;Movies&amp;quot; it may be best to simply hide the default Movies entry from the main menu and create a &amp;quot;Custom Movies&amp;quot; video node that points to your specific path. Still you can remove paths using the DoesNotContain operator:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;2&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;Movies&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultMovieTitle.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;path&amp;quot; operator=&amp;quot;doesnotcontain&amp;quot;&amp;gt;&amp;lt;value&amp;gt;/ExtremeSports/Cars/&amp;lt;/value&amp;gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are many other rules you can apply, a simple way to find them is to have a go with the smart playlist editor and copy the rule from the resulting xml playlist. There are many possibilities, you could create a rule for any of the database fields such as genre or year, use paths or combine rules together.&lt;br /&gt;
&lt;br /&gt;
[[File:customnodes.jpg|500px|Various custom video nodes]]&lt;br /&gt;
&lt;br /&gt;
== Manually creating or editing a custom parent node ==&lt;br /&gt;
You can also create a nested node structure as can be observed in the &amp;quot;unflattened&amp;quot; default structure from [[Custom video nodes#The default Node|above]] (under video).&lt;br /&gt;
Then you simply create a folder containing valid xml node files and also include a &amp;quot;index.xml&amp;quot; file that looks like this (which of course can be adapted to the type of media required):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;1&amp;quot; visible=&amp;quot;Library.HasContent(Movies)&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- a virtual folder --&amp;gt;&lt;br /&gt;
   &amp;lt;label&amp;gt;342&amp;lt;/label&amp;gt;&lt;br /&gt;
   &amp;lt;icon&amp;gt;DefaultMovies.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
[[File:PatK_Nodes.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Audio nodes]]&lt;br /&gt;
* [[Custom home items]]&lt;br /&gt;
* [[Smart playlists]]&lt;br /&gt;
* [[Video library tags]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>BobCratchett</name></author>
	</entry>
</feed>