Kodi Community Forum
FanArt and Thumbnails Naming-Standard and File-Structure Convension Rationalisation? - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Discussions (https://forum.kodi.tv/forumdisplay.php?fid=222)
+--- Forum: Feature Requests (https://forum.kodi.tv/forumdisplay.php?fid=9)
+--- Thread: FanArt and Thumbnails Naming-Standard and File-Structure Convension Rationalisation? (/showthread.php?tid=49801)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


Schema V0.1 - AnalogKid - 2009-07-01

Filenaming Schema V0.1

The AIM:
This schema is designed to resolve a number of issues with the current plethora of possible artwork naming schemes AND improve skin functionality by:
1) Offering a totally consistent naming convention for art
2) Being completely unambiguous about what the art is doing
3) Is placeable ANYWHERE in the filesystem (does not 'have' to reside alongside the media, although it my if it wishes)
4) Allows a wider range of art than is currently possible
5) Supports different orientations of art (landscape and portrait)... so skins can pick up whichever style they require
6) Is possible to rapidly port the existing scheme to this proposed scheme via a script (which is also reversible!)
7) Allows for art at all levels of media (eg. Tv show, season AND episode level for all artwork types)


The Spec
note:
Fanart = Large image / wallpaper, usually full screen representing the media
Cover.Front =The image you'd expect to see on the front of the box (DVD, CD case)
Cover.Back = The image you'd expect to see on the back of the box (DVD, CD case)
Cover.Inner = The image you'd expect to see on the liner notes / inside the cover)
Cover.Sleeve = The unfolded back, spine and front cover all in one
Cover.Disc = The image of the physical disc label (usually a round image)
Poster = Usually a 'Promotional' poster... promoting a movie or album release.
Banner = A highly oblong image usually landscape representing the media
Framegrab = A snapshot of the media (screen shot) of the playing TV show or movie, not applicable to Audio
Logo = A 'symbol' associated with the media, usually an iconic logo or symbol
Genre = A general classification for the category/style of media. e.g. Comedy, Rock, Horror, Jazz, Documentary.
<n> = Some number to allow multiple instances of artwork types. e.g. Starwars.movie.framegrab.001
MediaInfo = 'Flags' as they are termed today. I felt the term MediaInfo was easier to understand
HasBeenPlayed = 'Watched', but a more generic term to cover Audio and even Images


Movies - AnalogKid - 2009-07-01

MOVIE ART

Items in GREEN are optional


<moviename>.movie.fanart[COLOR="green"](.landscape/portrait).<n>

<moviename>.movie.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<moviename>.movie.poster(.landscape/portrait).<n>
<moviename>.movie.banner(.landscape/portrait).<n>
<moviename>.movie.framegrab.<n>
<moviename>.movie.logo.<n>
[/color]

Regex for the above is:
(.*)(\.movie.*)$




FAQ:
Q. What does <moviename> mean?
A. Moviename is ONE of the following (in priority order, where the first found match is used)

1) whatever name is specified in the <fsfriendlyname> field of the movie's NFO file
(This is a new tag to allow the user to specify any name they please that is file system friendly (overcomes ANY weird characters or movie title length issues)
2) whatever name is specified in the <id> field of the movie's NFO file
(This allows someone to have their art based on the IMDB ID of a movie if they wish)
3) whatever name is specified in the <title> field of the movie's NFO file
(Allows art to be named based on the official title of the movie)
4) whatever name is used for the movie (or containing folder name) of the media file
Allows art to be based on a match with the name the user used in their filesystem


Examples:
My Flat Movies\
----- Starwars.avi
----- Superman.avi
----- Superman.nfo (<id>tt3849485<id>)
----- movie.avi
----- movie.nfo (<title>Mr Goodbar<title>)

My Foldered Movies\
---- Ghostbusters\
------- movie.avi
---- I Know What You Did Last Summer
------- movie.avi
------- movie.nfo (<fsfriendlyname>I Know What<fsfriendlyname>)


\My Artwork\
----- Starwars.movie.fanart.jpg
----- tt3849485.movie.fanart.jpg
----- Mr Goodbar.movie.fanart.jpg
----- Ghostbusters.movie.fanart.jpg
----- I Know What.movie.fanart.jpg


TV Show - AnalogKid - 2009-07-01

TV Show ART

Items in GREEN are optional

<tvshow>.tvshow.fanart(.landscape/portrait).<n>
<tvshow>.tvshow.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<tvshow>.tvshow.poster(.landscape/portrait).<n>
<tvshow>.tvshow.banner(.landscape/portrait).<n>
<tvshow>.tvshow.framegrab.<n>
<tvshow>.tvshow.logo.<n>
<tvshow>^<season>.tvshow.fanart(.landscape/portrait).<n>
<tvshow>^<season>.tvshow.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<tvshow>^<season>.tvshow.poster(.landscape/portrait).<n>
<tvshow>^<season>.tvshow.banner(.landscape/portrait).<n>
<tvshow>^<season>.tvshow.framegrab.<n>
<tvshow>^<season><episode>.tvshow.fanart(.landscape/portrait).<n>
<tvshow>^<season><episode>.tvshow.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<tvshow>^<season><episode>.tvshow.poster(.landscape/portrait).<n>
<tvshow>^<season><episode>.tvshow.banner(.landscape/portrait).<n>
<tvshow>^<season><episode>.tvshow.framegrab.<n>


Regex for the above is:
TBD




FAQ:
Q. What does <tvshow> mean?
A. <tvshow> is ONE of the following (in priority order, where the first found match is used)

1) whatever name is specified in the <fsfriendlyname> field of the TV Show's NFO file
2) whatever name is specified in the <id> field of the TV Show's NFO file
3) whatever name is specified in the <title> field of the TV Show's NFO file
4) whatever name is used for the TV Show (or containing folder name) of the media file

Q. What does <Season> mean?
A. <Season> is denoted as S<nn> (e.g. S01)

Q. What does <Episode> mean?
A. <Episode> is denoted as E<nn> (e.g. E01) and can only exist alongside the Season (e.g. S01E01)


Examples:
My Foldered TV Shows\
---- House\
------- S01E01.avi
---- TheApp\
------- S01E01.avi
------- tvshow.nfo (<title>The Apprentice (UK)<title>)


\My Artwork\
----- House.tvshow.fanart.jpg
----- The Apprentice (UK).tvshow.fanart.jpg


Music - AnalogKid - 2009-07-01

Music ART

Items in GREEN are optional

<artist>.music.fanart(.landscape/portrait).<n>
<artist>.music.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<artist>.music.poster(.landscape/portrait).<n>
<artist>.music.banner(.landscape/portrait).<n>
<artist>.music.logo.<n>
<artist>^<album>.music.fanart(.landscape/portrait).<n>
<artist>^<album>.music.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<artist>^<album>.music.poster(.landscape/portrait).<n>
<artist>^<album>.music.banner(.landscape/portrait).<n>
<artist>^<album>^<track>.music.fanart(.landscape/portrait).<n>
<artist>^<album>^<track>.music.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<artist>^<album>^<track>.music.poster(.landscape/portrait).<n>
<artist>^<album>^<track>.music.banner(.landscape/portrait).<n>


Regex for the above is:
([^\^]*)\^?([^\^]*)?\^?([^\^]*)?(\.music.*)






FAQ:
Q. What does <artist> mean?
A. <artist> is ONE of the following (in priority order, where the first found match is used)

1) whatever name is specified in the <fsfriendlyname> field of the Artist's NFO file
2) whatever name is specified in the <id> field of the Artist's NFO file
3) whatever name is specified in the <title> field of the Artist's NFO file
4) whatever name is specified in for the artist in the embedded tag data of the media file
5) whatever name is used for the artist (or containing folder name) of the media file

Q. What does <Album> mean?
A. <album> is ONE of the following (in priority order, where the first found match is used)

1) whatever name is specified in the <fsfriendlyname> field of the Album's NFO file
2) whatever name is specified in the <name> field of the Album's NFO file
3) whatever name is specified in for the album in the embedded tag data of the media file
4) whatever name is used for the artist (or containing folder name) of the media file


Q. What does <Track> mean?
A. <Track> is denoted as <nn> (e.g. The Beatles.Anthology.01).


Examples:
My Messy Music
---- Abba\
------- Greatest Hits
----------- 01 Super Trooper.mp3
---- ACDC\
------- Artist.nfo (<name>AC\DC<name>)
------- H2H
----------- Album.nfo(<name>Highway To Hell<name>)
----------- 01 Highway To Hell.mp3
---- messy.mp3 (ID3 tag = Sting - Fields Of Gold - 04 Seven Days)


\My Artwork\
----- Abba.music.fanart.jpg
----- Abba.Greatest Hits.fanart.jpg
----- Abba.Greatest Hits.01.fanart.jpg
----- ACDC.fanart.jpg
----- ACDC.Highway To Hell.fanart.jpg
----- Sting.Fields Of Gold.04.fanart.jpg


Additional - AnalogKid - 2009-07-01

Additional ART
(Not specific to a media file)

Please note:
This section is currently very much in it's infancy and lags behind the Movie, TV and Music art.
It is detailed here to help summarise currently theoretical ideas and should not be taken as a definitive solution (yet).


Genres ('type' of movie, tvshow or music)
<genre>.genre.fanart[COLOR="green"](.landscape or .portrait).<n>
<genre>.genre.cover(.front/back/inner/sleeve/disc)(.landscape/portrait).<n>
<genre>.genre.banner(.landscape or .portrait).<n>
<genre>.genre.framegrab.<n>
[/COLOR]

Media Info (Technical information related to the media format or status)
<audioformat>.mediainfo.audio[COLOR="Green"](.mono or .color)
<videoformat>.mediainfo.video(.mono or .color)
<resolution>.mediainfo.resolution(.mono or .color)
<source>.mediainfo.source(.mono or .color)
(True or False).mediainfo.HasBeenPlayed(.mono or .color)
<lang>.mediainfo.subtitle(.mono or .color)
(True or False).mediainfo.IsOffline(.mono or .color)
[/COLOR]

Production Info (Elements related to the production of the media)
<Person>.prodinfo.person[COLOR="Green"](.portrait or .landscape)
Note: 'Person' is just a person, actor or director, or any other contributing individual!
<studio>.prodinfo.studio(.mono or .color)
<year>.prodinfo.year(.portrait or .landscape)[/COLOR]


- MaxNL - 2009-07-01

AnalogKid Wrote:3) <Moviename> could match the actual corresponding media filename, however, this requires end users to have their mediafiles uniquely named across all folders and sources.

AnalogKid regarding this point I think that it is impossible to have a name collision of mediafiles as it is impossible to have two object named the same on every filesystem existent. Of course if you consider the whole name: path + name + extension.

Regards
Max


- AnalogKid - 2009-07-01

MaxNL Wrote:AnalogKid regarding this point I think that it is impossible to have a name collision of mediafiles as it is impossible to have two object named the same on every filesystem existent. Of course if you consider the whole name: path + name + extension.

Regards
Max

We've already discussed this. It is POSSIBLE to have two media files of the same name.

Source 1
My Movies\Starwars.avi

Source 2
My Movies\Starwars.avi

We cannot have the complete path in the <moviename> so duplicates can exist, BUT we have overcome this problem within the NFO file.


- MaxNL - 2009-07-01

AnalogKid Wrote:7) Allows for art at all levels of media (eg. Tv show, season AND episode level for all artwork types)

Here I spot another point that need to be clarified.
What we want to define as media and therefore be able to get the "ART"?
Here we are talking about:
  1. Movie
  2. TvShow
  3. Season
  4. Episode
  5. Artist
  6. Album
  7. Song
  8. Genre
  9. Flags
But what about other stuff. I mean there could be more and more "objects" we could associate ART.
For example year <year>.yearart.xxx.xxx as in:
  • 2000.yearart.fanart(.landscape/portrait).<n>
  • 2000.yearart.poster(.landscape/portrait).<n>
  • 2000.yearart.banner(.landscape/portrait).<n>
  • 2000.yearart.logo.<n>
Like year I'm thinking about: writer, actor, director, rating, etc etc etc; generally speaking every single attribute of any single object xbmc is using could be used as "ART OBJECT", and with the use of script like th eone NUKA has made for the recent played you can create even more attribute to use. As you can see only imagination can stop you from declare some kind of art for any kind of object.
So what about the kind of "OBJECT" that can have or not have "ART" ?
Who is going to decide ? As I think to have a very flexible solution change to xbmc should be done.
There will be anyway a "backdoor", in the skin to do something NOT FORESEEN? (just like serenity, experience, aeon, do)

I'm really sorry if I take the discussion out of the intended path (just ignore the post in this case), but what I'm really trying to underline is the impossibility of the task, if we don't settle for very few rules and very strict. In all the other cases better to leave everything like now and let the skinner invent and handle whatever their creativity suggest.

Regards
Max


- tetsuo55 - 2009-07-01

Very impressive AnalogKid, except for the <moviename> part you completely nailed it.


- AnalogKid - 2009-07-01

tetsuo55 Wrote:Very impressive AnalogKid, except for the <moviename> part you completely nailed it.

Not sure if you read a version I was 'editing'... I was saving my posts in mid-edit...

take another look and if I've missed something let me know.

I think it's damn good now... easy for dummies, but also power users can do some smarter stuff too.
The spec looks complicated, but it's actually pretty easy once you understand it.

it SHOULD keep xexe happy too! (I hope).


- tetsuo55 - 2009-07-01

I checked it out again, still looks as good.

I party agree with MaxNL and(if the proposal is to be complete for all currently available artwork) am missing the following artwork:

-Cast&Crew for movies and tv shows (http://www.themoviedb.org/person/527)


- AnalogKid - 2009-07-01

tetsuo55 Wrote:I checked it out again, still looks as good.

I party agree with MaxNL and(if the proposal is to be complete for all currently available artwork) am missing the following artwork:

-Cast&Crew for movies and tv shows (http://www.themoviedb.org/person/527)

hummm...

I'm not wanting to stifle progress, but on the other hand.... wary of going into art madness too.

So here's my take:

The art in the current spec is all art that can be associated with a media file PURELY based on it's name.

So The movie covers etc and music are all figurable without needing the internet or additional file (no NFO is needed).

However, actor art, year etc etc all need additional movie info to the pulled from the net (scrapped) and then linked to art.

Another potential issue is determining what XBMC itself will link to via it's internal databases. So, when a skin asks for "Starwars front cover" please... XBMC can supply it VERY rapidly.
Other artwork elements might have to be searched for 'on the fly'.

I think we have to draw a line somewhere, and I am loathe to do that, but I think there has to be a two tier type system...

Tier 1:

All the artwork that an reasonably be associated as representing / promoting a specific media file and requires no specific movie meta data. e.g. Posters, Banners, Covers, Disc images etc... stuff that is usually specific to one media file (or entity)

Tier 2:

All 'associated' artwork that does not represent / promote the specific media, but instead represents attributes of a movie. e.g. Actors, Crew, Location, Year etc... stuff that could be shared across multiple media files (or entities)



I am thinking out aloud here, so would be good to hear your views, AND it's also to be noted that the schema seems flexible enough to accommodate new types.

I just worry that the list of possible artworks will become absurd even before we manage to persuade the XBMC to consider this proposal.

Perhaps the best analogy would be "let's try to get a foot in the door with the XBMC team and see if this can be implemented"... THEN let it expand a little more in the future?

Just my view!


oh finally, I could reasonably be persuaded that Actors and Directors MIGHT be worthwhile.
Year art is a much harder sell (even though I CAN see a really sexy notion of having a view sorted by year... and the backdrops changing to reflect the era etc).


I feel really bad saying "we have to draw a line", but we're trying to sell this puppy to the XBMC guys... we might not want to mention that it could have fleas too!


- digitalhigh - 2009-07-02

AnalogKid Wrote:hummm...

I'm not wanting to stifle progress, but on the other hand.... wary of going into art madness too.

So here's my take:

The art in the current spec is all art that can be associated with a media file PURELY based on it's name.

So The movie covers etc and music are all figurable without needing the internet or additional file (no NFO is needed).

However, actor art, year etc etc all need additional movie info to the pulled from the net (scrapped) and then linked to art.

Another potential issue is determining what XBMC itself will link to via it's internal databases. So, when a skin asks for "Starwars front cover" please... XBMC can supply it VERY rapidly.
Other artwork elements might have to be searched for 'on the fly'.

I think we have to draw a line somewhere, and I am loathe to do that, but I think there has to be a two tier type system...

Tier 1:

All the artwork that an reasonably be associated as representing / promoting a specific media file and requires no specific movie meta data. e.g. Posters, Banners, Covers, Disc images etc... stuff that is usually specific to one media file (or entity)

Tier 2:

All 'associated' artwork that does not represent / promote the specific media, but instead represents attributes of a movie. e.g. Actors, Crew, Location, Year etc... stuff that could be shared across multiple media files (or entities)



I am thinking out aloud here, so would be good to hear your views, AND it's also to be noted that the schema seems flexible enough to accommodate new types.

I just worry that the list of possible artworks will become absurd even before we manage to persuade the XBMC to consider this proposal.

Perhaps the best analogy would be "let's try to get a foot in the door with the XBMC team and see if this can be implemented"... THEN let it expand a little more in the future?

Just my view!


oh finally, I could reasonably be persuaded that Actors and Directors MIGHT be worthwhile.
Year art is a much harder sell (even though I CAN see a really sexy notion of having a view sorted by year... and the backdrops changing to reflect the era etc).


I feel really bad saying "we have to draw a line", but we're trying to sell this puppy to the XBMC guys... we might not want to mention that it could have fleas too!

I agree with the two-tier concept. There should be a distinction between media-specific artwork, and images that can be used for multiple items.

Another prime example of this would be studio/codec/media images. If a user were to choose to keep their images alongside their media, it would become unnecessarily cumbersome to have the studio image stored with the movie.

However, it would still be nice to have a centralized location that is not skin-specific for these images. One folder that you can tell XBMC to look in for all Codec images, studio logos, actor images, etc...


- AnalogKid - 2009-07-02

digitalhigh Wrote:I agree with the two-tier concept. There should be a distinction between media-specific artwork, and images that can be used for multiple items.

Another prime example of this would be studio/codec/media images. If a user were to choose to keep their images alongside their media, it would become unnecessarily cumbersome to have the studio image stored with the movie.

However, it would still be nice to have a centralized location that is not skin-specific for these images. One folder that you can tell XBMC to look in for all Codec images, studio logos, actor images, etc...


I agree with this, a skin COULD supply a 'themed' pack if it wished, but the user could stick with their own too.
Im really starting to feel confident that this current proposal is looking fairly strong at the moment. A long way to go before it's ever implemented though.

But given some quite heated arguments, it's managing to meet most folks needs and be a lot more powerful than the current system, and it's still simple.

Give it a couple more days for folks to digest! someone will figure a glitch!


- Gangsta - 2009-07-02

well I think its awsome, and as I pointed out earlier, if we allow the skins to 'request' items, eg xbox adds <moviename> in whatever its guise to the requested artwork, then the coding would be rather simple on the xbmc front. it only needs to add the moviename then, report if the specified artwork is available or not.

and keeps it 100% futureproof.