FanArt and Thumbnails Naming-Standard and File-Structure Convension Rationalisation?
#38
I've added the regex required to parse the filenames, and added support for subtitles also. Also fixed the '.' issue in media titles... using the '^' character as a field delimiter will allow any number of '.'s in the fields.



Filenaming Schema

note:
Fanart = Large image / wallpaper, usually full screen representing the media
Coverart = The image you'd expect to see on the front of the box (DVD, CD case)
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
Discimage = The image you'd expect to see printed on the DVD or CD media (a round image)
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.movieframegrab.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


<moviename>.movie.fanart.landscape.<n>
<moviename>.movie.fanart.portrait.<n>
<moviename>.movie.coverart.landscape.<n>
<moviename>.movie.coverart.portrait.<n>
<moviename>.movie.banner.portrait<n>
<moviename>.movie.banner.landscape<n>
<moviename>.movie.framegrab.<n>
<moviename>.movie.discimage.<n>
<moviename>.movie.logo.<n>

Examples:
Star Wars.movie.fanart.landscape.01.jpg
Superman.movie.coverart.portrait.jpg

[COLOR="Black"]Regex for the above is:

(.*)(\.movie.*)$



<tvshow>.tvshow.fanart.landscape.<n>
<tvshow>.tvshow.fanart.portrait.<n>
<tvshow>.tvshow.coverart.landscape.<n>
<tvshow>.tvshow.coverart.portrait.<n>
<tvshow>.tvshow.banner.portrait.<n>
<tvshow>.tvshow.banner.landscape.<n>
<tvshow>.tvshow.framegrab.<n>
<tvshow>.tvshow.discimage.<n>
<tvshow>.tvshow.logo.<n>
<tvshow>^<season>.tvshow.fanart.landscape.<n>
<tvshow>^<season>.tvshow.fanart.portrait.<n>
<tvshow>^<season>.tvshow.coverart.portrait.<n>
<tvshow>^<season>.tvshow.coverart.landscape.<n>
<tvshow>^<season>.tvshow.banner.portrait.<n>
<tvshow>^<season>.tvshow.banner.landscape.<n>
<tvshow>^<season>.tvshow.framegrab.<n>
<tvshow>^<season>.tvshow.discimage.<n>
<tvshow>^<season>^<episode>.tvshow.fanart.landscape.<n>
<tvshow>^<season>^<episode>.tvshow.fanart.portrait.<n>
<tvshow>^<season>^<episode>.tvshow.coverart.portrait.<n>
<tvshow>^<season>^<episode>.tvshow.coverart.landscape.<n>
<tvshow>^<season>^<episode>.tvshow.banner.landscape.<n>
<tvshow>^<season>^<episode>.tvshow.framegrab.<n>
<tvshow>^<season>^<episode>.tvshow.discimage.<n>

Examples:
Friends.tvshow.fanart.landscape.jpg
The Simpsons^01^12.tvshow.framegrab.04.jpg

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



<artist>.music.fanart.landscape.<n>
<artist>.music.fanart.portrait.<n>
<artist>.music.coverart.<n>
<artist>.music.banner.landscape.<n>
<artist>.music.banner.portrait.<n>
<artist>.music.discimage.<n>
<artist>.music.logo.<n>
<artist>^<album>.music.fanart.landscape.<n>
<artist>^<album>.music.fanart.portrait.<n>
<artist>^<album>.music.coverart.<n>
<artist>^<album>.music.banner.landscape.<n>
<artist>^<album>.music.banner.portrait.<n>
<artist>^<album>.music.discimage.<n>
<artist>^<album>^<track>.music.fanart.landscape.<n>
<artist>^<album>^<track>.music.fanart.portrait.<n>
<artist>^<album>^<track>.music.coverart.<n>
<artist>^<album>^<track>.music.banner.landscape.<n>
<artist>^<album>^<track>.music.banner.portrait.<n>
<artist>^<album>^<track>.music.discimage.<n>

Examples:
Madonna.music.fanart.landscape.jpg
Bon Jovi^Greatest Hits.music.coverart.jpg

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



<genre>.genre.fanart.landscape.<n>
<genre>.genre.fanart.portrait.<n>
<genre>.genre.coverart.landscape.<n>
<genre>.genre.coverart.portrait.<n>
<genre>.genre.banner.landscape.<n>
<genre>.genre.banner.portrait.<n>
<genre>.genre.framegrab.<n>

Examples:
Rock.genre.fanart.landscape.jpg
Comedy.genre.fanart.landscape.02.jpg

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



<audioformat>.mediainfo.audio.mono
<audioformat>.mediainfo.audio.colour
<videoformat>.mediainfo.video.mono
<videoformat>.mediainfo.video.colour
<resolution>.mediainfo.resolution.mono
<resolution>.mediainfo.resolution.colour
<studio>.mediainfo.studio.mono
<studio>.mediainfo.studio.colour
<source>.mediainfo.source.mono
<source>.mediainfo.source.colour
<played>.mediainfo.HasBeenPlayed.mono
<played>.mediainfo.HasBeenPlayed.colour
<lang>.mediainfo.subtitle.mono
<lang>.mediainfo.subtitle.colour
[/COLOR]

Examples:
mp3.mediainfo.audio.colour
h264.mediainfo.video.mono
true.mediainfo.HasBeenPlayed.mono
fr.mediainfo.subtitle.mono

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






NOTES:
*The very wordy examples given above should be abbreviated at some point, they are here to make the examples more readable. So, for instance, Music.Fanart might end up being abbreviated to MusicFA or similar.

*I had envisaged that a user COULD omit the ".landscape" and ".portrait" elements, so if they wished... they could simply have a filename like this

Southpark.Season01.tvshow.coverart.jpg

This would give the SAME cover art in both landscape and portrait modes

*The ^ delimiter is used to allow media titles to have '.' character in them, and makes parsing very easy

*The seemingly redundant .movie ".tvshow" and ".music" etc are needed to prevent namespace collisions where Movie / TVshow / Artist items have the same title.

*We might need a way to figure for unicode characters to be encoded in the filename (for the titles). But this problem must already exist with all media right? We just need to clarify how it's resolved / handled

*For MediaInfo files, it's unclear if there needs to be one mediainfo file for EVERY (say) studio, or if it would be possible to create a "disney.mediainfo.studio" file that would be found for any studio containing the word "Disney"

*MediaInfo have ".mono" and ".colour" options, this is because the typical usage of this type of art is to act as an overlay / icon / indicator. Since some skins are light, and some dark... the icon would need to be visible in both cases... hence two versions... I could have relied on these images being monochrome and therefore 'invertible' but I felt this was too much of an assumption. So this way, you can have colour ones if you wish.
Just to make this clear....
".mono" = White logo on transparent background... Any skin can then colourize the image to fit the skin theme accordingly
".colour" = Full Colour logo on transparent background... so a skin should just display the logo 'as is'
Reply


Messages In This Thread
[No subject] - by spiff - 2009-04-27, 18:11
Hummm - by AnalogKid - 2009-04-27, 18:27
[No subject] - by spiff - 2009-04-27, 18:37
[No subject] - by AnalogKid - 2009-04-27, 21:59
[No subject] - by fekker - 2009-04-27, 23:25
Depends... - by AnalogKid - 2009-04-28, 02:16
[No subject] - by jmarshall - 2009-04-28, 02:49
[No subject] - by Bram77 - 2009-04-28, 03:46
oooh excellent news.. - by AnalogKid - 2009-04-28, 04:37
Resume the discussion? - by AnalogKid - 2009-06-03, 17:25
[No subject] - by jmarshall - 2009-06-04, 00:01
[No subject] - by AnalogKid - 2009-06-04, 20:37
[No subject] - by bidossessi - 2009-06-06, 11:21
[No subject] - by tvdb-scott - 2009-06-07, 08:15
Some notes for reference... - by Gamester17 - 2009-06-07, 14:36
[No subject] - by AnalogKid - 2009-06-08, 12:10
[No subject] - by AnalogKid - 2009-06-08, 12:21
[No subject] - by tvdb-scott - 2009-06-08, 22:25
[No subject] - by tvdb-scott - 2009-06-08, 22:27
[No subject] - by digitalhigh - 2009-06-09, 00:54
[No subject] - by jmarshall - 2009-06-09, 01:06
[No subject] - by digitalhigh - 2009-06-09, 01:15
[No subject] - by tvdb-scott - 2009-06-09, 07:47
[No subject] - by digitalhigh - 2009-06-09, 13:01
[No subject] - by AnalogKid - 2009-06-09, 14:41
[No subject] - by jmarshall - 2009-06-10, 01:35
[No subject] - by AnalogKid - 2009-06-10, 09:51
[No subject] - by AnalogKid - 2009-06-14, 17:25
[No subject] - by digitalhigh - 2009-06-14, 17:50
[No subject] - by AnalogKid - 2009-06-14, 20:06
[No subject] - by digitalhigh - 2009-06-15, 12:57
[No subject] - by AnalogKid - 2009-06-15, 13:43
Schema Update #3 - by AnalogKid - 2009-06-15, 14:04
[No subject] - by bidossessi - 2009-06-15, 14:10
[No subject] - by AnalogKid - 2009-06-15, 15:00
[No subject] - by AnalogKid - 2009-06-15, 18:46
[No subject] - by digitalhigh - 2009-06-15, 22:49
[No subject] - by AnalogKid - 2009-06-15, 23:29
[No subject] - by jmarshall - 2009-06-15, 23:40
[No subject] - by digitalhigh - 2009-06-15, 23:45
[No subject] - by AnalogKid - 2009-06-16, 00:14
[No subject] - by digitalhigh - 2009-06-16, 00:21
[No subject] - by AnalogKid - 2009-06-16, 12:12
[No subject] - by Gamester17 - 2009-06-16, 22:43
[No subject] - by AnalogKid - 2009-06-16, 23:00
[No subject] - by jmarshall - 2009-06-17, 00:44
[No subject] - by AnalogKid - 2009-06-17, 01:16
[No subject] - by digitalhigh - 2009-06-17, 01:28
[No subject] - by AnalogKid - 2009-06-17, 02:25
[No subject] - by digitalhigh - 2009-06-17, 02:59
hmmmm - by AnalogKid - 2009-06-17, 18:52
[No subject] - by bidossessi - 2009-06-17, 19:42
[No subject] - by AnalogKid - 2009-06-17, 22:37
[No subject] - by digitalhigh - 2009-06-17, 23:31
[No subject] - by AnalogKid - 2009-06-18, 00:56
[No subject] - by digitalhigh - 2009-06-18, 01:50
[No subject] - by kortina - 2009-06-18, 03:00
[No subject] - by ccMatrix - 2009-06-24, 07:40
[No subject] - by xexe - 2009-06-24, 09:38
[No subject] - by bidossessi - 2009-06-24, 09:47
[No subject] - by TerranQ - 2009-06-24, 09:52
[No subject] - by bidossessi - 2009-06-24, 10:16
[No subject] - by xexe - 2009-06-24, 10:23
[No subject] - by bidossessi - 2009-06-24, 15:13
[No subject] - by xexe - 2009-06-24, 16:00
[No subject] - by AnalogKid - 2009-06-24, 16:22
[No subject] - by AnalogKid - 2009-06-24, 16:36
[No subject] - by AnalogKid - 2009-06-24, 16:38
[No subject] - by AnalogKid - 2009-06-24, 16:43
[No subject] - by bidossessi - 2009-06-24, 16:50
[No subject] - by AnalogKid - 2009-06-24, 17:07
[No subject] - by bidossessi - 2009-06-24, 17:15
[No subject] - by AnalogKid - 2009-06-24, 17:30
[No subject] - by bidossessi - 2009-06-24, 17:41
[No subject] - by AnalogKid - 2009-06-24, 19:02
[No subject] - by bidossessi - 2009-06-24, 20:01
[No subject] - by AnalogKid - 2009-06-24, 20:25
[No subject] - by xexe - 2009-06-24, 21:31
[No subject] - by AnalogKid - 2009-06-25, 01:52
[No subject] - by xexe - 2009-06-25, 09:28
[No subject] - by bidossessi - 2009-06-25, 11:34
[No subject] - by Ninjamawwe - 2009-06-25, 12:25
[No subject] - by AnalogKid - 2009-06-25, 13:14
[No subject] - by AnalogKid - 2009-06-25, 13:28
[No subject] - by Ninjamawwe - 2009-06-25, 13:44
[No subject] - by AnalogKid - 2009-06-25, 18:39
[No subject] - by Gangsta - 2009-06-25, 19:23
[No subject] - by xexe - 2009-06-25, 19:37
[No subject] - by Paradise - 2009-06-25, 20:20
[No subject] - by Gangsta - 2009-06-25, 21:58
[No subject] - by AnalogKid - 2009-06-25, 22:03
[No subject] - by AnalogKid - 2009-06-25, 22:10
[No subject] - by Paradise - 2009-06-25, 22:29
[No subject] - by AnalogKid - 2009-06-25, 22:57
[No subject] - by Paradise - 2009-06-25, 23:14
[No subject] - by AnalogKid - 2009-06-25, 23:37
[No subject] - by AnalogKid - 2009-06-25, 23:46
[No subject] - by Paradise - 2009-06-26, 00:15
[No subject] - by ccMatrix - 2009-06-26, 02:14
[No subject] - by Paradise - 2009-06-26, 05:16
[No subject] - by xexe - 2009-06-26, 09:54
[No subject] - by Gangsta - 2009-06-26, 11:12
[No subject] - by xexe - 2009-06-26, 11:22
[No subject] - by AnalogKid - 2009-06-26, 11:40
[No subject] - by Gangsta - 2009-06-26, 11:43
[No subject] - by xexe - 2009-06-26, 12:26
The Story So Far - by AnalogKid - 2009-06-26, 21:23
[No subject] - by AnalogKid - 2009-06-26, 21:42
Problematic use cases: - by AnalogKid - 2009-06-26, 22:08
[No subject] - by Gangsta - 2009-06-26, 23:38
[No subject] - by digitalhigh - 2009-06-27, 00:19
[No subject] - by tetsuo55 - 2009-06-27, 00:44
[No subject] - by digitalhigh - 2009-06-27, 00:57
[No subject] - by AnalogKid - 2009-06-27, 01:37
[No subject] - by AnalogKid - 2009-06-27, 01:54
[No subject] - by AnalogKid - 2009-06-27, 01:59
[No subject] - by digitalhigh - 2009-06-27, 02:28
[No subject] - by Gangsta - 2009-06-27, 03:07
[No subject] - by AnalogKid - 2009-06-27, 03:34
[No subject] - by AnalogKid - 2009-06-27, 04:08
[No subject] - by Gangsta - 2009-06-27, 04:21
NFO fallback tag - by AnalogKid - 2009-06-27, 04:43
[No subject] - by AnalogKid - 2009-06-27, 04:52
[No subject] - by Paradise - 2009-06-27, 05:36
[No subject] - by Jezz_X - 2009-06-27, 06:03
[No subject] - by Paradise - 2009-06-27, 06:30
[No subject] - by Gangsta - 2009-06-27, 06:45
[No subject] - by xexe - 2009-06-27, 10:58
[No subject] - by tetsuo55 - 2009-06-27, 11:10
[No subject] - by xexe - 2009-06-27, 11:16
[No subject] - by AnalogKid - 2009-06-27, 12:44
[No subject] - by AnalogKid - 2009-06-27, 12:52
[No subject] - by xexe - 2009-06-27, 13:06
[No subject] - by AnalogKid - 2009-06-27, 13:44
[No subject] - by digitalhigh - 2009-06-27, 18:10
[No subject] - by tetsuo55 - 2009-06-27, 20:54
[No subject] - by xexe - 2009-06-27, 23:09
[No subject] - by Gangsta - 2009-06-27, 23:46
[No subject] - by AnalogKid - 2009-06-28, 00:16
[No subject] - by xexe - 2009-06-28, 09:52
[No subject] - by Gangsta - 2009-06-28, 10:42
[No subject] - by xexe - 2009-06-28, 11:14
[No subject] - by Gangsta - 2009-06-28, 14:49
[No subject] - by xexe - 2009-06-28, 15:45
[No subject] - by AnalogKid - 2009-06-28, 16:31
[No subject] - by AnalogKid - 2009-06-28, 16:39
Back to basics - by AnalogKid - 2009-06-28, 16:54
[No subject] - by tetsuo55 - 2009-06-28, 16:55
[No subject] - by Gangsta - 2009-06-28, 18:36
[No subject] - by AnalogKid - 2009-06-28, 20:12
[No subject] - by Ninjamawwe - 2009-06-29, 09:34
[No subject] - by kortina - 2009-06-29, 10:30
[No subject] - by xexe - 2009-06-29, 11:31
[No subject] - by tetsuo55 - 2009-06-29, 11:33
[No subject] - by xexe - 2009-06-29, 12:34
[No subject] - by kortina - 2009-06-29, 14:47
[No subject] - by Gangsta - 2009-06-29, 14:55
[No subject] - by kortina - 2009-06-29, 15:13
[No subject] - by AnalogKid - 2009-06-29, 15:44
[No subject] - by tetsuo55 - 2009-06-29, 16:20
[No subject] - by Paradise - 2009-06-29, 16:30
[No subject] - by Gangsta - 2009-06-29, 16:39
[No subject] - by xexe - 2009-06-29, 16:56
[No subject] - by Gangsta - 2009-06-29, 17:10
[No subject] - by AnalogKid - 2009-06-29, 19:35
[No subject] - by digitalhigh - 2009-06-29, 23:36
[No subject] - by Gangsta - 2009-06-29, 23:57
[No subject] - by tetsuo55 - 2009-06-30, 09:43
[No subject] - by digitalhigh - 2009-06-30, 13:06
[No subject] - by AnalogKid - 2009-06-30, 14:48
[No subject] - by xexe - 2009-06-30, 16:53
[No subject] - by AnalogKid - 2009-06-30, 18:34
[No subject] - by xexe - 2009-06-30, 19:30
[No subject] - by Gangsta - 2009-06-30, 20:22
[No subject] - by AnalogKid - 2009-06-30, 21:03
[No subject] - by tetsuo55 - 2009-06-30, 21:14
[No subject] - by xexe - 2009-07-01, 01:03
Schema V0.1 - by AnalogKid - 2009-07-01, 14:34
Movies - by AnalogKid - 2009-07-01, 14:38
TV Show - by AnalogKid - 2009-07-01, 14:40
Music - by AnalogKid - 2009-07-01, 14:40
Additional - by AnalogKid - 2009-07-01, 14:42
[No subject] - by MaxNL - 2009-07-01, 14:46
[No subject] - by AnalogKid - 2009-07-01, 15:08
[No subject] - by MaxNL - 2009-07-01, 15:10
[No subject] - by tetsuo55 - 2009-07-01, 15:21
[No subject] - by AnalogKid - 2009-07-01, 15:54
[No subject] - by tetsuo55 - 2009-07-01, 20:33
[No subject] - by AnalogKid - 2009-07-01, 22:05
[No subject] - by digitalhigh - 2009-07-02, 00:42
[No subject] - by AnalogKid - 2009-07-02, 01:07
[No subject] - by Gangsta - 2009-07-02, 01:32
[No subject] - by tetsuo55 - 2009-07-02, 10:00
[No subject] - by MaxNL - 2009-07-02, 11:14
[No subject] - by AnalogKid - 2009-07-02, 12:58
[No subject] - by digitalhigh - 2009-07-02, 13:02
[No subject] - by AnalogKid - 2009-07-02, 13:38
Skin issues - by AnalogKid - 2009-07-02, 13:46
[No subject] - by tetsuo55 - 2009-07-02, 19:12
[No subject] - by digitalhigh - 2009-07-02, 22:50
[No subject] - by Gangsta - 2009-07-03, 00:15
[No subject] - by xexe - 2009-07-03, 09:43
[No subject] - by AnalogKid - 2009-07-03, 15:17
[No subject] - by digitalhigh - 2009-07-03, 17:55
[No subject] - by AnalogKid - 2009-07-03, 18:05
[No subject] - by Gangsta - 2009-07-04, 00:44
[No subject] - by AnalogKid - 2009-07-04, 01:29
[No subject] - by digitalhigh - 2009-07-04, 05:08
[No subject] - by MaxNL - 2009-07-04, 10:55
[No subject] - by xexe - 2009-07-04, 13:08
[No subject] - by Gangsta - 2009-07-04, 16:13
[No subject] - by AnalogKid - 2009-07-04, 16:36
[No subject] - by xexe - 2009-07-04, 16:50
[No subject] - by AnalogKid - 2009-07-04, 16:51
[No subject] - by AnalogKid - 2009-07-04, 17:03
[No subject] - by digitalhigh - 2009-07-04, 17:07
[No subject] - by xexe - 2009-07-04, 17:10
[No subject] - by AnalogKid - 2009-07-04, 17:34
[No subject] - by digitalhigh - 2009-07-04, 18:21
[No subject] - by AnalogKid - 2009-07-04, 22:58
[No subject] - by o_dog - 2009-07-14, 03:16
[No subject] - by AnalogKid - 2009-07-14, 18:43
[No subject] - by dleach - 2009-11-16, 21:46
[No subject] - by AnalogKid - 2009-11-16, 22:18
[No subject] - by dleach - 2009-11-17, 03:09
[No subject] - by AnalogKid - 2009-11-19, 03:09
Logout Mark Read Team Forum Stats Members Help
FanArt and Thumbnails Naming-Standard and File-Structure Convension Rationalisation?1