FanArt backdrop support in XBMC's skinning-engine and scrapers (for Music and Videos)

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Rand Al Thor Offline
Collect3 Project Manager
Posts: 916
Joined: Jul 2005
Post: #16
A cursory glance at this thread looks very promising. If szori adds fanart to thetvdb as scrapeable images a simple <info>container.fanart</info> seems in order. If there is no fan art to scrape perhaps manually adding a fanart.png to the main folder of each tv show that would then be called with the same info tag. Just kind of talking out loud. cheers.
find quote
Mntz Offline
Skilled Skinner
Posts: 192
Joined: Dec 2004
Reputation: 0
Location: Belgium
Post: #17
I'm still hoping this gets implemented one day Smile
Few months ago i made a mockup of how i would implement this in Vinci:

Normal library, no fanart:
[Image: serieslib.jpg]

Fanart with two colors (darkblue & white):
[Image: seriesart.jpg]
Now in this example you would also need coloroverlay options for images :o
(flowers in the corners, menuhighlight)
find quote
agathorn Offline
Team-XBMC Developer
Posts: 497
Joined: Nov 2007
Reputation: 2
Post: #18
Mntz Wrote:I'm still hoping this gets implemented one day Smile
Few months ago i made a mockup of how i would implement this in Vinci:

Well i'm still looking for some discussion on my proposals before I do anything.

Got Fusion?, a media-centric skin for XBMC.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
NineT9mustang Offline
Skilled Skinner
Posts: 235
Joined: Nov 2004
Reputation: 0
Post: #19
In my mind for months I've had a temporary solution to this... The 'FanArt' way is a lot better...But my way is actually possible for now, and would only require 1 xbmc addition...

I'll try my best to explain, sorry in advance im not the greatest with words... Here goes:

So basically, the 'Folder.jpg' will be the 'FanArt'... The Folder.jpg would be full size (720p)... And it would use the 'Show Current Folder.jpg' method thats not implemented in XBMC, as well as a 'Custom View' for that specific TV Show...

Heres an example:

Your browsing your TV Shows...and you see Lost's icon (The 720p wallpaper, but of course its shrunk down now so u can view other shows)...So you go into the folder, and now that 720 icon is your wallpaper as you view your episode and your 'Custom View' is specific for Lost, can even make the view name Lost

The only problem I face with this, is if you have your shows in folders like 'Season 1', 'Season 2', 'Season 3', you will lose the previous Folder.jpg as soon as you jump into that subfolder...Which brings me to my point of what needs to be added to XBMC: Keep original 'Show Current Folder.jpg' thruought its subfoldeers...

Heres a mockup I did while writing this:

http://pics.apartment808.com/users/NineT.../House.png

All that is possible right now with XBMC...Its simply a 'Custom View' and 'Show Current Folder.jpg' (The Folder.jpg being 720p)

Only problem is if your going into a season subfolder, that whole 720p wallpaper will disapear... the solution would be XBMC keeping the previous folder.jpg

Anyway, its nothing special, just an alternate method, maybe ideas will form from it, just trying to help
(This post was last modified: 2008-03-08 21:21 by NineT9mustang.)
find quote
szsori Offline
TheTVDB.com Admin
Posts: 662
Joined: Aug 2006
Reputation: 1
Location: Milwaukee, WI
Post: #20
FanArt in TheTVDB will be included in the near future, but I don't think we'll be including a color scheme along with each image. The reason being is that it's simply not necessary if the skin works right. All the skin needs to do is create its menu and either have a border around the whole thing or each individual items, plus an alpha-blended background for said menu. If that doesn't work for the skinner, they can also apply an alpha-blended overlay to the entire fanart image, as Aeon currently does with its wallpapers (it calls them vignettes, I believe).

The other reason the color scheme won't be included is that it's impossible to specify the color scheme for some images. Do we store the primary color only? The two main colors? What if the image is perfectly split between 4 colors? How do we verify that people are selecting the correct color scheme for those images. There's just too much going on there that we can't pin down accurately, so it's best to leave it out and let skins/software handle things more elegantly.

As for how to make it work, just add a database table for tvfanart with 3 fields: id, seriesname, and fanart location. Then it would be relatively easy to have a script or scraper populate the information, and have the skin engine return the fanart location for the skins to use.
find quote
agathorn Offline
Team-XBMC Developer
Posts: 497
Joined: Nov 2007
Reputation: 2
Post: #21
szsori Wrote:FanArt in TheTVDB will be included in the near future, but I don't think we'll be including a color scheme along with each image. The reason being is that it's simply not necessary if the skin works right. All the skin needs to do is create its menu and either have a border around the whole thing or each individual items, plus an alpha-blended background for said menu. If that doesn't work for the skinner, they can also apply an alpha-blended overlay to the entire fanart image, as Aeon currently does with its wallpapers (it calls them vignettes, I believe).

The other reason the color scheme won't be included is that it's impossible to specify the color scheme for some images. Do we store the primary color only? The two main colors? What if the image is perfectly split between 4 colors? How do we verify that people are selecting the correct color scheme for those images. There's just too much going on there that we can't pin down accurately, so it's best to leave it out and let skins/software handle things more elegantly.

As for how to make it work, just add a database table for tvfanart with 3 fields: id, seriesname, and fanart location. Then it would be relatively easy to have a script or scraper populate the information, and have the skin engine return the fanart location for the skins to use.

Well my original thoughts on the whole "color scheme" thing was that it would be a user defined thing. Basically the person who created the backdrop would specify probably two colors designed to "go with" the backdrop. The skin would then use those colors for the UI built around the fanart instead of the skin's normal colors. Making it all blend together better. I don't see how this is difficult to do from the TVDB end. The user who uploads the image simply selects the two colors of the "scheme". again it would be from a range of predefine values, like grey blue red etc. Seems relativly easy on the DB side, though a lot more work on the skinner's side if they choose to do it.

Certainly if all we do is the image its a lot easier on me and skinners, I just don't know that it really lets fanart work as well as it could though.

My original reasoning for a color scheme was to be able to do something whereby the interface colors adapted to better fit the image. Could this be done with alphablends? To an extent yes, but why not go the full measure?

Note that i'm not just disagreeing with you here but trying to get some discussion going.

Got Fusion?, a media-centric skin for XBMC.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
agathorn Offline
Team-XBMC Developer
Posts: 497
Joined: Nov 2007
Reputation: 2
Post: #22
Ok so let me take a few minutes to explain, fully, what I was thinking. Again these are only my thoughts, and in the end Scott whatever you decide to do with TVDB will be up to you of course.

I envisioned two components.

First, would be the fanart image. I suggest this be in 16:9 aspect ratio, with 1280x720 a good choice. Stored as a PNG/JPG image.

Second is the color scheme, consisting of two colors. A primary and a secondary. These two colors would be chosen manually by the create of the fanart image as colors that complement the image. The primary and secondary colors would be chosen from a selection of hard coded color values, but it would be a short list. Nothing to extensive. Perhaps something like:
White, Black, Grey, Red, Green, Blue, Yellow, Orange, Purple.

When displayed by the skin, the skin would use this color scheme to decide which UI graphics to display. I picture this as simply setting up various versions and using conditional visibility to display the right one.

As to what constitutes "red" or "green" that would be up to the skin as to what works best, or the skin could ignore it completely if so desired, but it would be there as a suggestion to help mesh things together nicely.

Anyway these are just my thoughts.

My hope is that in the next few weeks I can get started on coding this up and getting the feature into XBMC but it won't be something that happens overnight. At this point though i've done nothing until we can get an idea of just what we're going to have.

Got Fusion?, a media-centric skin for XBMC.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
szsori Offline
TheTVDB.com Admin
Posts: 662
Joined: Aug 2006
Reputation: 1
Location: Milwaukee, WI
Post: #23
I can actually do better, if the color scheme stuff would actually help. Try this link with the url of an image appended:

http://thetvdb.com/test2.php?filename=

Examples (note... these will be very slow due to remote loading of images right now):

http://thetvdb.com/test2.php?filename=ht...caMars.png
edit: changed sample image so ImageShack doesnt remove that file

What format would you want the colors stored in? I can pass along hex, (rrr,ggg,bbb), or anything else you'd prefer. I'm sure whatever format you'd want could be used by other software as well.
(This post was last modified: 2008-03-09 09:20 by szsori.)
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,181
Joined: Oct 2003
Reputation: 176
Post: #24
Heh, that is very cool Smile

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
szsori Offline
TheTVDB.com Admin
Posts: 662
Joined: Aug 2006
Reputation: 1
Location: Milwaukee, WI
Post: #25
Smile I tried improving it, since right now the colors get a little washed out. I can't figure out a method that works, though. What I'm doing now:

1. Resizing the image to 3 x 2.
2. Copying the color of each pixel.
3. Sorting by frequency of the color (in the rare case a color appears twice in the resized image).
4. Converting the color codes to RGB.

If I resize to a larger dimension I get closer colors, but then we'll end up with a list of 64 colors instead of 6, which won't work for the skin developers. I've given up on this for now, and will probably implement it as-is.
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,181
Joined: Oct 2003
Reputation: 176
Post: #26
Yeah, the averaging done on the resize will wash stuff down to the averages, but I suspect it's probably the best technique.

I'm still not convinced that this is going to work really well, but it will be dependent on the images people provide as fanart. Most skins I suspect will be diffusing the fanart behind whatever is usually displayed on the video info page, and layout of the page may mean that "key things" in said backdrop could be overwritten with text and so on. I suspect that "background photo" imagery as fanart (i.e. nothing that requires the users' focus to see what they are) are going to work best. Something like the backdrops used in Aeon would probably be good candidates.

I guess we're gonna need conditional (i.e. infolabel-ized) diffuse/textcolors etc. now.

Cheers,
Jonathan

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
agathorn Offline
Team-XBMC Developer
Posts: 497
Joined: Nov 2007
Reputation: 2
Post: #27
Hmm.. Bear in mind i'm posting this just after waking up and in a hurry as I have to get ready for work.

This seems overly complex. The reason I had talked about a pre-defined list was for a couple reasons. One of which was to make it easier to implement. The second was to allow a skin to have sets of premade graphics to use for each color. If colors can be anything, there is no way to do that unless theres some dynamic image generation in XBMC that i'm not aware of.

Infolabelized things like colors is something i've always wanted to add. Most stuff should be infolabelized. For example if <font> was, then Fusion would have 3 times less code Tongue

Got Fusion?, a media-centric skin for XBMC.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
jallakim Offline
Junior Member
Posts: 1
Joined: Mar 2008
Reputation: 0
Post: #28
szsori, as this seems to go towards a solution; how would you solve the very increased bandwith with such a feature as fanart? Banners/seasonimages that is currently hosted @ thetvdb is just a drop in the ocean compared to full fanarts (1080p ones is > 1500kB each).

As one suggested over @ MP-forums;
fforde Wrote:I mentioned this about a dozen pages back, but since it's come up again, if we are talking about automatic downloads from a central server, I'd go with bittorrent. Setup a server that stores .torrent files rather than .jpg files. There are several open source bittorrent libraries, so you could integrate a mini torrent client in the plugin itself. So that way everyone would be downloading fanart from each other rather than one central server where one person has to foot the bill. You could even setup an option to turn the feature off if people arn't comfortable with sharing a tiny bit of bandwidth from time to time, you'd just have to make it opt out for it to work well.

This obviously is not nearly as strait forward as image hosting, but it would alleviate the bandwidth problem, and it would scale very well.
find quote
szsori Offline
TheTVDB.com Admin
Posts: 662
Joined: Aug 2006
Reputation: 1
Location: Milwaukee, WI
Post: #29
@jallakim:
Torrent files are awesome when:
1. People are downloading the same content.
2. The content is very large.
3. The content is rarely changing.

In the case of fan art, none of these apply unless you pack files together in which case #2 applies. Still not enough to warrant the overhead of torrents.

Instead, I'll be handling the additional bandwidth in other ways:
1. Giving API access to the thumbnails for all artwork. We already generate thumbnails to display everything on the site, so why not make them available so client software doesn't need to download the full fan art to display when they're just having the user select which image they want.

2. Finally, the creation of mirrors. I have the code mostly done, so it's just a matter of finishing it up and getting some mirrors set up. Initially the mirrors will be set up to hold only the zip files and art, to keep it simple. Instead of relying on the mirrors API that I don't think the XBMC scraper uses, I'll probably just modify my htaccess files for each section so they randomly redirect to a mirror for every file. Slightly more CPU usage, but far more effective than relying on clients to properly select a mirror. I just have to figure out if it'll actually work that way. Smile

3. Compression of all fan art as zipfiles. Since we're allowing access to the thumbnails so people can see the image, I can zip the full size image to reduce bandwidth. The 3 big users (XBMC, Media Portal, Meedio) can all handle pulling content from zip files, so it should help.

4. All fan art will be 1280x720. I understand that some people are using 1080 resolution (p vs i doesn't matter with the file resolution, btw), but IMHO 1280x720 graphics scale pretty well to 1920x1080 resolution, especially considering these are background images. We may support 1080 resolutions in the future, but only once I have a number of mirrors set up. People will hate me for this and stand outside my house with pitchforks, but that's life.

5. Capping fan art file sizes. This will require people to compress their JPG's at 80% instead of leaving them at 100%. It's extremely rare that an 80% compression is noticeable. I'll be running some tests to see where the file sizes should be capped, and I'll determine it based on image quality instead of bandwidth.

@agathorn:
A predefined list of colors makes no sense to me, since an image that has green in it won't necessarily look right with a green used by the skin. In fact, in most cases it would probably look worse than if the skin had remained in its default color. I'll be storing the colors as I indicated above, except I'll rearrange them so they go lightest to darkest. That should allow software to select the lightest and darkest matching colors to use. If XBMC decides to use this, that's great. But if not I think skins can just remain in their default color scheme and it'll still look nice (Aeon does this without any trouble).

@jmarshall:
As I told agathorn, I don't think implementing the colors is 100% necessary. As for displaying stuff over important areas on the background image, that may happen. I could ask the art submitter to specify if the main content is left, right, center, or none. Then the script/scraper/etc that pulls the fanart down could just pull down the images with that user's setting. This setting could probably be put in the TheTVDB scraper settings right next to the language and accountid.

The other easier option is to just have people select images that will work well with their skin. If you display the fan art they can choose from, they'll just be able to select one that has the content positioned in the right spot.

My main concern: If these are pulled down with the scraper, how will people select the image they want? Right now the image selection stuff for each record is handling the banner stuff. Can XBMC allow people to select 2 images for each series, or will that fall onto a script to handle?
find quote
timdog82001 Offline
Posting Freak
Posts: 1,142
Joined: Mar 2006
Reputation: 0
Post: #30
what about a field for the fanart specifying the focus location of the image? ie, left or right, top or bottom. then again, might not be worth the hassle for skinners

EDIT: oops, you were posting that big reply at the same time iw as posting this. Looks like you had the same idea
(This post was last modified: 2008-03-09 21:22 by timdog82001.)
find quote
Post Reply