Kodi Community Forum

Full Version: plugin.video.themoviedb.helper - Access to TheMovieDb API for Skinners
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(2023-06-23, 17:11)ksc1 Wrote: [ -> ]Hi @jurialmunkey
I got here from some advice of @Hitcher.
Quote:You're probably better of using an addon to do this like plugin.video.themoviedb.helper.
https://forum.kodi.tv/showthread.php?tid...pid3154503,  on this link i expose what i do for have some custom videodialoginfo window. Is This way is correct?, i ask for better understanding of how kodi work. And if i use ur addon i can do exactly the same?. Thanks

If you're looking for something to manage multiple videoinfo dialogs and have a history to backtrack then TMDbHelper can do that quite simply

See here for setup:
https://github.com/jurialmunkey/plugin.v...ended-Info

The custom window acts as a background with a container where TMDbHelper will load the next item. When you click an item using the add_path= command, TMDbHelper closes the current info dialog; opens the custom window; adds the path to the background container; and then presses Action(Info) to open the new item.

Each item you open is added to the history. When you press back to close the info dialog, the window manager will step back one in the history and open the previous path using the same method. You can keep backtracking until you reach the end of the history or double press back, at which point it simply closes the custom window and the script ends.

The wiki mentions that the add_path= action is only for TMDbHelper items and the add_query= path can be used for library items to look them up online. However, you can leverage the add_path= command to open the local item. All you need to do is pass it an xsp path that will return a single item like you were doing in the previous thread.
(2023-06-23, 17:56)Hitcher Wrote: [ -> ]@jurialmonkey Does ListItem.Property(Known_For) work for you because I never get any results?

Thanks.

It's a weird one. The TMDb API only returns it for lists of people (e.g. via search or popular) but doesn't include it in the detailed lookup for individual people or in the credits list. It's not particularly great anyway. It's just the person's three highest rated movies on TMDb.

For individual person info, you can use more specific properties for Movie/TVShow Cast/Crew. I pre-sort these by popularity score, which I think is a better metric than rating -- e.g. Movie.Cast.1.Title will give you the person's most popular movie.

ListItem.Property(Movie.Cast.X.Title)
ListItem.Property(Movie.Crew.X.Title)
ListItem.Property(TVShow.Cast.X.Title)
ListItem.Property(TVShow.Crew.X.Title)
@jurialmunkey
Thanks for answer, and clarifications. I ll integrate ur add-on. Like said before new on kodi skinning but learning.
Thanks again
@jurialmunkey
Thanks for clarifications I'll start to integrate ur add-on. Like said before I'm new on kodi skinning but learning with wiki by my side, reading urs code skins and of course yours helps. Thanks a lot.
(2023-06-24, 04:19)jurialmunkey Wrote: [ -> ]
(2023-06-23, 17:56)Hitcher Wrote: [ -> ]@jurialmonkey Does ListItem.Property(Known_For) work for you because I never get any results?

Thanks.

It's a weird one. The TMDb API only returns it for lists of people (e.g. via search or popular) but doesn't include it in the detailed lookup for individual people or in the credits list. It's not particularly great anyway. It's just the person's three highest rated movies on TMDb.

For individual person info, you can use more specific properties for Movie/TVShow Cast/Crew. I pre-sort these by popularity score, which I think is a better metric than rating -- e.g. Movie.Cast.1.Title will give you the person's most popular movie.

ListItem.Property(Movie.Cast.X.Title)
ListItem.Property(Movie.Crew.X.Title)
ListItem.Property(TVShow.Cast.X.Title)
ListItem.Property(TVShow.Crew.X.Title)

Thanks, they'll work just fine. I should have looked a bit harder at the wiki.
@jurialmunkey small request if I may. Any chance of adding a slideshow when clicking on an image like script.embuary.info had please?

Here's the code sualfred used when he added it -

https://github.com/sualfred/script.embua...4f2164ee0c

Cheers.
(2023-06-24, 18:17)Hitcher Wrote: [ -> ]@jurialmunkey small request if I may. Any chance of adding a slideshow when clicking on an image like script.embuary.info had please?

Here's the code sualfred used when he added it -

https://github.com/sualfred/script.embua...4f2164ee0c

Cheers.

Any reason why you can't just open the slideshow for the path using the builtin function? I like to avoid hardcoding actions if possible because I find it limits options.

e.g. Any reason you can't do this?
xml:

<onclick>SlideShow(plugin://plugin.video.themoviedb.helper/?tmdb_id=$INFO[ListItem.Property(tmdb_id)]&amp;tmdb_type=movie&amp;info=fanart,beginslide=$INFO[Container(ID).ListItem.PicturePath])</onclick>

That's for fanart obviously but info=posters and info=images should work too. Not sure exactly how your container is setup but basic syntax is
SlideShow(Container.FolderPath,beginslide=ListItem.PicturePath)
Didn't even think of using that.

I had to set the query using a property because it wouldn't work using $INFO[ListItem.Title] in the list itself.

xml:
<onfocus>SetProperty(SlideshowActor,$INFO[ListItem.Title],home)</onfocus>
xml:
<onclick>SlideShow(plugin://plugin.video.themoviedb.helper?info=images&amp;type=person&amp;query=$INFO[Window(home).Property(SlideshowActor)],beginslide=$INFO[Container(500).ListItem.PicturePath])</onclick>

Only problem with that method is you can't override the pan and zoom effects whereas you can override the random one.

EDIT: Found an easier way to achieve the same results.
Finished updating my video info dialogs to use your helper instead of embuary but I've now hit a roadblock trying to do the same for the video player dialog.

I'm using this in DialogFullscreenInfo to fill the cast of the currently playing movie -

<content>plugin://plugin.video.themoviedb.helper/?info=cast&amp;type=movie&amp;tmdb_id=$INFO[Window(Home).Property(TMDbHelper.Player.TMDb_id)]</content>

But when I try using this to query the currently selected actor from the list I see the busy dialog briefly and then nothing -

<onclick>RunScript(plugin.video.themoviedb.helper,add_query=$INFO[Container(1000).ListItem.Label],type=person,call_auto=1113)</onclick>

I don't suppose you can see what I'm doing wrong can you?

Thanks.
(2023-06-25, 21:20)Hitcher Wrote: [ -> ]Finished updating my video info dialogs to use your helper instead of embuary but I've now hit a roadblock trying to do the same for the video player dialog.

I'm using this in DialogFullscreenInfo to fill the cast of the currently playing movie -

<content>plugin://plugin.video.themoviedb.helper/?info=cast&type=movie&tmdb_id=$INFO[Window(Home).Property(TMDbHelper.Player.TMDb_id)]</content>

But when I try using this to query the currently selected actor from the list I see the busy dialog briefly and then nothing -

<onclick>RunScript(plugin.video.themoviedb.helper,add_query=$INFO[Container(1000).ListItem.Label],type=person,call_auto=1113)</onclick>

I don't suppose you can see what I'm doing wrong can you?

Thanks.

There are 2 ways get a slideshow natively.

a) fake slide show
use a custom onclick for the current containner ,which are the artwork items, without open a new window
xml:
<control type="whatever">
...
   <onclick>SetFocus(8902)</onclick>
   <content>$VAR[extraThumbsLocation]</content>
...
</control>

which set focus to another custom container, and get fullscreen art, by still scrolling the container
...
xml:

        <include content="VideoInfo_SlideshowNav">
            <param name="ButtonID" value="8902" />
            <param name="ContainerID" value="8607" />
        </include>
...

      <include name="VideoInfo_SlideshowNav">
        <param name="origin" default="FileNameAndPath" />
        <definition>
        <control type="group">
            <visible>Control.HasFocus($PARAM[ButtonID])</visible>
            <animation effect="fade" start="0" end="100" time="350" tween="cubic" easing="inout">Visible</animation>
            <animation effect="fade" start="0" end="100" time="350" tween="cubic" easing="inout">WindowOpen</animation>
            <animation effect="fade" end="0" start="100" time="150">Hidden</animation>
            <animation effect="fade" end="0" start="100" time="150">WindowClose</animation>
            <control type="button" id="$PARAM[ButtonID]">
                <visible allowhiddenfocus="true">false</visible>
                <width>1</width>
                <height>1</height>
                <texturefocus />
                <texturenofocus />
                <onleft>Control.Move($PARAM[ContainerID],-1)</onleft>
                <onright>Control.Move($PARAM[ContainerID],1)</onright>
                <onup>Control.Move($PARAM[ContainerID],1)</onup>
                <ondown>Control.Move($PARAM[ContainerID],-1)</ondown>
                <onback>$PARAM[ContainerID]</onback>
                <oninfo>$PARAM[ContainerID]</oninfo>
                <onclick>SetFocus($PARAM[ContainerID])</onclick>
            </control>
            <control type="image">
                <texture colordiffuse="ff181818">colors/white50.png</texture>
            </control>
            <control type="group">
                <animation effect="slide" start="0" end="-1920" condition="!Container($PARAM[ContainerID]).OnNext" reversible="false" time="350" tween="quadratic">Conditional</animation>
                <animation effect="slide" start="0" end="1920" condition="!Container($PARAM[ContainerID]).OnPrevious" reversible="false" time="350" tween="quadratic">Conditional</animation>
                <control type="image">
                    <centerleft>50%</centerleft>
                    <centertop>50%</centertop>
                    <width>1920</width>
                    <height>1080</height>
                    <left>-1920</left>
                    <aspectratio>keep</aspectratio>
                    <texture background="true">$INFO[Container($PARAM[ContainerID]).ListItem(-1).$PARAM[origin]]</texture>
                </control>
                <control type="image">
                    <centerleft>50%</centerleft>
                    <centertop>50%</centertop>
                    <width>1920</width>
                    <height>1080</height>
                    <aspectratio>keep</aspectratio>
                    <texture background="true">$INFO[Container($PARAM[ContainerID]).ListItem.$PARAM[origin]]</texture>
                </control>
                <control type="image">
                    <centerleft>50%</centerleft>
                    <centertop>50%</centertop>
                    <width>1920</width>
                    <height>1080</height>
                    <left>1920</left>
                    <aspectratio>keep</aspectratio>
                    <texture background="true">$INFO[Container($PARAM[ContainerID]).ListItem(1).$PARAM[origin]]</texture>
                </control>
            </control>
        </control>
        </definition>
    </include>

b) custom slideshow window, better but more to do n care about

- some action to open a custom dialog (in that case ,for an item in a media window)
- define static item container ( preferable auto scrolling ) holdin the artwork and a to scroll manually
xml:

            <control type="radiobutton" id="8005">
              
                <visible>!Container.Content() + !string.isempty(listitem.dbtype) + [Window.IsActive(music) | Window.IsActive(videos)]</visible>
               ...
                <onclick>SetFocus(50)</onclick>
                <onclick>activatewindow(1121)</onclick>
            </control>

the custom artworkslideshow dialog (git hub link), using a static container with an layout of "fullcreen" (16:9) ratio  (
xml:
<window type="dialog" id="1121">
    <defaultcontrol always="true">7000</defaultcontrol>
    <menucontrol>7060</menucontrol>
    <onload>SetFocus(7000,0,absolute)</onload>
    <!-- <onload>SetFocus(7000,$INFO[window(home).property(slideoshow_currentitemnum)],absolute)</onload> -->
    <include>Animation_OpenClose_FadeZoom</include>
    <onunload condition="!String.IsEmpty(window(home).property(slideoshow_currentitemnum))">ClearProperty(slideoshow_currentitemnum)</onunload>
    <controls>
    
        <include content="ArtworkSlideshow">
            <param name="id" value="7000"/>
            <param name="pagecontrol_id" value="7060"/>
            <include condition="Container.Content(songs) | String.IsEqual(listitem.dbtype,song)" content="ExtrafanartSource">
                <param name="prefix" value="album." />
            </include>
            <include condition="true" content="ExtrafanartSource" />
            <include condition="[Container.Content(seasons) | String.IsEqual(listitem.dbtype,season) | Container.Content(episodes) | String.IsEqual(listitem.dbtype,episode)]" content="ExtrafanartSource">
                <param name="prefix" value="tvshow." />
            </include>
            <include condition="[Container.Content(albums) | String.IsEqual(listitem.dbtype,album) | Container.Content(songs) | String.IsEqual(listitem.dbtype,song)]" content="ExtrafanartSource">
                <param name="prefix" value="artist." />
                <param name="get_thumb" value="false" />
            </include>
        </include>
        <include condition="Skin.HasSetting(SwanDebug)" content="swan_debug_overlay">
            <param name="nested_debuginfo" value="
slideoshow_currentitemnum $INFO[window(home).property(slideoshow_currentitemnum)]
container(id).currentitem  $INFO[container(7000).currentitem]
"/>
</include>
    </controls>
</window>


includes ( git hub link )
xml:

<includes>
    <include name="ArtworkSlideshow">
        <param name="id" default="1"/>
        <param name="pagecontrol_id" default="2"/>
        <param name="artwork" default="$INFO[ListItem.Icon]"/>
        
        <definition>
        <control type="image">
            <texture colordiffuse="ff181818">colors/white70.png</texture>
        </control>
        <control type="list" id="$PARAM[id]">
            <width>1920</width>
            <height>1080</height>
            <orientation>horizontal</orientation>
            <pagecontrol>$PARAM[pagecontrol_id]</pagecontrol>
            <scrolltime tween="quadtratic" easing="inout">400</scrolltime>
            <autoscroll time="5000">system.idletime(6)</autoscroll>
            <itemlayout width="1920" height="1080">
                <control type="image">
                    <width>1920</width>
                    <height>1080</height>
                    <aspectratio aligny="center" align="center">keep</aspectratio>
                    <texture>$PARAM[artwork]</texture>
                </control>
            </itemlayout>
            <focusedlayout width="1920" height="1080">
                <control type="image">
                    <width>1920</width>
                    <height>1080</height>
                    <aspectratio aligny="center" align="center">keep</aspectratio>
                    <texture>$PARAM[artwork]</texture>
                </control>
            </focusedlayout>
            <nested />
        </control>
        <control type="scrollbar" id="$PARAM[pagecontrol_id]">
            <bottom>0</bottom>
            <width>1920</width>
            <centerleft>50%</centerleft>
            <height>5</height>
            <onleft>$PARAM[pagecontrol_id]</onleft>
            <onright>$PARAM[pagecontrol_id]</onright>
            <orientation>horizontal</orientation>
            <texturesliderbackground colordiffuse="$VAR[color_global_scrollbar_panel]">colors/white.png</texturesliderbackground>
            <texturesliderbar colordiffuse="$VAR[color_global_scrollbar_slider_fo]">colors/white.png</texturesliderbar>
            <textureslidernib />
        </control>
        </definition>
    </include>
    
    <include name="ExtrafanartFolderPath">
        <content>$VAR[extraFanartLocation]</content>
    </include>
    <variable name="extraFanartLocation">
        <value condition="[container.content(movies) | String.IsEqual(ListItem.DBTYPE,movie)]">$INFO[listitem.path,,extrafanart]</value>
        <value condition="[container.content(tvshows) | String.IsEqual(ListItem.DBTYPE,tvshow)]">$INFO[listitem.filenameandpath,,extrafanart]</value>
        <value condition="[container.content(seasons) | String.IsEqual(ListItem.DBTYPE,season)]">$INFO[container.listitem.path,,extrafanart]</value>
    </variable>
    <variable name="extraThumbsLocation">
        <value condition="[container.content(movies) | String.IsEqual(ListItem.DBTYPE,movie)]">$INFO[listitem.path,,extrathumbs]</value>
        <value condition="[container.content(tvshows) | String.IsEqual(ListItem.DBTYPE,tvshow)]">$INFO[listitem.filenameandpath,,extrathumbs]</value>
        <value condition="[container.content(seasons) | String.IsEqual(ListItem.DBTYPE,season)]">$INFO[container.listitem.path,,extrathumbs]</value>
    </variable>
    
    <include name="ExtrafanartSource">
        <param name="prefix" />
        <param name="get_thumb" default="true" />
        <definition>
        <content>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="clearlogo" />
            </include>
            <include condition="$PARAM[get_thumb]" content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="thumb" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="back" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="spine" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="1" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="booklet" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="2" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="booklet" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="3" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="booklet" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="4" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="booklet" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="5" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="booklet" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="animatedfanart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="animatedposter" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="poster" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="1" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="poster" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="2" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="poster" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="3" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="poster" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="4" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="poster" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="5" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="poster" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="keyart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="1" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="keyart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="2" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="keyart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="3" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="keyart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="4" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="keyart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="5" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="keyart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="discart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="1" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="2" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="3" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="4" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="5" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="6" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="7" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="8" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="9" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="10" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="11" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="12" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="13" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="14" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="15" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="16" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="17" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="18" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="19" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="20" />
                <param name="parentfolder" value="$PARAM[prefix]" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="banner" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="clearart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="1" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="clearart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="2" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="clearart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="3" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="clearart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="4" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="clearart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="5" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="clearart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="1" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="characterart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="2" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="characterart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="3" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="characterart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="4" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="characterart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="5" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="characterart" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="1" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="2" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="3" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="4" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="5" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="6" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="7" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="8" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="9" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="10" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="11" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="12" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="13" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="14" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="15" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="16" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="17" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="18" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="19" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
            <include content="ItemArtTemplate">
                <param name="postfix" value="20" />
                <param name="parentfolder" value="$PARAM[prefix]" />
                <param name="type" value="landscape" />
            </include>
        </content>
        </definition>
    </include>
    
    <include name="ItemArtTemplate">
        <param name="type" default="fanart" />
        <definition>
        <item>
            <label />
            <label2 />
            <visible>!String.IsEmpty(ListItem.Art($PARAM[parentfolder]$PARAM[type]$PARAM[postfix]))</visible>
            <icon>$INFO[ListItem.Art($PARAM[parentfolder]$PARAM[type]$PARAM[postfix])]</icon>
            <thumb>$INFO[ListItem.Art($PARAM[parentfolder]$PARAM[type]$PARAM[postfix])]</thumb>
        </item>
        </definition>
    </include>
    
    <!-- consider 95% 1824 x 1026 -->
    <!--  1891 x 1064 -->
                
    <include name="VideoInfo_SlideshowNav">
        <param name="origin" default="FileNameAndPath" />
        <definition>
        <control type="group">
            <visible>Control.HasFocus($PARAM[ButtonID])</visible>
            <animation effect="fade" start="0" end="100" time="350" tween="cubic" easing="inout">Visible</animation>
            <animation effect="fade" start="0" end="100" time="350" tween="cubic" easing="inout">WindowOpen</animation>
            <animation effect="fade" end="0" start="100" time="150">Hidden</animation>
            <animation effect="fade" end="0" start="100" time="150">WindowClose</animation>
            <control type="button" id="$PARAM[ButtonID]">
                <visible allowhiddenfocus="true">false</visible>
                <width>1</width>
                <height>1</height>
                <texturefocus />
                <texturenofocus />
                <onleft>Control.Move($PARAM[ContainerID],-1)</onleft>
                <onright>Control.Move($PARAM[ContainerID],1)</onright>
                <onup>Control.Move($PARAM[ContainerID],1)</onup>
                <ondown>Control.Move($PARAM[ContainerID],-1)</ondown>
                <onback>$PARAM[ContainerID]</onback>
                <oninfo>$PARAM[ContainerID]</oninfo>
                <onclick>SetFocus($PARAM[ContainerID])</onclick>
            </control>
            <control type="image">
                <texture colordiffuse="ff181818">colors/white50.png</texture>
            </control>
            <control type="group">
                <animation effect="slide" start="0" end="-1920" condition="!Container($PARAM[ContainerID]).OnNext" reversible="false" time="350" tween="quadratic">Conditional</animation>
                <animation effect="slide" start="0" end="1920" condition="!Container($PARAM[ContainerID]).OnPrevious" reversible="false" time="350" tween="quadratic">Conditional</animation>
                <control type="image">
                    <centerleft>50%</centerleft>
                    <centertop>50%</centertop>
                    <width>1920</width>
                    <height>1080</height>
                    <left>-1920</left>
                    <aspectratio>keep</aspectratio>
                    <texture background="true">$INFO[Container($PARAM[ContainerID]).ListItem(-1).$PARAM[origin]]</texture>
                </control>
                <control type="image">
                    <centerleft>50%</centerleft>
                    <centertop>50%</centertop>
                    <width>1920</width>
                    <height>1080</height>
                    <aspectratio>keep</aspectratio>
                    <texture background="true">$INFO[Container($PARAM[ContainerID]).ListItem.$PARAM[origin]]</texture>
                </control>
                <control type="image">
                    <centerleft>50%</centerleft>
                    <centertop>50%</centertop>
                    <width>1920</width>
                    <height>1080</height>
                    <left>1920</left>
                    <aspectratio>keep</aspectratio>
                    <texture background="true">$INFO[Container($PARAM[ContainerID]).ListItem(1).$PARAM[origin]]</texture>
                </control>
            </control>
        </control>
        </definition>
    </include>
Thanks for the detailed reply mardukL but I did edit my other post to say I'd achieved it another way.

I'll post it here in case it's useful to anyone else.

Add this to the actors list -

xml:
<onclick>SetFocus(99)</onclick>

Which focuses this hidden button which controls the list (the conditions stop it wrapping) -

xml:
<control id="99" type="button">
<onup>noop</onup>
<ondown>noop</ondown>
<onleft condition="!String.IsEmpty(Container(500).ListItemNoWrap(-1).Label)">Control.Move(500,-1)</onleft>
<onright condition="!String.IsEmpty(Container(500).ListItemNoWrap(1).Label)">Control.Move(500,1)</onright>
<onback>500</onback>
<include>HiddenControl</include>
</control>

And the 'slideshow' itself is added at the bottom of window -

xml:
<control type="group">
<visible>Control.HasFocus(99)</visible>
<control type="image">
<include>FullscreenDimensions</include>
<texture>special://skin/extras/backgrounds/default.png</texture>
</control>
<control type="image">
<width>1920</width>
<height>1080</height>
<aspectratio>keep</aspectratio>
<texture>$INFO[Container(500).ListItem.Icon]</texture>
<fadetime>200</fadetime>
</control>
</control>
(2023-06-25, 21:20)Hitcher Wrote: [ -> ]Finished updating my video info dialogs to use your helper instead of embuary but I've now hit a roadblock trying to do the same for the video player dialog.

I'm using this in DialogFullscreenInfo to fill the cast of the currently playing movie -

<content>plugin://plugin.video.themoviedb.helper/?info=cast&amp;type=movie&amp;tmdb_id=$INFO[Window(Home).Property(TMDbHelper.Player.TMDb_id)]</content>

But when I try using this to query the currently selected actor from the list I see the busy dialog briefly and then nothing -

<onclick>RunScript(plugin.video.themoviedb.helper,add_query=$INFO[Container(1000).ListItem.Label],type=person,call_auto=1113)</onclick>

I don't suppose you can see what I'm doing wrong can you?

Thanks.

Just to add to this, using the same content but switching back to this for the onclick works with embuary -

<onclick>RunScript(script.embuary.info,call=person,query='"$INFO[ListItem.Label]"')</onclick>

so I can only assume there's something wrong with my onclick but this method works in the normal video info dialog.

Confused

EDIT: OK just found out that it gets so far because the select dialog gets opened if there are multiple actors of the same or similar name. What I don't see open though is the custom window ID=1113.
@Hitcher - It should work how you have it (should use ESCINFO though just in case of a comma or apostrophe in the name).

Maybe try force close fullscreeninfo and videoosd windows using Dialog.Close() first - I suspect they might be blocking the custom window from opening.

e.g.
xml:

<onclick>Dialog.Close(fullscreeninfo,force)</onclick>
<onclick>Dialog.Close(videoosd,force)</onclick>
<onclick>RunScript(plugin.video.themoviedb.helper,add_path=$INFO[Container(1000).ListItem.FolderPath],call_auto=1113)</onclick>

Also since you are using a TMDbHelper list for the cast, you should use add_path to add the item directly. That will make sure you get a perfect match rather than doing a query (it's also faster to do add_path because it skips calling the search endpoint).
(2023-06-26, 11:35)jurialmunkey Wrote: [ -> ]@Hitcher - It should work how you have it. Maybe try force close fullscreeninfo and videoosd windows using Dialog.Close() first - they might be blocking the custom window from opening.

e.g.
xml:

<onclick>Dialog.Close(fullscreeninfo,force)</onclick>
<onclick>Dialog.Close(videoosd,force)</onclick>
<onclick>RunScript(plugin.video.themoviedb.helper,add_path=$INFO[Container(1000).ListItem.FolderPath],call_auto=1113)</onclick>

That was it, many thanks.

(2023-06-26, 11:35)jurialmunkey Wrote: [ -> ]Also since you are using a TMDbHelper list for the cast, you should use add_path to add the item directly. That will make sure you get a perfect match rather than doing a query (it's also faster to do add_path because it skips calling the search endpoint).

Noted, thanks.
(2023-06-20, 15:36)jurialmunkey Wrote: [ -> ]You're understanding correctly but that's definitely far too long for it to be cached. It really should only be about a day tops.

Something funky is definitely going on with their API results for liked lists. I tested liking a few on the website and they will show up immediately in the API results, but unliked lists will persist in the results returned.
@jurialmunkey

Since I made my last post here, I noticed changes to "Liked Lists" showed up 1-2 days.  So perhaps Trakt changed something?...

Anyway, new question: 

They (Trakt) recently changed the  "Recommended" User List to "Favorites" on their website (still shows as "Recommended" on some Apps). 

Is this list accessible through the API, so it can be displayed under "Your Lists" in TMDBhelper?

When you "Add to Favorites" (vs the old "Recommend") Trakt allows you to save a "Note/Comment." 
If this list can be shown in TMDBhelper, would it be possible for this note/comment to be displayed?

If this sound like something that could be possible, I'll request it on Github.  I just wanted to gauge the feasibility.

Thanks!