Hi,
For my first message, I would like to thank the FileBot developers for this application, as well as all members of this forum for their sharing of examples.
I spent a lot of time in this forum, because there are many ideas to find a solution for each way to rename media files.
Here is the way I rename my media files:
MOVIES:
For movies I wanted to classify them in the following order:
By studio (Marvel, Disney, Dreamworks, etc.), by Collection or by genre/
the title of the movie in my language, then in the original language if existing, the year, rating, if audio is not french and have subtitle = [VOSTFR] not subtitle=[VO], resolution and audio channels.
exemple:
_MOVIES\COLLECTION\JAMES─BOND─007\Goldeneye [1995] [6.9★] [tt0113189][HD][5.1].mkv
_MOVIES\GENRE\Action\Sky Hunter [2017] (空天猎) [7.2★] [tt6908536][VO][SD][5.1].mkv
_MOVIES\STUDIO\MARVEL\Avengers L'ère D'ultron [2015] (Avengers Age Of Ultron) [7.3★] [tt2395427][VOSTFR][Full HD][5.1].mkv
Code: Select all
/_MOVIES/
{any
{
info.productionCompanies*.match(
/Marvel/ : 'STUDIO/MARVEL',
/Lucasfilm/ : 'STUDIO/STAR─WARS',
/DC / : 'STUDIO/DC─COMICS',
/Disney/ : 'STUDIO/DISNEY',
/Pixar/ : 'STUDIO/PIXAR',
/Dreamworks/ : 'STUDIO/DREAMWORKS',
/Studio Ghibli/ : 'STUDIO/STUDIO─GHIBLI'
).find()
}
{ 'COLLECTION/'+collection
.replaceFirst(/^(?i)(The)\s(.+)/, /$2, $1/)
.replaceFirst(/^(?i)(Collection of the)\s(.+)/, /$2 Collection/)
.replaceAll(/ - Saga/, "")
.replaceAll(/ Collection/, "")
.replaceAll(/Saga Collection/, "")
.replaceAll(/[`´‘’ʻ""“”]/, "'")
.replaceAll(/[:*?"<>|?]/)
.replaceAll(/[*\s]+/, "─")
.upper()
}
{
def genreOrder = ['Anilation': 1, 'Comedy': 2, 'Horror': 3, 'Science-Fiction': 4, 'Adventure': 5, 'Romance': 6, 'Drama': 7, 'Action': 8].withDefault{ 100 }
'GENRE/'+genres.toSorted{ genreOrder[it] }[0]
}
}/
{
norm = {
it
.upperInitial()
.lowerTrail()
.replaceTrailingBrackets()
.replaceAll(/[`´‘’ʻ""“”]/, "'")
.replaceAll(/[:*?"<>|?]/)
.replaceAll(':', 'ː')
.replaceAll(/[?]/, "?")
}
; norm(n)
}
[{y}]
{if (norm(n) != norm(primaryTitle)) ' ('+norm(primaryTitle)+')'}
{" ["+rating+"★]"}
{" ["+imdbid+"]"}
{'fr' in text.language ? '[VOSTFR]' : 'VO'}
{vf == /2160p/ ? '[4K]' : vf =~ /1080p/ ? '[Full HD]' : vf =~ /720p/ ? '[HD]' : '[SD]'}[{channels}]
TV SHOW:
For the Series, I classified them by the name of the series + year + number of seasons + number of episodes /
Sub folders with 1 folder by season + number episodes /
Title Serie + Name Episode + if audio is not french and have subtitle = [VOSTFR] not subtitle=[VO], resolution and audio channels.
exemple:
_SERIES\L'AGENCE TOUS RISQUES [1983] [5 Saison, 98 Episodes]\The A-Team [Saison 05-13 épisodes]\L'Agence Tous Risques [1983] - S05E01 - Dishpan Man [SD][2.0].mp4
Code: Select all
/_SERIES/
{
norm = {
it
.upper()
.replaceTrailingBrackets()
.replaceAll(/[`´‘’ʻ""“”]/, "'")
.replaceAll(/[:*?"<>|?]/)
.replaceAll(':', 'ː')
.replaceAll(/[?]/, "?")
.replaceAll(/[*\s]+/, " ")
}; norm(n)
} [{y}] [{episodelist.season.max()} Saison, {episodelist.count{ it.episode }} Episodes]/
/{localize.english.n.replaceAll(/[!?.]+$/).replaceAll(/[`´‘’ʻ""“”]/, "'").replaceAll(/[:*?"<>|?]/).upperInitial().replaceTrailingBrackets().lowerTrail().replacePart(', Part $1')}
[Saison {s.pad(2)}-{episodelist.count{ it.episode && it.season == s }} épisodes]/
{
norm = {
it
.upperInitial()
.replaceTrailingBrackets()
.replaceAll(/[`´‘’ʻ""“”]/, "'")
.replaceAll(/[:*?"<>|?]/)
.replaceAll(':', 'ː')
.replaceAll(/[?]/, "?")
.replaceAll(/[*\s]+/, " ")
}; norm(n)
} [{y}]
- {s00e00} - {localize.english.t.replaceAll(/[!?.]+$/).replaceAll(/[`´‘’ʻ""“”]/, "'").replaceAll(/[:*?"<>|?]/).lowerTrail().replacePart(', Part $1')}
{'fr' in text.language ? '[VOSTFR]' : '[VO]'}
{vf == /2160p/ ? '[4K]' : vf =~ /1080p/ ? '[Full HD]' : vf =~ /720p/ ? '[HD]' : '[SD]'}[{channels}]
MUSIC:
For the music I treat them before with musicbrainz, then with mp3tag, then with Filebot.
I classify them in files according to:
File Format (if MP3 -> _MP3 _) / Genre (if no kind -> _No_Genre _) / Artist / Album / Artist - Title [Bitrate] .ext
exemple:
_MUSIC\_MP3_\_NO_GENRE_\ACDC\Acdc - Tnt [128 kbps].mp3
_MUSIC\_MP3_\SERTANEJO\LEANDRO E LEONARDO\TE AMO DEMAIS\Leandro E Leonardo - 002 - Tudo Me Lembra Você [192 kb s].mp3
_MUSIC\_FLAC_\HEAVY METAL\METALLICA\ONE OF 282\Metallica - 001 - Of Wolf And Man [1 048 kb s].flac
Code: Select all
/_MUSIC/{'_'+ext.upper()+'_'}/
{any
{genre
.tokenize(',')
.first()
.replace(':' : 'ː')
.replaceAll(/[`´‘’ʻ""“”]/, "")
.replaceAll(/[.:*?"<>|?]/)
.replaceAll(/&/,"and")
.replaceAll(/#/,"number")
.replaceTrailingBrackets()
.lowerTrail()
.upper()
}
{'_NO_GENRE_'}
}/
{
artist
.replace(':' : 'ː')
.replaceAll(/[`´‘’ʻ""“”]/, "")
.replaceAll(/[.:*?"<>|?]/)
.replaceAll(/&/,"and")
.replaceAll(/#/,"number")
.replaceTrailingBrackets()
.lowerTrail()
.upper()
}/
{
album
.replaceAll(/&/,"and")
.replaceAll(/#/,"number")
.replace(':' : 'ː')
.replaceAll(/[`´‘’ʻ""“”]/, "")
.replaceAll(/[.:*?"<>|?]/)
.replaceTrailingBrackets()
.lowerTrail()
.upper()
}
/
{
artist
.replace(':' : 'ː')
.replaceAll(/[`´‘’ʻ""“”]/, "")
.replaceAll(/[.:*?"<>|?]/)
.replaceAll(/&/,"and")
.replaceAll(/#/,"number")
.replaceTrailingBrackets()
.lowerTrail()
.upperInitial()
}
{any
//{media.'part/position_total' == null ? null : '/CD ' + media.'part/position'}
{' - '+pi.pad(3)+' - '}
{' - '}
}
{
t
.replace(':' : 'ː')
.replaceAll(/[`´‘’ʻ""“”]/, "")
.replaceAll(/[.:*?"<>|?]/)
.replaceAll(/&/,"and")
.replaceAll(/#/,"number")
.replaceTrailingBrackets()
.lowerTrail()
.upperInitial()
}
[{audio[0].bitratestring.replace('/', 'p')}]