• 1
  • 15
  • 16
  • 17(current)
  • 18
  • 19
  • 23
[HOW TO] Library Node Examples
(2020-12-24, 14:14)LongMan Wrote: @Offsprin,
You might might not be able to get around that with tv shows. I think Kodi automatically add new episodes to an existing tv show even if the path is different. That is to handle the case where say Season 1 is on HD 1 which fills before season 2 starts. This results in season 2 being placed on HD 2. In that case you would still only one tv show entry in the library. That decision was made long before current setups which also storage pools for continuous storage expansion.

Hopefully at some point a Source property is added to video similar to the one added to music, which also for such distinction.

Cannot offer a solution but hopefully the explanation helps.
Cheers,
LongMan
OK, that makes total sense. It sucks in its current iteration, but makes sense. I'll look into throwing a github feature request/bug in to see if that might be something that can get added in the future. I'm glad I wasn't doing anything wrong, either.
Reply
(2019-02-08, 13:19)ronie Wrote: yup that's the way it's supposed to work
Code:
ActivateWindow(videos,library://video/movies/titles.xml)

@ronie Thanks for this. The way you explained this earlier was great, and this simple example you gave was just thing I needed to know. This is information which should be added to the Video Nodes wiki page. Blush
I was having trouble with getting my custom "Genre" submenu to work because I didn't have the right syntax for the "change action" section to have it properly use my custom genre nodes I created.  Thanks to your example I now have it working perfectly.

The goal I've been going for is to create a custom home menu and associated submenus for all "adult" content, and then edit the existing default "Movies" home menu and associated submenues which removes all "adult" content. This way I can more easily keep the two different movie types completely separate (and block none-adult access accounts from browsing through the adult content) in the home menu and all related submenus while still keeping the same standard submenus like "Recently Added", "Unwatched", "in Progress", Genre", "Years", "Sets", etc.  I've also done the same thing with my Movie Trailers by separating them completely out into their own menu with submenues; yet the Movie Trailers can also be watched directly form the main movie by selecting the "trailer" option in the movie's information section.

If anyone wants the layout, along with the smart playlists and custom nodes I've created to get the menu layout in the Aeon Nox Silvo skin just the way I want, let me know, and I'll share it here.

Thanks again...finding out about nodes was the final missing piece I needed to complete my custom home menu layout. Plex could learn a lot form the Kodi Team regarding user customized UI layout. Cool
Reply
(2021-01-24, 11:20)OnyxCody Wrote:
(2019-02-08, 13:19)ronie Wrote: yup that's the way it's supposed to work
Code:
ActivateWindow(videos,library://video/movies/titles.xml)

@ronie Thanks for this. The way you explained this earlier was great, and this simple example you gave was just thing I needed to know. This is information which should be added to the Video Nodes wiki page. Blush
I was having trouble with getting my custom "Genre" submenu to work because I didn't have the right syntax for the "change action" section to have it properly use my custom genre nodes I created.  Thanks to your example I now have it working perfectly.

The goal I've been going for is to create a custom home menu and associated submenus for all "adult" content, and then edit the existing default "Movies" home menu and associated submenues which removes all "adult" content. This way I can more easily keep the two different movie types completely separate (and block none-adult access accounts from browsing through the adult content) in the home menu and all related submenus while still keeping the same standard submenus like "Recently Added", "Unwatched", "in Progress", Genre", "Years", "Sets", etc.  I've also done the same thing with my Movie Trailers by separating them completely out into their own menu with submenues; yet the Movie Trailers can also be watched directly form the main movie by selecting the "trailer" option in the movie's information section.

If anyone wants the layout, along with the smart playlists and custom nodes I've created to get the menu layout in the Aeon Nox Silvo skin just the way I want, let me know, and I'll share it here.

Thanks again...finding out about nodes was the final missing piece I needed to complete my custom home menu layout. Plex could learn a lot form the Kodi Team regarding user customized UI layout. Cool
I would love to see how you did it, though for use with Amber instead of Aeon Knox Silvio. I'm starting to think I need to use a combination of smart playlists and custom nodes like you're doing to achieve the results I want, so looking at what you've got would be a huge help.
Reply
(2021-01-24, 17:20)Offsprin Wrote: I would love to see how you did it, though for use with Amber instead of Aeon Knox Silvio. I'm starting to think I need to use a combination of smart playlists and custom nodes like you're doing to achieve the results I want, so looking at what you've got would be a huge help.

Here are the custom settings I made to get the results I stated earlier:
xml:

Music:

Change action:
ActivateWindow(Music,library://music/musicroles/allartists.xml,return)
{comment - This is a prebuilt Node for music that I've decided to use; however now that I've learned about creating custom Nodes, I'll eventually create a custom Node for the Music Home Menu}
Select background:
Live Background: Random albums
{comment - This is a prebuilt option to create a background image of the Album Covers where the Album Covers are radomized every time you view the Music Home Menu}


Trailers:

Change action:
ActivateWindow(Videos,special://profile/playlists/video/Movies Trailer.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom Home Menu layout for only Movie Trailers
Name of Smart Playlist file: Movies Trailer.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\playlists\video\Movies Trailer.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Movies: Trailer</name>
<match>all</match>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
</smartplaylist>
}
}
Manage submenu:
Recently Added:
Change action:
ActivateWindow(Videos,C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video/NewMovies Trailer.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom submenu layout to mimic recently added Movies, yet filtered to show only Movie Trailers
Name of Smart Playlist file: NewMovies Trailer.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\NewMovies Trailer.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>New Trailers</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
<limit>25</limit>
<order direction="descending">dateadded</order>
</smartplaylist>
}
}
Unwatched:
Change action:
ActivateWindow(Videos,C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video/UnwatchedMovies Trailer.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom submenu layout to mimic limited list of unwatched Movies, yet filtered to show only Movie Trailers
Name of Smart Playlist file: UnwatchedMovies Trailer.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\UnwatchedMovies Trailer.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Unwatched Trailers</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
<limit>25</limit>
<order direction="ascending">random</order>
</smartplaylist>
}
}
In Progress:
Change action:
ActivateWindow(Videos,C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video/InProgressMovies Trailer.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom submenu layout to mimic list of in progress Movies, yet filtered to show only Movie Trailers
Name of Smart Playlist file: InProgressMovies Trailer.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\InProgressMovies Trailer.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>In Progress Trailers</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<rule field="inprogress" operator="true" />
<order direction="descending">lastplayed</order>
</smartplaylist>
}
}
Sets:
Change action:
ActivateWindow(Videos,library://video/movies/setstrailer.xml)
{comment - This is a custom Node used to create a custom submenu layout to mimic the set node for Movies, yet filtered to show only Movie Trailers
Name of Node file: setstrailer.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\setstrailer.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="80" type="filter" visible="Library.HasContent(MovieSets)">
<label>Sets (Movies: Trailer)</label>
<icon>DefaultSets.png</icon>
<match>all</match>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<content>movies</content>
<group>sets</group>
</node>
}
}
Years:
Change action:
ActivateWindow(Videos,library://video/movies/yearstrailer.xml)
{comment - This is a custom Node used to create a custom submenu layout to mimic the years node for Movies, yet filtered to show only Movie Trailers
Name of Node file: yearstrailer.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\yearstrailer.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="40" type="filter">
<label>Years (Movies: Trailer)</label>
<icon>DefaultYear.png</icon>
<match>all</match>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<content>movies</content>
<group>years</group>
</node>
}
}
Genres:
Change action:
ActivateWindow(Videos,library://video/movies/genrestrailer.xml)
{comment - This is a custom Node used to create a custom submenu layout to mimic the genres node for Movies, yet filtered to show only Movie Trailers
Name of Node file: genrestrailer.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\genrestrailer.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="20" type="filter">
<label>Genres (Movies: Trailer)</label>
<icon>DefaultGenre.png</icon>
<match>all</match>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<content>movies</content>
<group>genres</group>
</node>
}
}
Select background:
Live Background: (Video Playlist) Movies: Trailer Random
{comment - This is a custom Smart Playlist used to create a custom background image of the Movie Posters, filtered to just posters for Movie Trailers, where the Movie Posters are radomized every time you view the custom Trailers Home Menu
Name of Smart Playlist file: Movies Trailer Random.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\playlists\video\Movies Trailer Random.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Movies: Trailer Random</name>
<match>all</match>
<rule field="plot" operator="contains">
<value>(Trailer)</value>
</rule>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<order direction="ascending">random</order>
</smartplaylist>
}
}
Select infoline:
Movie playlist statistics
{comment - This is a prebuilt option to base the infoline on the same custom Smart Playlist used to create a custom Home Menu layout for only Movie Trailers; Movies infoline filtered on only Movie Trailers}


Movies:

Change action:
ActivateWindow(Videos,special://profile/playlists/video/Movies Regular.xsp,return)
{comment - This is a custom Smart Playlist used to edit Home Menu layout for Movies, by filtering out Movie Trailers and Adult Movies
Name of Smart Playlist file: Movies Regular.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\playlists\video\Movies Regular.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Movies: Regular</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
</rule>
<rule field="mpaarating" operator="isnot">
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
</smartplaylist>
}
}
Manage submenu:
Recently Added:
Change action:
ActivateWindow(Videos,C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video/NewMovies Regular.xsp,return)
{comment - This is a custom Smart Playlist used to edit the submenu layout for recently added Movies, by filtering out Movie Trailers and Adult Movies
Name of Smart Playlist file: NewMovies Regular.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\NewMovies Regular.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>New Movies</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
<limit>25</limit>
<order direction="descending">dateadded</order>
</smartplaylist>
}
}
Unwatched:
Change action:
ActivateWindow(Videos,C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video/UnwatchedMovies Regular.xsp,return)
{comment - This is a custom Smart Playlist used to edit the submenu layout for unwatched Movies, by filtering out Movie Trailers and Adult Movies
Name of Smart Playlist file: UnwatchedMovies Regular.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\UnwatchedMovies Regular.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Unwatched Movies</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
<limit>25</limit>
<order direction="ascending">random</order>
</smartplaylist>
}
}
In Progress:
Change action:
ActivateWindow(Videos,C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video/InProgressMovies Regular.xsp,return)
{comment - This is a custom Smart Playlist used to edit the submenu layout for in progress Movies, by filtering out Movie Trailers and Adult Movies
Name of Smart Playlist file: InProgressMovies Regular.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\InProgressMovies Regular.xsp.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>In Progress Movies</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
<rule field="inprogress" operator="true" />
<order direction="descending">lastplayed</order>
</smartplaylist>
}
}
Sets:
Change action:
ActivateWindow(Videos,library://video/movies/setsregular.xml)
{comment - This is a custom Node used to edit the submenu layout for the Movies set node, by filtering out Movie Trailers and Adult Movies
Name of Node file: setsregular.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\setsregular.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="80" type="filter" visible="Library.HasContent(MovieSets)">
<label>Sets (Movies: Regular)</label>
<icon>DefaultSets.png</icon>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
<content>movies</content>
<group>sets</group>
</node>
}
}
Years:
Change action:
ActivateWindow(Videos,library://video/movies/yearsregular.xml)
{comment - This is a custom Node used to edit the submenu layout for the Movies years node, by filtering out Movie Trailers and Adult Movies
Name of Node file: yearsregular.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\yearsregular.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="40" type="filter">
<label>Years (Movies: Regular)</label>
<icon>DefaultYear.png</icon>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
<content>movies</content>
<group>years</group>
</node>
}
}
Genres:
Change action:
ActivateWindow(Videos,library://video/movies/genresregular.xml)
{comment - This is a custom Node used to edit the submenu layout for the Movies genre node, by filtering out Movie Trailers and Adult Movies
Name of Node file: genresregular.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\genresregular.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="20" type="filter">
<label>Genres (Movies: Regular)</label>
<icon>DefaultGenre.png</icon>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
<content>movies</content>
<group>genres</group>
</node>
}
}
Select background:
Live Background: (Video Playlist) Movies: Regular Random
{comment - This is a custom Smart Playlist used to create a custom background image of the Movie Posters, filtered to remove posters for Movie Trailers and Adult Movies, where the Movie Posters are radomized every time you view the Movies Home Menu
Name of Smart Playlist file: Movies Regular Random.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\playlists\video\Movies Regular Random.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Movies: Regular Random</name>
<match>all</match>
<rule field="mpaarating" operator="isnot">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="plot" operator="doesnotcontain">
<value>(Trailer)</value>
</rule>
<order direction="ascending">random</order>
</smartplaylist>
}
}
Select infoline:
Movie playlist statistics
{comment - This is a prebuilt option to base the infoline on the same custom Smart Playlist used to edit the Home Menu layout; Movies infoline filtered to remove Movie Trailers and Adult Movies}


TV Shows:

Select background:
Live Background: (Skin Playlist) Random TV Shows
{comment - This is a prebuilt option to create a background image of the TV Show Covers where the TV Show Covers are radomized every time you view the TV Shows Home Menu}


Adult:

Change action:
ActivateWindow(Videos,special://profile/playlists/video/Movies Adult.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom Home Menu layout for only Adult Movies
Name of Smart Playlist file: Movies Adult.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\playlists\video\Movies Adult.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Movies: Adult</name>
<match>one</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
</rule>
<rule field="mpaarating" operator="is">
<value>NC-17</value>
</rule>
</smartplaylist>
}
}
Manage submenu:
Recently Added:
Change action:
ActivateWindow(Videos,C:\Users\OnyxMaxxHead\AppData\Roaming\Kodi.Custom\userdata\playlists\video/NewMovies Adult.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom submenu layout to mimic recently added Movies, yet filtered to show only Adult Movies
Name of Smart Playlist file: NewMovies Adult.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\NewMovies Adult.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>New Adult</name>
<match>all</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
<limit>25</limit>
<order direction="descending">dateadded</order>
</smartplaylist>
}
}
Unwatched:
Change action:
ActivateWindow(Videos,C:\Users\OnyxMaxxHead\AppData\Roaming\Kodi.Custom\userdata\playlists\video/UnwatchedMovies Adult.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom submenu layout to mimic limited list of unwatched Movies, yet filtered to show only Adult Movies
Name of Smart Playlist file: UnwatchedMovies Adult.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\UnwatchedMovies Adult.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Unwatched Adult</name>
<match>all</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="playcount" operator="is">
<value>0</value>
</rule>
<limit>25</limit>
<order direction="ascending">random</order>
</smartplaylist>
}
}
In Progress:
Change action:
ActivateWindow(Videos,C:\Users\OnyxMaxxHead\AppData\Roaming\Kodi.Custom\userdata\playlists\video/InProgressMovies Adult.xsp,return)
{comment - This is a custom Smart Playlist used to create a custom submenu layout to mimic list of in progress Movies, yet filtered to show only Adult Movies
Name of Smart Playlist file: InProgressMovies Adult.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi.Custom\userdata\playlists\video\InProgressMovies Adult.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>In Progress Adult</name>
<match>all</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
<value>NC-17</value>
</rule>
<rule field="inprogress" operator="true" />
<order direction="descending">lastplayed</order>
</smartplaylist>
}
}
Sets:
Change action:
ActivateWindow(Videos,library://video/movies/setsadult.xml)
{comment - This is a custom Node used to create a custom submenu layout to mimic the set node for Movies, yet filtered to show only Adult Movies
Name of Node file: setsadult.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\setsadult.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="80" type="filter" visible="Library.HasContent(MovieSets)">
<label>Sets (Movies: Adult)</label>
<icon>DefaultSets.png</icon>
<match>all</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
<value>NC-17</value>
</rule>
<content>movies</content>
<group>sets</group>
</node>
}
}
Years:
Change action:
ActivateWindow(Videos,library://video/movies/yearsadult.xml)
{comment - This is a custom Node used to create a custom submenu layout to mimic the years node for Movies, yet filtered to show only Adult Movies
Name of Node file: yearsadult.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\yearsadult.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="40" type="filter">
<label>Years (Movies: Adult)</label>
<icon>DefaultYear.png</icon>
<match>all</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
<value>NC-17</value>
</rule>
<content>movies</content>
<group>years</group>
</node>
}
}
Genres:
Change action:
ActivateWindow(Videos,library://video/movies/genresadult.xml)
{comment - This is a custom Node used to create a custom submenu layout to mimic the genres node for Movies, yet filtered to show only Adult Movies
Name of Node file: genresadult.xml
Path of Node file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\library\video\movies\genresadult.xml
Syntax of Node file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="20" type="filter">
<label>Genres (Movies: Adult)</label>
<icon>DefaultGenre.png</icon>
<match>all</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
<value>NC-17</value>
</rule>
<content>movies</content>
<group>genres</group>
</node>
}
}
Select background:
Live Background: (Video Playlist) Movies: Adult Random
{comment - This is a custom Smart Playlist used to create a custom background image of the Movie Posters, filtered to just posters for Adult Movies, where the Movie Posters are radomized every time you view the custom Adult Home Menu
Name of Smart Playlist file: Movies Adult Random.xsp
Path of Smart Playlist file: C:\Users\<Windows User Name>\AppData\Roaming\Kodi\userdata\playlists\video\Movies Adult Random.xsp
Syntax of Smart Playlist file:
{
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<smartplaylist type="movies">
<name>Movies: Adult Random</name>
<match>one</match>
<rule field="mpaarating" operator="is">
<value>XXX</value>
</rule>
<rule field="mpaarating" operator="is">
<value>NC-17</value>
</rule>
<order direction="ascending">random</order>
</smartplaylist>
}
}
Select infoline:
Movie playlist statistics
{comment - This is a prebuilt option to base the infoline on the same custom Smart Playlist used to create a custom Home Menu layout for only Adult Movies; Movies infoline filtered on only Adult Movies}
Example
Image
Reply
Hi.
Is there a way to change the background image of a parent node?
I have several parent nodes and I want to have different background images for each one.
Thanks
Reply
hello, ive used library nodes for a few years now, works fine. But now I wish to move them into the skin I use (estuary with just home menus added)

    <! -- <param name="content_path" value="library://video/movies/"/> -->
    <param name="content_path" value="special://skin/extras/library/video/movies/"/>

but this doesnt seem to work, 
Kodi shows actors.xml instead of artwork for example.

edit: or is this hardcoded in kodi?

https://github.com/xbmc/xbmc/blob/a80d12...o.cpp#L370
Reply
(2021-04-15, 14:20)marantz Wrote: hello, ive used library nodes for a few years now, works fine. But now I wish to move them into the skin I use (estuary with just home menus added)

    <! -- <param name="content_path" value="library://video/movies/"/> -->
    <param name="content_path" value="special://skin/extras/library/video/movies/"/>

but this doesnt seem to work, 
Kodi shows actors.xml instead of artwork for example.

edit: or is this hardcoded in kodi?

https://github.com/xbmc/xbmc/blob/a80d12...o.cpp#L370

You'll have to be more explict in what you're trying to achieve.

A path such as library://video/movies/ is used for displaying the nodes contained under that path and I don't believe that will work in a special://skin/ style path.

If however you are wanting the list of Movies then you probably needs to use special://skin/extras/library/video/movies/titles.xml
Reply
(2021-04-16, 13:41)jjd-uk Wrote:
(2021-04-15, 14:20)marantz Wrote: hello, ive used library nodes for a few years now, works fine. But now I wish to move them into the skin I use (estuary with just home menus added)

    <! -- <param name="content_path" value="library://video/movies/"/> -->
    <param name="content_path" value="special://skin/extras/library/video/movies/"/>

but this doesnt seem to work, 
Kodi shows actors.xml instead of artwork for example.

edit: or is this hardcoded in kodi?

https://github.com/xbmc/xbmc/blob/a80d12...o.cpp#L370

You'll have to be more explict in what you're trying to achieve.

A path such as library://video/movies/ is used for displaying the nodes contained under that path and I don't believe that will work in a special://skin/ style path.

If however you are wanting the list of Movies then you probably needs to use special://skin/extras/library/video/movies/titles.xml
My recently added movies etc works with special://skin, but whats missing is the top menu, actors etc. ill upload image since my english suck.

https://dumpinen.com/LQCOeBgZ1nT

if I use default library:// style, they work fine.
Reply
(2021-04-16, 13:56)marantz Wrote: My recently added movies etc works with special://skin, but whats missing is the top menu, actors etc. ill upload image since my english suck.

https://dumpinen.com/LQCOeBgZ1nT

if I use default library:// style, they work fine.

Those categories need to be in library:// style to be filled.

The special://skin paths can only be used when pointing to a file, so in the case of nodes the xml file and in the case of playlists the xsp file.
Reply
(2021-04-16, 15:53)jjd-uk Wrote:
(2021-04-16, 13:56)marantz Wrote: My recently added movies etc works with special://skin, but whats missing is the top menu, actors etc. ill upload image since my english suck.

https://dumpinen.com/LQCOeBgZ1nT

if I use default library:// style, they work fine.

Those categories need to be in library:// style to be filled.

The special://skin paths can only be used when pointing to a file, so in the case of nodes the xml file and in the case of playlists the xsp file.
ok, thanks. so if I want to include those in a skin I need to copy them to library:// via first run python script or simular?
Reply
hi guys, so ive tried to make nodes, which i can do simple ones through the node editor, but im trying to make a node that contains both movies and tv shows with the genre being Anime. i keep getting stumped on how to make it happen. any help ?
i love kodi
Reply
(2021-01-24, 17:20)Offsprin Wrote:
(2021-01-24, 11:20)OnyxCody Wrote:
(2019-02-08, 13:19)ronie Wrote: yup that's the way it's supposed to work
Code:
ActivateWindow(videos,library://video/movies/titles.xml)

@ronie Thanks for this. The way you explained this earlier was great, and this simple example you gave was just thing I needed to know. This is information which should be added to the Video Nodes wiki page. Blush
I was having trouble with getting my custom "Genre" submenu to work because I didn't have the right syntax for the "change action" section to have it properly use my custom genre nodes I created.  Thanks to your example I now have it working perfectly.

The goal I've been going for is to create a custom home menu and associated submenus for all "adult" content, and then edit the existing default "Movies" home menu and associated submenues which removes all "adult" content. This way I can more easily keep the two different movie types completely separate (and block none-adult access accounts from browsing through the adult content) in the home menu and all related submenus while still keeping the same standard submenus like "Recently Added", "Unwatched", "in Progress", Genre", "Years", "Sets", etc.  I've also done the same thing with my Movie Trailers by separating them completely out into their own menu with submenues; yet the Movie Trailers can also be watched directly form the main movie by selecting the "trailer" option in the movie's information section.

If anyone wants the layout, along with the smart playlists and custom nodes I've created to get the menu layout in the Aeon Nox Silvo skin just the way I want, let me know, and I'll share it here.

Thanks again...finding out about nodes was the final missing piece I needed to complete my custom home menu layout. Plex could learn a lot form the Kodi Team regarding user customized UI layout. Cool
I would love to see how you did it, though for use with Amber instead of Aeon Knox Silvio. I'm starting to think I need to use a combination of smart playlists and custom nodes like you're doing to achieve the results I want, so looking at what you've got would be a huge help.
Thanks this is super helpful, but I have a follow-up question that I don't know if I asked previously. I've got my 4K and SD/HD libraries split in terms of folders, and I can get the movies to separate properly outside of the "Recently Added", but I can't for the life of me figure out how to split the TV shows apart so that the both have the metadata AND they are separate. Were you able to do something similar?
Reply
@OnyxCody that last reply was to you, but I goofed it.
Reply
I have set up my nodes for a to z and 0-9 but want to add a node for other movies that don't start with either a number or English letter. For example aeon flux starts with a symbol. I thought it would be as easy as 'does not start with' a,b,c etc etc . but this option isn't available only 'starts with' . I think I could make a playlist but a node would be better. Any ideas ?Image
Check out my Fanart.tv stuff!
...........I also accept disc requests if image not on fanart.tv database !!!!
Reply
@leepenny yeh there is no "does not start with option" on nodes sadly. I had the same issue years ago when I tried to PR this A-Z node feature into main Kodi.

A few devs at the time looked at it but nothing came of it sadly, from memory it was @Montellese who confirmed it.
Reply
  • 1
  • 15
  • 16
  • 17(current)
  • 18
  • 19
  • 23

Logout Mark Read Team Forum Stats Members Help
[HOW TO] Library Node Examples5