elgatito / plugin.video.elementum

Elementum add-on for Kodi. Development of this addon has been stopped!
http://elementum.surge.sh
MIT License
467 stars 157 forks source link

[Request] The third option in the selection of artwork, tmdb+fanart.tv artworks #998

Open matke-84 opened 4 months ago

matke-84 commented 4 months ago

@elgatito @antonsoroko We have already discussed this. This is just a reminder. We need an third option that would show tmdb artworks as the primary artwork, when tmdb doesn't deliver an artwork or simply doesn't have it, such as a banner, clearart, cd... fanart.tv takes over those artworks as a fallback. So there would be three options. We already have two.

  1. tmdb artworks only by default (we already have)
  2. fanart.tv artwork only (we already have)
  3. tmdb artworks primary+fanart.tv as fallback (we would like to have)
antonsoroko commented 4 months ago

@matke-84 can you please tell what is the benefit of this 3rd option over option 2?


btw, for fanart.tv option - elementum uses both tmdb and fanart.tv images, but then it tries to get a "best" image from both lists, see https://github.com/elgatito/elementum/blob/322c142d0eaf7d3a0d57f5865d36d62fed12c971/fanart/fanart.go#L171


here is the related code from tmdb helper: https://github.com/jurialmunkey/plugin.video.themoviedb.helper/blob/efee395ac195cd4d03cc0538408d7318e11b3bf6/resources/tmdbhelper/lib/items/builder.py#L248 https://github.com/jurialmunkey/plugin.video.themoviedb.helper/blob/efee395ac195cd4d03cc0538408d7318e11b3bf6/resources/tmdbhelper/lib/addon/consts.py#L45

but i am not sure that we should introduce another layer of complexity into our already not-that-simple Art-related logic. maybe elgagito can come up with some more elegant solution.

matke-84 commented 4 months ago

@antonsoroko

can you please tell what is the benefit of this 3rd option over option 2?

One of the reasons, your quote. :-)

To be clear - all 3 (1 elementum's old, 1 elementum's new, and 1 from other plugin) screenshots with banners looks bad in my opinion, since they use not a real banners.

If you enable fanart.tv - then you will see how it supposed to be with real banners:

When the fanart.tv option is turned on, it opens artworks from fanart.tv. As we know that with fanart.tv the opening of artwork is quite slow for many reasons (slower server, size of artwork that cannot be reduced...). Now that we have arranged tmdb artworks, we have posters, landscape, fanart, clearlogo that run quite fast depending on the options (medium, low...). But Tmdb does not deliver other artworks such as the banners we talked about, cd, clearart... There are also sometimes some artworks that are not available in the tmdb database, so that would be done with fanart.tv. In fact, it would be a variant that would be between tmdb and fanart.tv. They would certainly have a faster opening than when only fanart.tv is used, and they would still have all artworks enabled.

I guess it's not an easy job. That's why I opened a new issue, so if you have the time and will to sort it out sometime.

matke-84 commented 4 months ago

Here is the difference in opening between the default tmdb option and when fanart.tv is turned on. This was tested with the last version you sent me, on a windows 11 machine with fairly powerful hardware. Both are Trakt lists with cache wiped. Pay attention to the opening, but also to switching between movies, how quickly fanart and clearlogo appear on the tmdb video.

https://github.com/elgatito/plugin.video.elementum/assets/74268331/2e8d2e58-1bf7-4b08-8c17-10c9b5667b12

https://github.com/elgatito/plugin.video.elementum/assets/74268331/85cb70e2-1468-4817-9865-148b2eb611e4

antonsoroko commented 4 months ago

@matke-84 it is faster, i see. but to be clear - it is slow only the 1st time. after 1st open images are cached - so next open is instant.

about how tmdb helper does this - looks like they have this mapping for ignoring fanart.tv Arts:

ARTWORK_BLACKLIST = [
[], # original quality, takes all Art from fanart.tv 
['poster', 'season.poster', 'tvshow.poster'], # high quality, take all, except posters
['fanart', 'season.fanart', 'tvshow.fanart', 'poster', 'season.poster', 'tvshow.poster'], # medium quality, 
take all, except fanarts and posters
['fanart', 'season.fanart', 'tvshow.fanart', 'poster', 'season.poster', 'tvshow.poster'] # low quality, 
take all, except fanarts and posters
]

correct me if i am wrong.

matke-84 commented 4 months ago

@antonsoroko

but to be clear - it is slow only the 1st time. after 1st open images are cached - so next open is instant.

Yes. Of course when it cashes the page and when you go through each movie it opens quickly. But consider that it's on windows. On Android, opening each page or each movie individually is like a pain in the ass. :-)

about how tmdb helper does this - looks like they have this mapping for ignoring fanart.tv Arts:

Yes, I think so. I think you can see the logic here. https://github.com/jurialmunkey/plugin.video.themoviedb.helper/blob/efee395ac195cd4d03cc0538408d7318e11b3bf6/resources/tmdbhelper/lib/items/builder.py

elgatito commented 4 months ago

Variables that describe Images in TMDB and Fanart are different. And we have the logic to generate Art and then apply Fanart on top.

It does make sense to have a method with (primaryArt, secondaryArt) that would accept arts and apply accordingly second over first one. And you would select which one would come as first, from TMDB (by default) or Fanart.

But that would require to carefully refactor art code, trying not to break it.