• 1
  • 11
  • 12
  • 13(current)
  • 14
  • 15
  • 83
Release plugin.video.themoviedb.helper - Access to TheMovieDb API for Skinners
(2019-09-07, 04:10)edjalmo Wrote: Understand!
If you manually add a fallback language they will take more time to load only if user are in a language that no have text? If the answer is yes, I think is better take a little more time to load and get text, than load more fast and get nothing.

Not with the way the plugin is currently written. I would have to rewrite significant portions of my code to achieve what you are suggesting.
If I get around to rewriting the code for a v2, then I will consider adding in a fallback language.

For the time-being, if you want to use languages other than the default, then the best approach is to edit TheMovieDb page and add the missing information (which you should do anyway considering it is a free resource which relies on volunteers to exist).
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
(2019-09-07, 04:31)jurialmunkey Wrote:
(2019-09-07, 04:10)edjalmo Wrote: Understand!
If you manually add a fallback language they will take more time to load only if user are in a language that no have text? If the answer is yes, I think is better take a little more time to load and get text, than load more fast and get nothing.

Not with the way the plugin is currently written. I would have to rewrite significant portions of my code to achieve what you are suggesting.
If I get around to rewriting the code for a v2, then I will consider adding in a fallback language.

For the time-being, if you want to use languages other than the default, then the best approach is to edit TheMovieDb page and add the missing information (which you should do anyway considering it is a free resource which relies on volunteers to exist).

Understand!
Hope they add this function before for you not have more work.
I started collaborating with TMDb right now in Mads Mikkelsen's page Big Grin

Anyway, thanks for the great work!
Supercalifragilisticexpialidocious! (inscribed in large friendly letters)
My hardware is a Raspberry Pi 3b (with LibreELEC)
Reply
(2019-09-07, 04:11)jurialmunkey Wrote:
(2019-09-07, 01:04)bsoriano Wrote: I will try installing Leia in one of my machines and see if the behavior is different.

I just installed latest Matrix nightly and it works fine for me there too, so not a Matrix issue.

What language do you have set in TMDbHelper settings?

Can you confirm that the title of the item in the list matches the main title?          
@jurialmunkey , thanks, you are correct, it is not a Matrix issue, since I get the same behavior in Leia.  I have set the language to English (United States of America).  The title of the item in the list matches the main title as far as I can see.

I have no idea about what is going on.  Obviously it is a skin problem, since in the Leia install I just did from scratch, when I switch to Arctic Zephyr 2 it works exactly as expected, the exclusions work.

I also noticed in my skin that on first use of the plugin (pressing I on an item from one of the plugin widgets), I don't get all custom lists, in particular I don't get the cast.  I have to press I on another movie and then I get the cast.  Also, I don't understand why my code is so slow when showing online information.  You have to wait quite a few seconds for the cast to appear, whereas in your skin the cast is already there from the first second.

I tested right now by quitting Kodi, deleting the log, deleting simplecache.db, to force the plugin to go online for info, restarted Kodi and pressed i on It: Chapter Two (I have In-Theater movies as the widget for the Movies main menu item).  I did not get a cast.  Container 50 has no items, my custom cast panel has no items, even though the content path for the panel is correct (ListItemAbsolute(1).FolderPath for the hidden list from the details call for this movie).  I don't get it.  The log looks normal:

php:

2019-09-07 09:03:03.183 T:23408  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... api.themoviedb.org/3/movie/474350?api_key=5e54cbb01927216a9583925bec1bf265&language=en-US&include_image_language=en,null&append_to_response=credits,images,release_dates,content_ratings,external_ids
2019-09-07 09:03:03.680 T:21164  NOTICE: [plugin.video.themoviedb.helper]
                                            Must specify either &tmdb_id= &imdb_id= &query=: info=crew_in_movies&type=person&filter_key=job&filter_value=Director&query=&exclude_key=title&exclude_value="It: Chapter Two"!
2019-09-07 09:03:03.685 T:2016  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... api.themoviedb.org/3/movie/474350/similar?api_key=5e54cbb01927216a9583925bec1bf265&language=en-US&include_image_language=en,null&append_to_response=credits,images,release_dates,content_ratings,external_ids
2019-09-07 09:03:03.693 T:17484   ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.video.themoviedb.helper/?info=crew_in_movies&type=person&filter_key=job&filter_value=Director&query=&exclude_key=title&exclude_value="It: Chapter Two"
2019-09-07 09:03:04.132 T:22072  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... api.themoviedb.org/3/movie/474350/recommendations?api_key=5e54cbb01927216a9583925bec1bf265&language=en-US&include_image_language=en,null&append_to_response=credits,images,release_dates,content_ratings,external_ids
2019-09-07 09:03:04.258 T:23408  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... www.omdbapi.com/?apikey=e19acc66&tomatoes=True&plot=Full&r=xml&i=tt7349950
2019-09-07 09:03:05.791 T:12088  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... api.themoviedb.org/3/discover/movie?api_key=5e54cbb01927216a9583925bec1bf265&language=en-US&include_image_language=en,null&append_to_response=credits,images,release_dates,content_ratings,external_ids
2019-09-07 09:03:06.378 T:12008  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... api.themoviedb.org/3/discover/movie?api_key=5e54cbb01927216a9583925bec1bf265&language=en-US&include_image_language=en,null&primary_release_year=2019&append_to_response=credits,images,release_dates,content_ratings,external_ids
2019-09-07 09:03:06.378 T:5768  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... api.themoviedb.org/3/discover/movie?api_key=5e54cbb01927216a9583925bec1bf265&language=en-US&include_image_language=en,null&append_to_response=credits,images,release_dates,content_ratings,external_ids
2019-09-07 09:03:08.441 T:22316  NOTICE: [plugin.video.themoviedb.helper]
                                            Requesting... api.themoviedb.org/3/movie/474350/credits?api_key=5e54cbb01927216a9583925bec1bf265&language=en-US&include_image_language=en,null&append_to_response=credits,images,release_dates,content_ratings,external_ids
2019-09-07 09:03:08.896 T:22316 WARNING: Invalid media type "actor"

(I took out the http:// from the log lines so you could see the whole calls being made)

I know this is perhaps too much to ask, but could you please take a look at my code when you have a chance and let me know some pointers of what I could do differently or where you see I am making mistakes that would lead to this poor performance or the issue with the exclusions? The relevant code is in DialogVideoInfo.xml, Includes_Info.xml, the other variables are in Includes_Variables.xml, and my versions of the tmdb info and tmdb reload are Custom_1128_TMDB_PersonInfo.xml and Custom_1129_TMDB_InfoReload.xml.  Thanks a lot for your continued help and support.

Regards,

Bart
Reply
@jurialmunkey , I think that the person info "aliases" is not working due to what could be a typo in listitem.py; you are getting the property "also_know_as" and it should be "also_known_as" (per tmdb api).  I understand that is not the only change needed, since also_known_as returns an array of strings and not a single string.

Regards,

Bart
Reply
(2019-09-07, 19:16)bsoriano Wrote: @jurialmunkey , I think that the person info "aliases" is not working due to what could be a typo in listitem.py; you are getting the property "also_know_as" and it should be "also_known_as" (per tmdb api).  I understand that is not the only change needed, since also_known_as returns an array of strings and not a single string.

Ah, yep. Good spot! Definitely a typo.
Should be fixed now.

I didn't even realise that was a list. I'm now concatinating it as a string with a " / " separator into ListItem.Property(aliases)
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
(2019-09-07, 23:24)jurialmunkey Wrote:
(2019-09-07, 19:16)bsoriano Wrote: @jurialmunkey , I think that the person info "aliases" is not working due to what could be a typo in listitem.py; you are getting the property "also_know_as" and it should be "also_known_as" (per tmdb api).  I understand that is not the only change needed, since also_known_as returns an array of strings and not a single string.

Ah, yep. Good spot! Definitely a typo.
Should be fixed now.

I didn't even realise that was a list. I'm now concatinating it as a string with a " / " separator into ListItem.Property(aliases) 
@jurialmunkey , confirmed it is fixed.  Thanks.

Regrds,

Bart
Reply
@jurialmunkey , thanks for the pull request for Amber.  Indeed the exclusions are fixed, and I don't quite understand, since the way you provided the code is how I had it before.  I started trying using the hidden container with the details call info (container 5100) to try to workaround listitem properties not being filled for online items.

I still sometimes do not get the cast for online items, and right now I am not getting a more by director custom info list for online items.  I do get it for local items.

Thanks again for all of your help.

Regards,

Bart
Reply
(2019-09-07, 14:47)bsoriano Wrote: I have set the language to English (United States of America). The title of the item in the list matches the main title as far as I can see. I have no idea about what is going on. Obviously it is a skin problem, since in the Leia install I just did from scratch, when I switch to Arctic Zephyr 2 it works exactly as expected, the exclusions work. I know this is perhaps too much to ask, but could you please take a look at my code when you have a chance and let me know some pointers of what I could do differently or where you see I am making mistakes that would lead to this poor performance or the issue with the exclusions?
Here you go:
https://github.com/bartolomesoriano/skin.amber/pull/7

The exclusions weren't working because you were using $ESCINFO[] which encases the string in quotation marks ""
$ESCINFO is only for scripts/built-ins which might get confused by a label with commas in them and think that it is splitting an argument. Commas don't matter for a plugin because the path is passed to the plugin as a paramstring.

I also don't know why you were building the lists based off your hidden detailed item. Using infolabels from the detailed item would slow down your info because you are waiting for that to build first, when library items will already have ListItem.Director / Studio / Genre etc.

It would be best to use a variable to check !String.IsEmpty(ListItem.Director) and use ListItem.Director first, then only fallback to the detailed item if no director is available.

(2019-09-07, 14:47)bsoriano Wrote: I also noticed in my skin that on first use of the plugin (pressing I on an item from one of the plugin widgets), I don't get all custom lists, in particular I don't get the cast. I have to press I on another movie and then I get the cast. Also, I don't understand why my code is so slow when showing online information. You have to wait quite a few seconds for the cast to appear, whereas in your skin the cast is already there from the first second.
I don't use a hidden detailed item to populate cast or a separate cast-list call. I just use the built-in id="50" class list in dialogvideoinfo. So that's why mines much faster - because I'm not doing any separate look-up.

In the detailed item, I fill the default cast list in addition to the individual properties. Because the custom window calls the info dialog on the detailed item, then the default id="50" list will be filled with cast. The only time you won't get cast is if you are using a TMDbHelper list as a widget because cast info isn't available for lists (e.g. Popular Movies etc.). However, if any list item already has a detailed version cached, then I will merge the info.
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
(2019-09-08, 00:16)bsoriano Wrote: @jurialmunkey , thanks for the pull request for Amber.  Indeed the exclusions are fixed, and I don't quite understand, since the way you provided the code is how I had it before.  I started trying using the hidden container with the details call info (container 5100) to try to workaround listitem properties not being filled for online items.

I still sometimes do not get the cast for online items, and right now I am not getting a more by director custom info list for online items.  I do get it for local items.

BTW it will still work using Container(5100). - it is just faster if you use the standard ListItem. infolabels if available.
I would add a check to the variable for !String.IsEmpty(ListItem.Director) and then fallback to Container(5100).ListItem.Director if ListItem.Director isn't available.

In terms of exclusions, I think maybe you were confused by the Fast & Furious movie, because the "&" would cause problems for the plugin and so you would think it wasn't working.
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
(2019-09-08, 00:34)jurialmunkey Wrote:
(2019-09-08, 00:16)bsoriano Wrote: @jurialmunkey , thanks for the pull request for Amber.  Indeed the exclusions are fixed, and I don't quite understand, since the way you provided the code is how I had it before.  I started trying using the hidden container with the details call info (container 5100) to try to workaround listitem properties not being filled for online items.

I still sometimes do not get the cast for online items, and right now I am not getting a more by director custom info list for online items.  I do get it for local items.

BTW it will still work using Container(5100). - it is just faster if you use the standard ListItem. infolabels if available.
I would add a check to the variable for !String.IsEmpty(ListItem.Director) and then fallback to Container(5100).ListItem.Director if ListItem.Director isn't available.

In terms of exclusions, I think maybe you were confused by the Fast & Furious movie, because the "&" would cause problems for the plugin and so you would think it wasn't working. 
@jurialmunkey , thanks.  I did as you suggest for the Director, and now I am getting the custom info list.  

You definitely have a point with the exclusions, I kind of focused on the tests with that movie which were never going to work for the reasons you explained with the & character.

Thanks again!

Regards,

Bart
Reply
(2019-09-08, 00:30)jurialmunkey Wrote:
(2019-09-07, 14:47)bsoriano Wrote: I have set the language to English (United States of America). The title of the item in the list matches the main title as far as I can see. I have no idea about what is going on. Obviously it is a skin problem, since in the Leia install I just did from scratch, when I switch to Arctic Zephyr 2 it works exactly as expected, the exclusions work. I know this is perhaps too much to ask, but could you please take a look at my code when you have a chance and let me know some pointers of what I could do differently or where you see I am making mistakes that would lead to this poor performance or the issue with the exclusions?
Here you go:
https://github.com/bartolomesoriano/skin.amber/pull/7

The exclusions weren't working because you were using $ESCINFO[] which encases the string in quotation marks ""
$ESCINFO is only for scripts/built-ins which might get confused by a label with commas in them and think that it is splitting an argument. Commas don't matter for a plugin because the path is passed to the plugin as a paramstring.

I also don't know why you were building the lists based off your hidden detailed item. Using infolabels from the detailed item would slow down your info because you are waiting for that to build first, when library items will already have ListItem.Director / Studio / Genre etc.

It would be best to use a variable to check !String.IsEmpty(ListItem.Director) and use ListItem.Director first, then only fallback to the detailed item if no director is available.
(2019-09-07, 14:47)bsoriano Wrote: I also noticed in my skin that on first use of the plugin (pressing I on an item from one of the plugin widgets), I don't get all custom lists, in particular I don't get the cast. I have to press I on another movie and then I get the cast. Also, I don't understand why my code is so slow when showing online information. You have to wait quite a few seconds for the cast to appear, whereas in your skin the cast is already there from the first second.
I don't use a hidden detailed item to populate cast or a separate cast-list call. I just use the built-in id="50" class list in dialogvideoinfo. So that's why mines much faster - because I'm not doing any separate look-up.

In the detailed item, I fill the default cast list in addition to the individual properties. Because the custom window calls the info dialog on the detailed item, then the default id="50" list will be filled with cast. The only time you won't get cast is if you are using a TMDbHelper list as a widget because cast info isn't available for lists (e.g. Popular Movies etc.). However, if any list item already has a detailed version cached, then I will merge the info. 
@jurialmunkey, thank you so much for your help and the explanations.

I will go back to the drawing board with my cast panel to use the info from container 50, since with what you mention, this container will have the cast for online or local items. I imagine that, while a bit slower, I can use a custom cast panel that gets the info from container 50, so I can have my custom onclick and allow the user to search either online or locally for the person's info.

Thanks again! Smile

Regards,

Bart
Reply
(2019-09-08, 01:24)bsoriano Wrote:
(2019-09-08, 00:30)jurialmunkey Wrote:
(2019-09-07, 14:47)bsoriano Wrote: I have set the language to English (United States of America). The title of the item in the list matches the main title as far as I can see. I have no idea about what is going on. Obviously it is a skin problem, since in the Leia install I just did from scratch, when I switch to Arctic Zephyr 2 it works exactly as expected, the exclusions work. I know this is perhaps too much to ask, but could you please take a look at my code when you have a chance and let me know some pointers of what I could do differently or where you see I am making mistakes that would lead to this poor performance or the issue with the exclusions?
Here you go:
https://github.com/bartolomesoriano/skin.amber/pull/7

The exclusions weren't working because you were using $ESCINFO[] which encases the string in quotation marks ""
$ESCINFO is only for scripts/built-ins which might get confused by a label with commas in them and think that it is splitting an argument. Commas don't matter for a plugin because the path is passed to the plugin as a paramstring.

I also don't know why you were building the lists based off your hidden detailed item. Using infolabels from the detailed item would slow down your info because you are waiting for that to build first, when library items will already have ListItem.Director / Studio / Genre etc.

It would be best to use a variable to check !String.IsEmpty(ListItem.Director) and use ListItem.Director first, then only fallback to the detailed item if no director is available.
(2019-09-07, 14:47)bsoriano Wrote: I also noticed in my skin that on first use of the plugin (pressing I on an item from one of the plugin widgets), I don't get all custom lists, in particular I don't get the cast. I have to press I on another movie and then I get the cast. Also, I don't understand why my code is so slow when showing online information. You have to wait quite a few seconds for the cast to appear, whereas in your skin the cast is already there from the first second.
I don't use a hidden detailed item to populate cast or a separate cast-list call. I just use the built-in id="50" class list in dialogvideoinfo. So that's why mines much faster - because I'm not doing any separate look-up.

In the detailed item, I fill the default cast list in addition to the individual properties. Because the custom window calls the info dialog on the detailed item, then the default id="50" list will be filled with cast. The only time you won't get cast is if you are using a TMDbHelper list as a widget because cast info isn't available for lists (e.g. Popular Movies etc.). However, if any list item already has a detailed version cached, then I will merge the info. 
@jurialmunkey, thank you so much for your help and the explanations.

I will go back to the drawing board with my cast panel to use the info from container 50, since with what you mention, this container will have the cast for online or local items. I imagine that, while a bit slower, I can use a custom cast panel that gets the info from container 50, so I can have my custom onclick and allow the user to search either online or locally for the person's info.

Thanks again! Smile

Regards,

Bart

No worries.

What I would probably do is still have the additional cast list from the detailed item but only show it if the id=50 cast list has no items. You may as well use the additional cast list since you are going to be getting the detailed item anyway. That way you get the best of both - quick loading if it exists and the detailed look-up if it doesn't.

You could use similar variables for your movies featuring cast list to check if you have something in id=50 and use that if available, but fallback to the detailed item if not available.
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
(2019-09-08, 01:49)jurialmunkey Wrote:
(2019-09-08, 01:24)bsoriano Wrote:
(2019-09-08, 00:30)jurialmunkey Wrote: Here you go:
https://github.com/bartolomesoriano/skin.amber/pull/7

The exclusions weren't working because you were using $ESCINFO[] which encases the string in quotation marks ""
$ESCINFO is only for scripts/built-ins which might get confused by a label with commas in them and think that it is splitting an argument. Commas don't matter for a plugin because the path is passed to the plugin as a paramstring.

I also don't know why you were building the lists based off your hidden detailed item. Using infolabels from the detailed item would slow down your info because you are waiting for that to build first, when library items will already have ListItem.Director / Studio / Genre etc.

It would be best to use a variable to check !String.IsEmpty(ListItem.Director) and use ListItem.Director first, then only fallback to the detailed item if no director is available.
I don't use a hidden detailed item to populate cast or a separate cast-list call. I just use the built-in id="50" class list in dialogvideoinfo. So that's why mines much faster - because I'm not doing any separate look-up.

In the detailed item, I fill the default cast list in addition to the individual properties. Because the custom window calls the info dialog on the detailed item, then the default id="50" list will be filled with cast. The only time you won't get cast is if you are using a TMDbHelper list as a widget because cast info isn't available for lists (e.g. Popular Movies etc.). However, if any list item already has a detailed version cached, then I will merge the info. 
@jurialmunkey, thank you so much for your help and the explanations.

I will go back to the drawing board with my cast panel to use the info from container 50, since with what you mention, this container will have the cast for online or local items. I imagine that, while a bit slower, I can use a custom cast panel that gets the info from container 50, so I can have my custom onclick and allow the user to search either online or locally for the person's info.

Thanks again! Smile

Regards,

Bart

No worries.

What I would probably do is still have the additional cast list from the detailed item but only show it if the id=50 cast list has no items. You may as well use the additional cast list since you are going to be getting the detailed item anyway. That way you get the best of both - quick loading if it exists and the detailed look-up if it doesn't.

You could use similar variables for your movies featuring cast list to check if you have something in id=50 and use that if available, but fallback to the detailed item if not available.

@jurialmunkey, thanks! I sort of did that, using the same custom panel with content items from both container 50 and the details hidden list. The items are shown based on visibility conditions.

I tried using two different cast lists (I don't know if this is better than my approach?), but then the navigation between custom info lists and cast broke and I could not figure out how to fix it.

What I have now works, except that on first use with an empty cache, I don't get any cast at all for the first movie I try, it seems that the plugin takes a little bit of time to fill the details hidden list, and my busy loader image is not even showing. I am not sure how to fix this or why it is happening.

Any additional pointers will be greatly appreciated!

Regards,

Bart
Reply
(2019-09-10, 15:08)bsoriano Wrote:
(2019-09-08, 01:49)jurialmunkey Wrote:
(2019-09-08, 01:24)bsoriano Wrote: @jurialmunkey, thank you so much for your help and the explanations.

I will go back to the drawing board with my cast panel to use the info from container 50, since with what you mention, this container will have the cast for online or local items. I imagine that, while a bit slower, I can use a custom cast panel that gets the info from container 50, so I can have my custom onclick and allow the user to search either online or locally for the person's info.

Thanks again! Smile

Regards,

Bart

No worries.

What I would probably do is still have the additional cast list from the detailed item but only show it if the id=50 cast list has no items. You may as well use the additional cast list since you are going to be getting the detailed item anyway. That way you get the best of both - quick loading if it exists and the detailed look-up if it doesn't.

You could use similar variables for your movies featuring cast list to check if you have something in id=50 and use that if available, but fallback to the detailed item if not available.

@jurialmunkey, thanks! I sort of did that, using the same custom panel with content items from both container 50 and the details hidden list. The items are shown based on visibility conditions.

I tried using two different cast lists (I don't know if this is better than my approach?), but then the navigation between custom info lists and cast broke and I could not figure out how to fix it.

What I have now works, except that on first use with an empty cache, I don't get any cast at all for the first movie I try, it seems that the plugin takes a little bit of time to fill the details hidden list, and my busy loader image is not even showing. I am not sure how to fix this or why it is happening.

Any additional pointers will be greatly appreciated!

Regards,

Bart


Did you manage to fix this issue? I pulled the latest changes for Amber and it appears to be working correctly for me.
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
(2019-09-11, 08:43)jurialmunkey Wrote:
(2019-09-10, 15:08)bsoriano Wrote:
(2019-09-08, 01:49)jurialmunkey Wrote: No worries.

What I would probably do is still have the additional cast list from the detailed item but only show it if the id=50 cast list has no items. You may as well use the additional cast list since you are going to be getting the detailed item anyway. That way you get the best of both - quick loading if it exists and the detailed look-up if it doesn't.

You could use similar variables for your movies featuring cast list to check if you have something in id=50 and use that if available, but fallback to the detailed item if not available.

@jurialmunkey, thanks! I sort of did that, using the same custom panel with content items from both container 50 and the details hidden list. The items are shown based on visibility conditions.

I tried using two different cast lists (I don't know if this is better than my approach?), but then the navigation between custom info lists and cast broke and I could not figure out how to fix it.

What I have now works, except that on first use with an empty cache, I don't get any cast at all for the first movie I try, it seems that the plugin takes a little bit of time to fill the details hidden list, and my busy loader image is not even showing. I am not sure how to fix this or why it is happening.

Any additional pointers will be greatly appreciated!

Regards,

Bart


Did you manage to fix this issue? I pulled the latest changes for Amber and it appears to be working correctly for me.

@jurialmunkey, I have not been able to work on the skin since last Sunday, I had to travel outside the country. I get back tomorrow, so hopefully on Friday I will be able to get back to skinning. As I left it, the problem was there, only on first use (pressing I on a movie from one of the plugin widgets) with an empty cache (I deleted simplecache.db after quitting Kodi).

Regards,

Bart
Reply
  • 1
  • 11
  • 12
  • 13(current)
  • 14
  • 15
  • 83

Logout Mark Read Team Forum Stats Members Help
plugin.video.themoviedb.helper - Access to TheMovieDb API for Skinners2