POSTBUCKET - where random posts in unrelated topics go
Re: [Mac] Folder Action with Automator
It's a very bad idea to watch active download folders for changes. This could not possibly end well.
The best solution is to have Transmission call FileBot on completed downloads. Here's the setup instructions for that:
viewtopic.php?f=4&t=215#p3380
The best solution is to have Transmission call FileBot on completed downloads. Here's the setup instructions for that:
viewtopic.php?f=4&t=215#p3380
Please read the FAQ and How to Request Help.
Re: Exclude Blacklist & Series-Mappings
FS
I use FS (FullScreen) just like WS is for WideScreen
it's mostly a movie thing
or it gets used like so search/movie?query=*****+****+fs
I use FS (FullScreen) just like WS is for WideScreen
it's mostly a movie thing
or it gets used like so search/movie?query=*****+****+fs
Re: Exclude Blacklist & Series-Mappings
Please give me 1 or more example file names / paths I can test with.
Please read the FAQ and How to Request Help.
Re: Exclude Blacklist & Series-Mappings
Query Blacklist:
1.0 (e.g. MP3.1.0)
2.0 (e.g. AC3.2.0)
divx5 (Codec)
1.0 (e.g. MP3.1.0)
2.0 (e.g. AC3.2.0)
divx5 (Codec)
Re: Exclude Blacklist & Series-Mappings
I'll need the filename for testing please.
Please read the FAQ and How to Request Help.
Re: Exclude Blacklist & Series-Mappings
that was ok, but need one more
DTS.2.0
so:
(DTS|FLAC|AAC|AC3|MP3|MP4|DD|MA).?[12457][.]?[01]
some with DivX3 and DivX4
so:
DivX[345]?
btw:
do the DVDRip not need to be BEFORE the DVD to work ?
DVD|DVD5|DVD9|DVDRip
it does when I test on http://regexr.com/
DTS.2.0
so:
(DTS|FLAC|AAC|AC3|MP3|MP4|DD|MA).?[12457][.]?[01]
some with DivX3 and DivX4
so:
DivX[345]?
btw:
do the DVDRip not need to be BEFORE the DVD to work ?
DVD|DVD5|DVD9|DVDRip
it does when I test on http://regexr.com/
Re: Exclude Blacklist & Series-Mappings
FileBot will require word boundaries for each match. Then the regex FileBot effectively uses would look more like this:
Code: Select all
\b(DVD|DVD5|DVD9|DVDRip)\b
Please read the FAQ and How to Request Help.
Re: [SNIPPET] Override / Hardcode Series Names
so how do I integrate it with AMC?
Re: [SNIPPET] Override / Hardcode Series Names
You pass in your own format. The amc manual has a section on how to use custom formats.
Please read the FAQ and How to Request Help.
Re: Q&A for n00bs
I'm having an issue with running this through powershell, it simply picks the first hit on a movie, the same applies for series.
Is there any way for me to either let me pick which movie / series is or at least have it skip those files since it messes up my library.
I have been testing this out using Red Dawn, both the 1984 version and the 2012 version but both gets placed as the 1984 version.
It names and places the files correctly if they have the year in the name i.e. "Red Dawn (2012).mp4".
Code:
Below example is with "Red Dawn (2012).mp4" renamed to "Red Dawn.mp4"
Is there any way for me to either let me pick which movie / series is or at least have it skip those files since it messes up my library.
I have been testing this out using Red Dawn, both the 1984 version and the 2012 version but both gets placed as the 1984 version.
It names and places the files correctly if they have the year in the name i.e. "Red Dawn (2012).mp4".
Code:
Code: Select all
cd "D:\Google Download Stuff\Series\"
get-childItem 'D:\Google Download Stuff\Series\*.mp4' | filebot -non-strict -rename '*' --db TheTVDB --conflict auto --filter "'s' - 'e'" --format 'D:/Google Download Stuff/Media/Series/{plex[1]} ({y})/Season {s}/{plex.name}' --output 'By Series' --mode interactive
cd "D:\Google Download Stuff\Movies\"
<This section>
get-childItem 'D:\Google Download Stuff\Movies\*.mp4'| filebot -non-strict -rename '*' --mode interactive --db TheMovieDB --conflict auto --format 'D:/Google Download Stuff/Media/Movies/{n0 = n.charAt(0); n0.isDigit() ? "0-9" : n0}/{plex[1]}/{plex.name}' --output 'By First Letter'
</This section>
pause
Code: Select all
D:\Google Download Stuff>PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'D:\Google Download Stuff\Scripts\Move.ps1'"
<Ignore this, Series folder is empty>
Illegal Argument: java.nio.file.InvalidPathException: Illegal char <*> at index 0: * (*)
Rename episodes using [TheTVDB]
No media files: [*]
Failure (°_°)
</Ignore this, Series folder is empty>
Rename movies using [TheMovieDB]
Auto-detect movie from context: [D:\Google Download Stuff\Movies\Red Dawn.mp4]
[MOVE] from [D:\Google Download Stuff\Movies\Red Dawn.mp4] to [D:\Google Download Stuff\Media\Movies\R\Red Dawn (1984)\R
ed Dawn (1984).mp4]
Processed 1 files
Press Enter to continue...:
Re: Q&A for n00bs
If you're processing badly named files, make sure to try things with --action test first. Here's how I'd deal with this particular file.
Command:
Output:
Command:
Code: Select all
filebot -rename --db TheMovieDB *.mp4 --filter "y > 2000"
Code: Select all
Rename movies using [TheMovieDB]
Auto-detect movie from context: [Red Dawn.mp4]
Apply filter [y > 2000] on [12] items
Include [Red Dawn (2012)]
Include [Red Dawn (2011)]
Include [Red (2008)]
Include [Red (2002)]
Include [RED (2010)]
Include [Rockin' at the Red Dog: The Dawn of Psychedelic Rock (2005)]
Include [Assembly (2007)]
[MOVE] from [Red Dawn.mp4] to [Red Dawn (2012).mp4]
Processed 1 files
Please read the FAQ and How to Request Help.
Re: Q&A for n00bs
Hello Forum,
Since I'm new here, I think the n00b section might be the right place for my question.
No matter what I try, I cannot get deluge to run any scripts. I have created a bat file and placed in my documents folder. When executede manually everything works without any problems. But how do i get Deluge to execute my script or my bat-file?
I have tried pasting the script execute-plugin without any luck. Also I have tried putting in a full path for the bat file. C:\users\username\documents\execute.bat. With and without qoutation marks. Also without any luck. How do I get Deluge on windows to execute filebot cmd's after completet download?
Notes
Filebot is up to date.
Deluge is 1.3.15
OS is Windows 10
Since I'm new here, I think the n00b section might be the right place for my question.
No matter what I try, I cannot get deluge to run any scripts. I have created a bat file and placed in my documents folder. When executede manually everything works without any problems. But how do i get Deluge to execute my script or my bat-file?
I have tried pasting the script execute-plugin without any luck. Also I have tried putting in a full path for the bat file. C:\users\username\documents\execute.bat. With and without qoutation marks. Also without any luck. How do I get Deluge on windows to execute filebot cmd's after completet download?
Notes
Filebot is up to date.
Deluge is 1.3.15
OS is Windows 10
Re: How about sharing our format expressions?
The man hours or more like man days that I have could have saved if I had known about filebot! Fantastic tool and community.
I started using filebot a few days ago and quickly ran into a problem with naming my files based on audio stream. Turns out some of my movies do not have the best track set to the default and/or to audio[0]. I noticed others on here also wanting to have the "best" audio shown in the file name, or at least tag it with Atmos or DTS-X if it had it.
Once I started working with it I couldn't stop until I had it the way I wanted. Crouching Tiger has DTS 6Ch English on audio[0] and it is set as the default and Atmos is on [3]. I also decided to do a best audio option based on my own scale where object based sound gets a score of 10, DTS-HD MA gets a score of 20 and
AAC gets 50. I haven't fully fleshed this out.
The primary goal was to get the audio track that is set as default, which may not be [0] and use that for the file name. I also wanted to make sure my Atmos movies got tagged as such even if the Atmos track was not set as default.
Example where DTS is set as default but Atmos is available and where DTS-X is the default.
Crouching Tiger, Hidden Dragon (2000) DTS-HDMA 6Ch [Best Available TrueHD(Atmos) OB+8Ch]
The Huntsman - Winter's War (2016) DTS-HDMA(DTS-X) OB+8Ch
It iterates through all the audio channels, scores them and based on that makes the string for the audio part of the file name. It's my first Groovy code so I apologize if its not the most efficient.
I fixed a few things and instead of making another post I changed it here:
And my little piece of code for HDR. As I learn more about HDR I will add more logic.
I started using filebot a few days ago and quickly ran into a problem with naming my files based on audio stream. Turns out some of my movies do not have the best track set to the default and/or to audio[0]. I noticed others on here also wanting to have the "best" audio shown in the file name, or at least tag it with Atmos or DTS-X if it had it.
Once I started working with it I couldn't stop until I had it the way I wanted. Crouching Tiger has DTS 6Ch English on audio[0] and it is set as the default and Atmos is on [3]. I also decided to do a best audio option based on my own scale where object based sound gets a score of 10, DTS-HD MA gets a score of 20 and
AAC gets 50. I haven't fully fleshed this out.
The primary goal was to get the audio track that is set as default, which may not be [0] and use that for the file name. I also wanted to make sure my Atmos movies got tagged as such even if the Atmos track was not set as default.
Example where DTS is set as default but Atmos is available and where DTS-X is the default.
Crouching Tiger, Hidden Dragon (2000) DTS-HDMA 6Ch [Best Available TrueHD(Atmos) OB+8Ch]
The Huntsman - Winter's War (2016) DTS-HDMA(DTS-X) OB+8Ch
It iterates through all the audio channels, scores them and based on that makes the string for the audio part of the file name. It's my first Groovy code so I apologize if its not the most efficient.
I fixed a few things and instead of making another post I changed it here:
Code: Select all
{
def sPath = "";
def mHDRCol = ["BT.709" : "NO", "BT.2020" : "YES"];
def mWebSrc = ["AMZN" : "AMZN", "NF" : "NF", "HBO" : "HBO"];
def hiResPath = "";
boolean isHDR = false;
if(self.video[0].bitdepth != null && self.bitdepth >= 10 && self.video[0].colourprimaries != null && mHDRCol.get(self.video[0].colourprimaries) == "YES") isHDR = true;
if(vf =~ /2160p/) hiResPath = '4k/' + video[0].Format.replace('AVC', 'x264').replace('HEVC', 'x265');
if(isHDR == true){ hiResPath += "(HDR)/" } else {hiResPath += "/"};
def VInfo = " - (FI " + vf + " ";
mWebSrc.any { k, v -> if(f.toString().contains(k)) VInfo += v + " "};
if(self.source =~ 'Remux') VInfo += fn.match(/BluRay/) else if(self.source != null) VInfo += self.source;
VInfo += " [" + video[0].Format.replace('AVC', 'x264').replace('HEVC', 'x265');
VInfo += " ";
if(isHDR == true) VInfo += " HDR " + self.bitdepth + "bit ";
if(isHDR == true && self.video[0].colourprimaries != null) VInfo += self.video[0].colourprimaries.replace(".","") + " ";
VInfo += "]";
sPath + hiResPath + plex + VInfo;
}
{def ADef = 0;
def ADefScore = 100;
def ACurrent = 100;
def ABest = 100;
def ABestIndex;
def ACnt = audio.size;
def iCnt = 0;
//map of scoring, Codec + FormatProfile with '+' and '/' stripped
def mAudioScore =[
"DTS-HDXMACore" : 10, "DTS-HDMACore" : 20, "DTS-HDMAES MatrixCore" : 20, "DTSES DiscreteCore" : 25, "DTS" : 30, "DTS-HDHRACore" : 25,
"TrueHDTrueHDAtmosTrueHD" : 10, "TrueHD" : 18,
"AC3" : 30, "AC3+" : 20, "AAC" : 50, "AAC LCLC" : 45, "AAC LC-SBRHE-AACLC" : 40,
"MPA1L3Layer 3" : 60, "MPA1L2Layer 2" : 70,
"Vorbis" : 65,
"PCM" : 90, "Qclp" : 90, "161" : 90];
//map of Codec + FormatProfile made nice for file name
def mAFP = [
"DTS-HDXMACore" : "DTS-HDMA(DTS-X)", "DTS-HDMACore" : "DTS-HDMA", "DTS" : "DTS", "DTS-HDMAES MatrixCore" : "DTS-HDMA", "DTSES DiscreteCore" : "DTS-ES", "DTS-HDHRACore" : "DTS-HDHRA",
"TrueHDTrueHDAtmosTrueHD" : "TrueHD(Atmos)", "TrueHD" : "TrueHD",
"AC3" : "AC3", "AC3+" : "DDP",
"AAC LCLC" : "AAC",
"MPA1L3Layer 3" : "MP3", "MPA1L2Layer 2" : "MP2",
"PCM" : "PCM", "Qclp" : "Qclp", "161" : "161"];
//map of Audio Channels(minus the slash) to pretty name
def mACH = [
"Object Based10" : "OB+10Ch",
"Object Based8" : "OB+8Ch", "Object Based86" : "OB+8Ch",
"Object Based6" : "OB+6Ch",
"Object Based" : "OBCh",
"9" : "9Ch",
"8" : "8Ch", "86" : "8Ch", "876" : "8Ch",
"7" : "7Ch", "76" : "7Ch",
"6" : "6Ch",
"5" : "5Ch",
"4" : "4Ch", "3" : "3Ch", "2" : "2Ch", "1" : "1Ch" ];
//Intermederia used to make finding missing strings from the maps
def CmACH = { if(mACH.get(it) != null) mACH.get(it) else " (mACH:" + it + " NOT FOUND)"};
def CmAFP = { if(mAFP.get(it) != null) mAFP.get(it) else " (mAFP:" + it + " NOT FOUND)"};
def CmAudioScore = { if(mAudioScore.get(it) != null) mAudioScore.get(it) else " (mAudioScore:" + it + " NOT FOUND)"};
//simple functions for creating audio text for file name
def GetFPSafe = {if(self.audio[it].FormatProfile != null) audio[it].FormatProfile.slash('').replace("+","") else ""};
//def GetAText = {mAFP.get( audio[it].codec + GetFPSafe(it)) + " " + mACH.get( audio[it].channels.slash('') ) };
def GetAText = {CmAFP( audio[it].codec + GetFPSafe(it)) + " " + CmACH( audio[it].channels.slash('') ) };
//Get index # that the default audio is using (only expecting 1 default audio)
audio.eachWithIndex{ a, idx -> if(call{a.default} == "Yes") ADef = idx};
//Get score for default audio
ADefScore = CmAudioScore(self.audio[ADef].codec + GetFPSafe(ADef))
//ADefScore = 50; //for your testing
//Check all audio streams, rank them against one another, get best score
for (iCnt = 0; iCnt < ACnt; iCnt++){
ACurrent = CmAudioScore(self.audio[iCnt].codec + GetFPSafe(iCnt))
if(ACurrent != null && ACurrent.toInteger() < ABest) ABestIndex = iCnt;
if(ACurrent != null && ACurrent.toInteger() < ABest) ABest = ACurrent.toInteger();
};
//end
if(ADefScore.toInteger() == ABest) GetAText(ABestIndex) + ")" else GetAText(ADef) + " [BA " + GetAText(ABestIndex) + "]" + ")";
}
And my little piece of code for HDR. As I learn more about HDR I will add more logic.
Code: Select all
{
def mHDRCol = ["BT.709" : "NO", "BT.2020" : "YES"];
if(bitdepth >= 10 && mHDRCol.get(self.video[0].colourprimaries) == "YES" ) '(HDR)/' else '(NonHDR)/';
}
Last edited by Cutha on 22 Aug 2017, 10:44, edited 4 times in total.
Re: How about sharing our format expressions?
I like your "score" idea, but it has problems:
e.g.
e.g.
and extraDTS-HDMA (mACH:86 NOT FOUND))
here is my audio format:+ ")"
Code: Select all
{
def ChannelString = any{(0.0+audio.'ChannelPositionsString2'*.replaceAll(/Object\sBased\s\/|0.(?=\d.\d)/, '')*.split(' / ')*.collect{ it.split('/')*.toBigDecimal().sum() }*.max().max()).toString()}{channels};
def codecSubVersion = any{audio.any{ a -> call{a.FormatProfile} =~ 'HRA' } ? '.HRA' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'MA / Core' } ? '.MA' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'ES Matrix / Core' } ? '-ES' : null}{null};
def codecVersion = any{audio.Codec.join().match(/DTS-HD/)+codecSubVersion+'.'+audio.Codec.join().match(/TrueHD/)}{audio.Codec.join().match(/DTS-HD/)+codecSubVersion}{audio.Codec.join().match(/TrueHD/)}{audio.Codec.join().match(/DTS/)+codecSubVersion.replaceAll(/null/)}{ac};
(allOf{'.'+codecVersion.replaceAll(/null/)}
{if( ((ac == 'AAC'||ac == 'MP3') && (channels != '2.0' || ChannelString != channels) ) || ( (ac == 'AC3'||ac == 'DTS'||ac == 'TrueHD') && (channels != '5.1' || ChannelString != channels) ) ) return {any{ChannelString}{channels}}}
{aco.match(/Atmos/)}).join('.')
}
Re: How about sharing our format expressions?
I just ran it through some of my old collection to find the old codec stuff and then I ran it against my 4k collection and I found some surprises.
I knew I wouldn't capture all the possibilities off the start so I made it so it would be kind of easy to track down what is missing.
(mACH:86 NOT FOUND)) is because in the map for audio channels "mACH" I didn't have the "8/6", if you add "86" : "8Ch" to it then it should work. I updated it like this:
For the HDR stuff I just found that Elysium, at least the version that I grabbed, doesn't have a .bitdepth field.
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Codec ID : V_MPEGH/ISO/HEVC
Duration : 1 h 49 min
Bit rate : 57.7 Mb/s
Width : 3 840 pixels
Height : 1 608 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Bits/(Pixel*Frame) : 0.390
Stream size : 44.2 GiB (86%)
Language : English
Default : Yes
Forced : No
To prevent it from completely dying I did this:
I knew I wouldn't capture all the possibilities off the start so I made it so it would be kind of easy to track down what is missing.
(mACH:86 NOT FOUND)) is because in the map for audio channels "mACH" I didn't have the "8/6", if you add "86" : "8Ch" to it then it should work. I updated it like this:
Code: Select all
//map of scoring, Codec + FormatProfile with + and / stripped
def mAudioScore =[ "DTS-HDXMACore" : 10, "DTS-HDMACore" : 20, "DTS" : 30, "TrueHDTrueHDAtmosTrueHD" : 10, "TrueHD" : 18, "AC3" : 40, "AAC" : 50, "AAC LCLC" : 50, "MPA1L3Layer 3" : 60,"MPA1L2Layer 2" : 70];
//map of Codec + FormatProfile made nice for file name
def mAFP = [ "DTS-HDXMACore" : "DTS-HDMA(DTS-X)", "DTS-HDMACore" : "DTS-HDMA", "DTS" : "DTS", "TrueHDTrueHDAtmosTrueHD" : "TrueHD(Atmos)", "TrueHD" : "TrueHD", "AC3" : "AC3", "AAC LCLC" : "AAC", "MPA1L3Layer 3" : "MP3", "MPA1L2Layer 2" : "MP2" ];
//map of Audio Channels(minus the slash) to pretty name
def mACH = [ "Object Based10" : "OB+10Ch", "Object Based8" : "OB+8Ch", "Object Based86" : "OB+8Ch", "Object Based6" : "OB+6Ch", "Object Based" : "OBCh", "9" : "9Ch", "8" : "8Ch", "86" : "8Ch", "7" : "7Ch", "6" : "6Ch", "5" : "5Ch", "4" : "4Ch", "3" : "3Ch", "2" : "2Ch", "1" : "1Ch" ];
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Codec ID : V_MPEGH/ISO/HEVC
Duration : 1 h 49 min
Bit rate : 57.7 Mb/s
Width : 3 840 pixels
Height : 1 608 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Bits/(Pixel*Frame) : 0.390
Stream size : 44.2 GiB (86%)
Language : English
Default : Yes
Forced : No
To prevent it from completely dying I did this:
Code: Select all
if(self.video[0].bitdepth != null && self.bitdepth == 10 && self.video[0].colourprimaries != null && mHDRCol.get(self.video[0].colourprimaries) == "YES") isHDR = "YES";
Re: How about sharing our format expressions?
Yours works well with my Atmos and everything else but it does not identify the other object based format, DTS-X.
It displayed this:
.DTS-HD.MA.7.1
For this:
Format_Profile X / MA / Core
CodecID A_DTS
Codec DTS-HD
Codec/String DTS-HD
Codec/Family DTS
Duration 7210454.000000
BitRate_Mode VBR / VBR / CBR
BitRate_Mode/String Variable / Variable / Constant
BitRate 3840000 / 3840000 / 1509000
BitRate/String 3 840 kb/s / 3 840 kb/s / 1 509 kb/s
Channel(s) Object Based / 8 / 6
Channel(s)/String Object Based / 8 channels / 6 channels
ChannelPositions Object Based / Front: L C R, Side: L R, Back: L R, LFE / Front: L C R, Side: L R, LFE
ChannelPositions/String2 Object Based / 3/2/2.1 / 3/2/0.1
ChannelLayout Object Based / / C L R Ls Rs LFE
Re: How about sharing our format expressions?
that's because I don't any X-files:P
you can just add it like this:
result = .DTS-HD.X.7.1
feel free to edit it if you like it an other way
e.g. like this:
result = .DTS-X.7.1
BTW: what is the standard naming of DTS:X files ?
you can just add it like this:
Code: Select all
{
def ChannelString = any{(0.0+audio.'ChannelPositionsString2'*.replaceAll(/Object\sBased\s\/|0.(?=\d.\d)/, '')*.split(' / ')*.collect{ it.split('/')*.toBigDecimal().sum() }*.max().max()).toString()}{channels};
def codecSubVersion = any{audio.any{ a -> call{a.FormatProfile} =~ 'HRA' } ? '.HRA' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'X / MA / Core' } ? '.X' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'MA / Core' } ? '.MA' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'ES Matrix / Core' } ? '-ES' : null}{null};
def codecVersion = any{audio.Codec.join().match(/DTS-HD/)+codecSubVersion+'.'+audio.Codec.join().match(/TrueHD/)}{audio.Codec.join().match(/DTS-HD/)+codecSubVersion}{audio.Codec.join().match(/TrueHD/)}{audio.Codec.join().match(/DTS/)+codecSubVersion.replaceAll(/null/)}{ac};
(allOf{'.'+codecVersion.replaceAll(/null/)}
{if( ((ac == 'AAC'||ac == 'MP3') && (channels != '2.0' || ChannelString != channels) ) || ( (ac == 'AC3'||ac == 'DTS'||ac == 'TrueHD') && (channels != '5.1' || ChannelString != channels) ) ) return {any{ChannelString}{channels}}}
{aco.match(/Atmos/)}).join('.')
}
feel free to edit it if you like it an other way
e.g. like this:
Code: Select all
{
def ChannelString = any{(0.0+audio.'ChannelPositionsString2'*.replaceAll(/Object\sBased\s\/|0.(?=\d.\d)/, '')*.split(' / ')*.collect{ it.split('/')*.toBigDecimal().sum() }*.max().max()).toString()}{channels};
def codecSubVersion = any{audio.any{ a -> call{a.FormatProfile} =~ 'HRA' } ? '.HRA' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'X / MA / Core' } ? '-X' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'MA / Core' } ? '.MA' : null}{audio.any{ a -> call{a.FormatProfile} =~ 'ES Matrix / Core' } ? '-ES' : null}{null};
def codecVersion = any{audio.Codec.join().match(/DTS-HD/)+codecSubVersion+'.'+audio.Codec.join().match(/TrueHD/)}{audio.Codec.join().match(/DTS-HD/) && codecSubVersion == '-X' ? 'DTS-X' : null}{audio.Codec.join().match(/DTS-HD/)+codecSubVersion}{audio.Codec.join().match(/TrueHD/)}{audio.Codec.join().match(/DTS/)+codecSubVersion.replaceAll(/null/)}{ac};
(allOf{'.'+codecVersion.replaceAll(/null/)}
{if( ((ac == 'AAC'||ac == 'MP3') && (channels != '2.0' || ChannelString != channels) ) || ( (ac == 'AC3'||ac == 'DTS'||ac == 'TrueHD') && (channels != '5.1' || ChannelString != channels) ) ) return {any{ChannelString}{channels}}}
{aco.match(/Atmos/)}).join('.')
}
BTW: what is the standard naming of DTS:X files ?
Re: How about sharing our format expressions?
well then you can just copy/paste my format then
Re: How about sharing our format expressions?
The sharing is great, the more knowledge the better. I am partial to knowing in the file name what the properties of the 'default' audio track and if there is a better track available. Because of that I check each audio track.
Re: [JDownloader] Setup for Windows, Linux and Mac OS X
I need help with this script.
I followed the guide, I get no error, but the files are not renamed.
I followed the guide, I get no error, but the files are not renamed.
Re: Exclude Blacklist & Series-Mappings
with this in filename e.g.
will match e.g. AAC.51 ?
btw: I have never seen e.g. 0720p (no?), m720p (yes)
it still use this to lookup movieDTS-MA.5.1
also what about 1, 4 and 8ch + DTS-ES, DTS-HD-HRA and DTS-X + without separator e.g. DTSHD ?+5+1
will match e.g. AAC.51 ?
if so change to something like this:[12457][.]?[01]
to [12457]\.[01]
this is how filebot see it, yes (with the \b) ?\b(FLAC|AAC|AC3|MP3|MP4|DTS|DD|TrueHD|Atmos)(.?HD)?(.?ES|.?MA|.?X|.?HRA)?(.?[12457]\.[01])?\b|\b[12468]ch\b
btw: I have never seen e.g. 0720p (no?), m720p (yes)
[M0]?(720|1080)[pi]
Re: Exclude Blacklist & Series-Mappings
Do you have an example filename for me so I can test the existing patterns and the ones you suggest?
Please read the FAQ and How to Request Help.
Re: Exclude Blacklist & Series-Mappings
new format:
DDP = DD+ = Dolby Digital Plus
"Audio Channels: 1.0 to 13.1"
https://en.wikipedia.org/wiki/Dolby_Digital_Plus
test on:\b(FLAC|AAC|AC3|MP3|MP4|DTS|DD[P+]?|TrueHD|Atmos)(.?HD)?(.?ES|.?MA|.?X|.?HRA)?(.?[124567][.]?[01])?\b|\b[124678]ch\b|\b[2|3]?Audio\b|\bDualAudio\b
NEW:some.movie.2000.DTS.MA.5.1
some.movie.2000.DTS.MA.7.1
some.movie.2000.DTS.MA.6ch
some.movie.2000.DTS-HD.MA.5.1
some.movie.2000.DTS-HD.MA.7.1
some.movie.2000.DTS-HD.MA.6ch
some.movie.2000.DTS-HD.MA.8ch
some.movie.2000.DTSHDMA.5.1
some.movie.2000.DTSHDMA.7.1
some.movie.2000.DTS-X.5.1
some.movie.2000.DTS-X.7.1
some.movie.2000.DTS-X.6ch
some.movie.2000.DTS-X.8ch
some.movie.2000.DTS-HD-HRA.7.1
some.movie.2000.DTS-ES.6.1
some.movie.2000.DTS.1.0
some.movie.2000.DTS.2.0
some.movie.2000.DTS.5.1
some.movie.2000.DTS.6.1
some.movie.2000.DTS.7.1
some.movie.2000.DTS.1ch
some.movie.2000.DTS.2ch
some.movie.2000.DTS.6ch
some.movie.2000.DTS.7ch
some.movie.2000.DTS.8ch
some.movie.2000.DTS
some.movie.2000.DTSMA.2Audio
some.movie.2000.DTS.Audio
some.movie.2000.Dtshd Audio
some.movie.2000.Dts Dualaudio
some.movie.2000.DTSES6.1.3Audio
some.movie.2000.AC3.2Audio
some.movie.2000.FLAC.DD51.DualAudio
some.movie.2000.TrueHD.5.1
some.movie.2000.TrueHD.7.1
some.movie.2000.TrueHD.Atmos.5.1
some.movie.2000.TrueHD.Atmos.7.1
some.movie.2000.DTS-HD.TrueHD.7.1.Atmos
some.movie.2000.AC3.1.0
some.movie.2000.AC3.2.0
some.movie.2000.AC3.4.0
some.movie.2000.AC3.5.1
some.movie.2000.AC3.1ch
some.movie.2000.AC3.2ch
some.movie.2000.AC3.4ch
some.movie.2000.AC3.6ch
some.movie.2000.DD.1.0
some.movie.2000.DD.2.0
some.movie.2000.DD.4.0
some.movie.2000.DD.5.1
some.movie.2000.DDP.1.0
some.movie.2000.DDP.2.0
some.movie.2000.DDP.4.0
some.movie.2000.DDP.5.1
some.movie.2000.DD+.1.0
some.movie.2000.DD+.2.0
some.movie.2000.DD+.4.0
some.movie.2000.DD+.5.1
some.movie.2000.DDP1.0
some.movie.2000.DDP2.0
some.movie.2000.DDP4.0
some.movie.2000.DDP5.1
some.movie.2000.DD.5.1
some.movie.2000.DD.7.1
some.movie.2000.MP3.1.0
some.movie.2000.AAC.5.1
DDP = DD+ = Dolby Digital Plus
"Audio Channels: 1.0 to 13.1"
https://en.wikipedia.org/wiki/Dolby_Digital_Plus
Re: Exclude Blacklist & Series-Mappings
have you tested it yet ?