http://xboxmediacenter.com/forum/showthread.php?t=30083&page=2
And i've started work on the code for Fanart support. Now while I did agree to step up and do this, I certainly wouldn't be averse to help if anyone wants to give it :) I'm most comfortable with the GUI code in XBMC so that is where i'm starting. If anyone wants to work on how the Fanart images/data will be retrieved/scraped I would be most grateful, but if not then i'll burn that bridge when I cross it.
This is my "todo" list as it were:
Add support for expansion of infolabels in various key tags
Add infolabels for the 6 fanart colors
Add infolabel for fanart image
Perhaps add an .nfo reader for local fanart data, or maybe expand the existing one used for movies. I havent' looked at this at all yet so not positive.
Add some method of scraping fanart data from TVDB and storing that dataThe first three items I am most confortable taking care of, and would be most appreciative of any help with the last two.
Just a brief high level overview of the classes involved would really speed things up for me. Say for a Television show scraper like TVDB.
You noticed the API returns RGB's formatted as (r,g,b) with each value being an int 0-255, right? You can convert to hex easily enough, as long as the scraper handles it or if you can do it in XBMC somewhere. Just wanted to make sure you noticed it.
Adding variables (either a vector
Not sure if anything else is needed wrt the scraper as it outputs XML in the same way.
Then you need to add the fields to the db. See the enum + offset stuff in videodatabase.h, and reading/writing in videodatabase.cpp. You'll also need to add db update functionality as you'll be adding fields. Probably a single field for colors and just pack them in (no need to search on them afterall) and a field for the fanart.
Finally, the infolabels which are the easy bit.
Cheers,
Jonathan
Great news! We are all anxiously awaiting this feature! It will give me the motivation to fix all the other little skin issues I have been putting off ;)
@agathorn
Thanks for all the hard work you have done. I definitely appreciate it! I'm sure it's not just skinners too, I bet every user is salivating right now in anticipation :D
IMHO there should be a "Style guide" so to speak that helps guide the artist to choosing the right colors when submitting. I think color 3 personally should be a color chosen that would be a good matte color for the image.
Though this is probably more on topic for posting in TVDB's forums though.
In the end its all down to what we scrape from TVDB and I have no control over that.
Thing is though I keep seeing you showing results with the same certain images. I have lots of fanart that when I do colors siiliar to what you are doing, the autocolors just bite.
You can place a fanart.jpg, or fanart.png file in the shows main folder, IE:
TelevisionShowsStargate Atlantisfanart.jpg
And XBMC will use that as the fanart image. This method does NOT provide color information.
If a show already has fanart assigned to it, the fanart.jpg method wont' work, because it won't override what you already had set (for safety :p) so in order to change it simlply go to the Choose Fanart window, select BROWSE, and then select the local image you want to use as fanart.
Jezz_X was kind enough to quickly put together a small test skin for me to use to test the Fanart so now we have screenies!
http://www.johnvanderbeck.com/files/screenshot001.jpg
http://www.johnvanderbeck.com/files/screenshot002.jpg
http://www.johnvanderbeck.com/files/screenshot003.jpg
http://www.johnvanderbeck.com/files/screenshot004.jpg
Now its VERY hard to notice (szori I think we really might want the ability for submitter specified colors?) because the colors are so dark and don't vary much, but if you look closely in each image you will see besides the obvious image, that the list highlight changes color based on the colors in the theme.
http://xbmc.org/forum/showthread.php?t=30083
http://i182.photobucket.com/albums/x183/Mntz/fanart.jpg
wink wink, nudge nudge :grin:
By the way, here are some backdrops for some Music Artists:
http://jossan.visse.nu/~spuck/FanArtVote/
BUG: RSSFeedControl isn't displaying colors properly
Just so everyone's aware, the top fan art returned by TheTVDB is the highest rated fan art for that series. So voting for art will result in better results when scraping. I'll soon be switching it so it returns the fan art with the highest Bayesian score, which you can see an explanation of here: http://forums.thetvdb.com/viewtopic.php?p=2977#2977
In any case, voting on fan art = good results when scraping. Keep that in mind. :)
(Movie-XML (http://www.movie-xml.com) Online Movie Database that uses the same open source code as TheTVDB.com (http://sourceforge.net/projects/tvdb/))
http://xbmc.org/forum/showthread.php?t=32369&page=4I've been working on movies fanart support:
- I made ~400 fanart images (all 1920x1080) mostly for movies in my library and they are currently loaded from fanart folder located in MeedioData folder
- images are named based on IMDb ID number so there would be no duplicates
e.g.
The Departed = tt0407887.jpg
- maybe this could be useful for XBMC (as far as I can tell Aeon skin could use them as backdrops right out of the box)...
http://img150.imageshack.us/img150/8661/fanartux2.jpg (http://img122.imageshack.us/img122/3719/fansy6.jpg)
http://img396.imageshack.us/img396/2715/media2lb5.jpg (http://img362.imageshack.us/img362/470/mediazp5.jpg)
Scroll to "Colors". It's all ready for you. I'm working on going through all the current fan art and setting the artist colors. I should be done sometime tomorrow (60 down, 400+ to go). The colors should be much more usable now. :)
This wasn't working properly though and as I dug around trying to find what was wrong, I realized I was missing a part of the infolabel parsing.
In hindsight now I think a class like you suggest is a better alternative considering the amount of code needed. Like I said originally I wanted to avoid that new memory overhead, but since it doesn't seem an issue to you that's what i'm going to go ahead and do.
Thanks for the tip!
http://thetvdb.com/colorchooser.php?id=20100
Getting there. Doing the final submit won't do anything yet. I still want to do 4 things before taking this live:
1. Make the form work so it actually saves those values in the correct field.
2. Set the API so it returns the artist colors in addition to the autocolors (I'll also make a combined_colors for XBMC to make it easier to scrape).
3. Display the current artist colors and (possibly?) allow them to keep the existing color.
4. Update the wiki with examples to guide proper color selection and link from the color chooser.
I'll probably also go through most of the submitted banners and do the colors for them. Artists will still be able to do their own colors, but I want to make sure this is usable in the API.
Although good is that really needed can't you just use !IsEmpty(Fanart.InfoLabel)
The above tags now support infolabels in all controls that use them including:
ButtonControl
ButtonScroller
CheckMarkControl
FadeLabelControl
LabelControl
ListItem
ListLabel
MultiSelect
RSSControl
SettingsSliderControl
SpinControl
TextboxControl
Optimized CGUIInfoColor a bunch
Thanks JMarshall for all your help and support!
Thanks spiff, i'll take a look at that when I get to that point. I appreciate the point in the right direction.
I've done some tests and i'm amazed that the generated colors fit a lot better then the ones entered by a person. I don't know if other skinners notice the same thing in their skin/tests.
Here are some quick examples.
Left = generated, Right = userinput
http://users.edpnet.be/desertstorm/fanartcompare1.png
http://users.edpnet.be/desertstorm/fanartcompare2.png
http://users.edpnet.be/desertstorm/fanartcompare3.png
https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk/XBMC/system/scrapers/video/
Also read up on TheTVDB's API:
http://www.thetvdb.com/wiki/index.php?title=Programmers_API
Then you want to read (and reply if needed) to this topic thread:
http://forums.thetvdb.com/viewtopic.php?p=2777
PS! More about the XBMC's own scraper API can be found in our wiki:
http://xbmc.org/wiki/?title=How_To_Write_Media_Info_Scrapers
http://xbmc.org/wiki/?title=Scraper
http://xbmc.org/wiki/?title=Scrap
http://xbmc.org/wiki/?title=Import_-_Export_Video_Library
http://xbmc.org/wiki/?title=Regular_Expression_%28RegEx%29_Tutorial
Happy coding!
One thing you'll need to watch is that the colors for text are in general passed to the GUITextLayout class (where the text is cached) so you'll need them there as well.
Any ideas you have would be great to know - we can chat via IRC or gchat or whatever if you like - PM me for my gmail info, and let me know when a good time for you is. I'm normally around 8-22 NZ time.
Cheers,
Jonathan
That is pretty much how I did it, though I packed the data in a bit tighter, since I didn't want to use up too much memory.
I'll have fan art on the site and into the interfaces this weekend. I know you're waiting on me. :)
This is just data that is available to the skin to display however it wants. 4:3 or 16:9 is irrelevant.
Thanks for all the hard work you have done. I definitely appreciate it! I'm sure it's not just skinners too, I bet every user is salivating right now in anticipation :D
Its something that I as a user wanted, so it seemed only fair to step up and do it. That's how opensource works :)
Yep I JUST started looking at what the API returned and saw that. I'm still figuring out the whole scraper internals in XBMC but I don't think it will be an issue to convert the values over.
Thanks JMarshall for getting that in this morning/last night, and for taking it the rest of the way to work on
So, for the record:
This should work in all controls, except maybe the XLink Kai stuff which JMarshall informs me is dead :p If anyone encounters any bugs please let me know. I'll certainly support this code.
Now that that is said, i'm moving on to build in the new Infolabels for fanart support, and then to actually grabbing data.
http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/th_screenshot028-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/screenshot028-1.jpg) http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/th_screenshot027-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/screenshot027-1.jpg) http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/th_screenshot026-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/screenshot026-1.jpg)
http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/th_screenshot025-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/screenshot025-1.jpg) http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/th_screenshot024-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/screenshot024-1.jpg) http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/th_screenshot023-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/Basic-Vision/screenshot023-1.jpg)
I'll have fan art on the site and into the interfaces this weekend. I know you're waiting on me. :)
Sounds good! Though to be honest i'm not really waiting on you, not yet anyway. Still working on getting the internals all setup to make this work. With that said though, it will be nice to be able to manually grab some of the stuff if its available through the site (outside of the API) then I can use them in testing even before the scraping is written.
Is the testskin public available?
It would be handy to see the coding :)
are there any sites that host fanart for music? Or are you only talking local fanart inclusion for music?
Is the testskin public available?
It would be handy to see the coding :)
Mntz Its not that complicted really you just make your layout and use a image info label of Fanart.Image and you have I think six color ones that go Fanart.Color1 , Fanart.Color2 , Fanart.Color3 .......... and so on.
Of Course you will need to take into account that the series has no fan art so you will need to use something like !IsEmpty(Fanart.Image) to toggle a alt background. Thats about it really the rest is just normal skinning
...but hopefully any implementation will also be 'future-proof' by adding a new entry for fanart link in the music database (in the way that it will not be too much work to extend it later) so that any such music-websites pops up in in the future that could be scraped for FanArt.
Does anyone know of any website where music-artist FanArt can be searched for in a unified way (maybe even via an open API)?
reason is db storage - you will want to store all fanart info in a single field, not 6 dwords + 1 string or whatever. something along CScraperUrl (dont laugh too much at my nasties in there).
But i agree a style guide is also a solution.
IOW at this point, in a basic state, Fanart is working! However with that said, there is a lot of cleanup and optimization that will need to be done. Since i'm unfamiliar with a lot of the code i'm working with, i'll talk to JM tonight about that. Also theres bound to be bugs :p In addition at this time the fanart support is limited to only the first returned fanart from TVDB, and local fanart is not supported.
Despite that though, the fact is we're really close and I would expect something to hit SVN within the next few days.
Is the testskin public available?
It would be handy to see the coding :)
Sorry i have to giggle at this one :) agathorn and co. will understand why...
And no mate its not available currently.
You never do anything small do you :)
I'd recommend still having only 6 colors, perhaps 3 auto and the 3 chosen. 6 seemed kinda large to begin with.
Not to mention that if the amount of returned colors changes, I got a lot of code to rework :p
So hopefully, if my code passes muster, this should be in XBMC very soon.
http://www.cs.rit.edu/~ncs/color/t_convert.html
http://xbmc.pastebin.org/25391
Note the tvdb scraper changes are not included.
And here is what ended up in SVN:
http://xbmc.svn.sourceforge.net/viewvc/xbmc?view=rev&revision=12300
And because I'm feeling especially generous (or more to the point am just plain bored :p) here's the SVN mailing for that commit (i.e. unified diff):
http://xbmc.pastebin.org/25575
Cheers,
Jonathan
One thing you'll need to watch is that the colors for text are in general passed to the GUITextLayout class (where the text is cached) so you'll need them there as well.
Any ideas you have would be great to know - we can chat via IRC or gchat or whatever if you like - PM me for my gmail info, and let me know when a good time for you is. I'm normally around 8-22 NZ time.
Cheers,
Jonathan
It is VERY late (2am for me) at the moment, so I will be waiting until tomorrow to update the wiki. However I did want to take a moment to just briefly cover things for you.
First off, this is INITIAL support. It is basic, and can/will be expanded. Local fanart is NOT supported. At this time only fanart scraped from TVDB is supported.
I did manage to work in the code for choosing fanart, which I initially didin't expect to be in right away. So you do have the ability to select which fanart image you want to use for a TV show.
While this code has been tested by a few people, it is a lot of code all together and my familiarity with the guts of XBMC isn't exactly expert level :p so there may very well be bugs. If you find any please just let me know.
Skin authors I will make another post inthe Skin Development section with the skinning details.
Curious how this was going?
I went and reset the colors on my fanart to save you the trouble.
I'd be interested in looking at it, paste it on pastebin.
In any case, voting on fan art = good results when scraping. Keep that in mind. :)That is great! ...off-topic; will the same rating-system be implemented for TV-show banners as well? :cool:
if you want to look at the changes, just fetch the diff from svn
It is already. I'll probably be working on the Bayesian stuff over the next week, since the wife and baby will be out of town. I'm also enhancing the colors a little more, which will probably result in Colors 1-3 being the best ones for skins to implement. I'll post more tomorrow, after I get it working as I want.
I want to. Unfortunately in looking at it, the system really wasn't designed to be universal. Ideally every tag should be able to parse an infolabel, but it looks like it just wasn't set up to allow this. Without a major rewrite I don't see it happening, but you know the code better than I.
Right now i'm just handling required tags on a per-case basis, and expanding the infolabels at render time for the colors. However it isn't done, and i'm having some problems with it so I may step back a few levels and re-think it. Certainly open to suggestions.
CLICK THEM TO GET BIG ONES
http://i13.photobucket.com/albums/a273/Jezz_X/temp/th_screenshot005-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/temp/screenshot005-1.jpg) http://i13.photobucket.com/albums/a273/Jezz_X/temp/th_screenshot004-1.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/temp/screenshot004-1.jpg) http://i13.photobucket.com/albums/a273/Jezz_X/temp/th_screenshot002.jpg (http://i13.photobucket.com/albums/a273/Jezz_X/temp/screenshot002.jpg)
DOH!
Also make sure you do the IsEmpty() check on colors as well if you plan to use the color labels.
It is planned, but it will be after the basics are in.
You can place a fanart.jpg, or fanart.png file in the shows main folder, IE:
TelevisionShowsStargate Atlantisfanart.jpg
And XBMC will use that as the fanart image. This method does NOT provide color information.
If a show already has fanart assigned to it, the fanart.jpg method wont' work, because it won't override what you already had set (for safety :p) so in order to change it simlply go to the Choose Fanart window, select BROWSE, and then select the local image you want to use as fanart.
ah thanks dude!
#If you have any other info about this subject , Please add it free.# |
