Restrict script to identify TV or Movies only

Any questions? Need some help?
Post Reply
karanrajpal14
Posts: 23
Joined: 03 May 2015, 16:21

Restrict script to identify TV or Movies only

Post by karanrajpal14 »

Hey,
I'm using your AMC script to sort my media but I'm not using it through any torrent downloading program. I want to set it up for times when I use IDM as well and I've got separate folder for TV shows and Movies. I just want to know if there's a way to call the script and restrict it to work in identifying movies or tv shows only? There have been situations where it's wrongly renamed a movie as a tv show and I want to avoid that. Is there some parameter that I can pass to do that? I noticed the "ut_kind=multi" paramater but if I use either TV or movie within that it doesn't work. Any idea on how I can go about this? I usually have a batch script running periodically.
User avatar
rednoah
The Source
Posts: 23925
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: Restrict script to identify TV or Movies only

Post by rednoah »

Advanced Fine-Tuning wrote:You can (and should) force Movie/Series/Anime mode by setting --def ut_label accordingly, and you can further define your own --filter rules to fine-tune matching to your exact needs, and avoid mismatches.
Common Problems wrote:You can (and should) force Movie/Series/Anime mode or force ignore files via labels, e.g. label as Movie to force TheMovieDB, Series to force TheTVDB, Anime to force AniDB, or other to ignore all files. Alternatively, folder names such as Movies/TV Shows/Anime may also be used to force a specific mode.
Please read the manual (more thoroughly):
viewtopic.php?f=4&t=215
:idea: Please read the FAQ and How to Request Help.
karanrajpal14
Posts: 23
Joined: 03 May 2015, 16:21

Re: Restrict script to identify TV or Movies only

Post by karanrajpal14 »

rednoah wrote:
Advanced Fine-Tuning wrote:You can (and should) force Movie/Series/Anime mode by setting --def ut_label accordingly, and you can further define your own --filter rules to fine-tune matching to your exact needs, and avoid mismatches.
Common Problems wrote:You can (and should) force Movie/Series/Anime mode or force ignore files via labels, e.g. label as Movie to force TheMovieDB, Series to force TheTVDB, Anime to force AniDB, or other to ignore all files. Alternatively, folder names such as Movies/TV Shows/Anime may also be used to force a specific mode.
Please read the manual (more thoroughly):
viewtopic.php?f=4&t=215
I'm extremely sorry. I should've paid more attention!
I tried to get it working. I do have an issue. Since this is being specified under the def flag I added "ut_label=TV" in my amcArgs file and I'm calling it using

Code: Select all

filebot -script fn:amc --action copy --conflict fail -non-strict --log-file "E:\scriptHub\filebotMediaRenameBatch\TV\amcTV.log" --def @E:\scriptHub\filebotMediaRenameBatch\TV\amcArgsTV.txt "ut_dir=C:\Users\karanRajpal\Downloads\TV" "ut_kind=multi"
This isn't ignoring the movie that I have in the folder. It's renaming both the TV show and the movie. I tried removing the "ut_kind=multi" which throws an exception

Code: Select all

groovy.lang.MissingPropertyException: No such property: ut_kind for class: Script1
What am I doing wrong here? Would you please help me with that?
User avatar
rednoah
The Source
Posts: 23925
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: Restrict script to identify TV or Movies only

Post by rednoah »

1.
--def ut_kind=multi is required if you're using the ut_dir option to pass in an input folder.

2.
--def ut_kind=TV will force TV mode for all files. This means that any video file will be assumed to be an Episode file. You must not force TV mode and then go around and pass in Movie files.

3.
Full output logs are ALWAYS appreciated.
:idea: Please read the FAQ and How to Request Help.
karanrajpal14
Posts: 23
Joined: 03 May 2015, 16:21

Re: Restrict script to identify TV or Movies only

Post by karanrajpal14 »

Ah. I just assumed that it would ignore all the movies and now that I think of it, it was a stupid assumption since it has no way of knowing the difference until they're actually parsed. I've provided both parameters and the script seems to be working great. You sir have saved me a lot of time and trouble. Will surely throw you some coin next month after I receive my wage. Your support is unparalleled!
Cheers!
karanrajpal14
Posts: 23
Joined: 03 May 2015, 16:21

Re: Restrict script to identify TV or Movies only

Post by karanrajpal14 »

Hey I have a couple of questions. Thought it's best to ask them here instead of creating another thread.

Firstly, is it possible for me to use filebot to remove existing metadata within filenames and write new metadata to it?
Example, I have a file of Sherlock - The Abominable Bride that I've downloaded and when I click on properties and view the title it contains "PSArips.com | Sherlock.The.Abominable.Bride.2016.1080p.10bit.WEB-DL.6CH.x265.HEVC-PSA" which sometimes messes up plex's scanner. Any way for me to deal with this? Also, is it possible for me to replace it with the title of the episode?


Secondly, I'm using AMC to manage my media. I have two folders called "TV" and "Movies" that's present in my Downloads directory. When AMC finishes renaming media, it's deleting the root folder as well(probably because I have "clean" enabled). i.e. /Downloads/TV which means that the downloader is not able to find its destination directory and is throwing errors every now and then. Any way I can override this behaviour? I just don't want the root directories to get deleted. Please direct your attention to the second last line of this log:

Code: Select all

E:\scriptHub\filebotMediaRenameBatch\TV>filebot -script fn:amc --action move --conflict fail -non-strict --log-file "E:\scriptHub\filebotMediaRenameBatch\TV\amcTV.log" --def @E:\scriptHub\filebotMediaRenameBatch\TV\amcArgsTV.txt "ut_dir=C:\Users\karanRajpal\Downloads\TV"
Locking E:\scriptHub\filebotMediaRenameBatch\TV\amcTV.log
Run script [fn:amc] at [Wed Aug 03 14:09:57 IST 2016]
Parameter: excludeList = E:\scriptHub\filebotMediaRenameBatch\filebotAMCfilebotExcludedFilesTV.txt
Parameter: seriesFormat = H:/tvShows/{n.replaceTrailingBrackets().sortName().upperInitial().space(' ')} ({y}){'/Season '+S}/{n.sortName().upperInitial().replaceTrailingBrackets().space(' ')} - {S00E00} - {t.replaceAll(/[!?.]+$/).replaceAll(/[`´‘’ʻ]/, "'") .lowerTrail().replacePart(', Part $1')} [{vf} {vc.replace('HEVC','x265')} {ac} {af.replace('6ch','5.1').replace('3ch','2.1').replace('2ch','2.1')}]
Parameter: unsorted = y
Parameter: artwork = y
Parameter: subtitles = en
Parameter: storeReport = y
Parameter: reportError = y
Parameter: deleteAfterExtract = y
Parameter: clean = y
Parameter: plex = localhost:RzwxzAjtNXdnGTkcNB2k
Parameter: ut_label = Series
Parameter: ut_kind = multi
Parameter: ut_dir = C:\Users\karanRajpal\Downloads\TV
Creating excludes: E:\scriptHub\filebotMediaRenameBatch\filebotAMCfilebotExcludedFilesTV.txt
Input: C:\Users\karanRajpal\Downloads\TV\Elementary S01E01.mkv
Group: [tvs:elementary] => [Elementary S01E01.mkv]
Get [English] subtitles for 1 files
Looking up subtitles by hash via OpenSubtitles
Fetching [English] subtitles [Elementary.S01E01.HDTV.x264-LOL.HI.srt] from [OpenSubtitles]
Export [Elementary.S01E01.HDTV.x264-LOL.HI.srt] as [SubRip / UTF-8]
Writing [Elementary.S01E01.HDTV.x264-LOL.HI.srt] to [Elementary S01E01.eng.srt]
Rename episodes using [TheTVDB]
Auto-detected query: [Elementary]
Fetching episode data for [Elementary]
Auto-detected query: [Elementary]
Fetching episode data for [Elementary]
[MOVE] Rename [C:\Users\karanRajpal\Downloads\TV\Elementary S01E01.mkv] to [H:\tvShows\Elementary (2012)\Season 1\Elementary - S01E01 - Pilot [480p x264 AAC 2.1].mkv]
[MOVE] Rename [C:\Users\karanRajpal\Downloads\TV\Elementary S01E01.eng.srt] to [H:\tvShows\Elementary (2012)\Season 1\Elementary - S01E01 - Pilot [480p x264 AAC 2.1].srt]
Processed 2 files
Fetching series artwork for [Elementary / Season 1] to [H:\tvShows\Elementary (2012)\Season 1]
Generate Series NFO: Elementary [255316]
Fetching H:\tvShows\Elementary (2012)\poster.jpg => [poster/680x1000, en, 7.66, http://thetvdb.com/banners/posters/255316-2.jpg]
Fetching H:\tvShows\Elementary (2012)\banner.jpg => [series/graphical, en, 8.2, http://thetvdb.com/banners/graphical/255316-g10.jpg]
Fetching H:\tvShows\Elementary (2012)\fanart.jpg => [fanart/1920x1080, en, 7.92, http://thetvdb.com/banners/fanart/original/255316-17.jpg]
Fetching H:\tvShows\Elementary (2012)\Season 1\poster.jpg => [season/season/1, en, 7.29, http://thetvdb.com/banners/seasons/255316-1-4.jpg]
Banner not found: H:\tvShows\Elementary (2012)\Season 1\banner.jpg / seasonwide:seasonwide
Fetching H:\tvShows\Elementary (2012)\clearart.png => [hdclearart, en, 2, http://assets.fanart.tv/fanart/tv/255316/hdclearart/elementary-56715bd649be9.png]
Fetching H:\tvShows\Elementary (2012)\logo.png => [hdtvlogo, en, 8, http://assets.fanart.tv/fanart/tv/255316/hdtvlogo/elementary-5064556d2f5eb.png]
Fetching H:\tvShows\Elementary (2012)\landscape.jpg => [tvthumb, en, 5, http://assets.fanart.tv/fanart/tv/255316/tvthumb/elementary-503a1151ecb31.jpg]
Fetching H:\tvShows\Elementary (2012)\Season 1\landscape.jpg => [seasonthumb/1, en, 1, http://assets.fanart.tv/fanart/tv/255316/seasonthumb/elementary-525ec88e26ef3.jpg]
Notify Plex: localhost
GET: http://localhost:32400/library/sections/all/refresh?X-Plex-Token=RzwxzAjtNXdnGTkcNB2k
Saving report as C:\Users\karanRajpal\AppData\Roaming\FileBot\reports\AMC [2016-08-03 14h10m] Elementary S01E01.html
Clean clutter files and empty folders
Delete C:\Users\karanRajpal\Downloads\TV
Done ヾ(@⌒ー⌒@)ノ

And last but not the least, here's how my Series Format looks like:

Code: Select all

H:/tvShows/{n.replaceTrailingBrackets().sortName().upperInitial().space(' ').replaceAll(/\b[IiVvXx]+\b/, { it.upper() })} ({y}){'/Season '+S}/{n.sortName().upperInitial().replaceTrailingBrackets().space(' ').replaceAll(/\b[IiVvXx]+\b/, { it.upper() }).replaceFirst(/^(?i)(The|A|An)\s(.+)/, /$2, $1/)} - {S00E00} - {t.replaceAll(/[!?.]+$/).replaceAll(/[`´‘’ʻ]/, "'") .lowerTrail().replacePart(', Part $1').replaceAll(/\b[IiVvXx]+\b/, { it.upper() }).replaceAll(/\b[0-9](?i:th|nd|rd)\b/, { it.lower() }).replaceFirst(/^(?i)(The|A|An)\s(.+)/, /$2, $1/)} {episode.special ? '- S00E'+special.pad(2)+' -' : '- '+s00e00+' -'} [{vf} {vc.replace('HEVC','x265')} {ac} {af.replace('8ch','7.1').replace('7ch','7.1').replace('6ch','5.1').replace('5ch','5.1').replace('3ch','2.1').replace('2ch','2.1')}]
Considering the same file of Sherlock The Abominable Bride which is a special, the file is being renamed to

Code: Select all

H:\tvShows\Sherlock (2010)\Season 3\Sherlock - S00E09 - Abominable Bride, The - S00E09 - [1080p x265 AAC 5.1]
I do not understand why it's going into the "Season 3" folder and not "Season 0". Is it possible for me to move special episodes to a designated "Specials" folder within each show? How do I go about this issue? Any suggestions? I'd really appreciate some help here. Thank you!
User avatar
rednoah
The Source
Posts: 23925
Joined: 16 Nov 2011, 08:59
Location: Taipei
Contact:

Re: Restrict script to identify TV or Movies only

Post by rednoah »

A unique thread per unique question/topic is preferred so that people can find answers via Google.


1.
FileBot will write its own xattr metadata. FileBot does not modify files and thus cannot rewrite embedded tags (i.e. mp4 and mkv tags). You may use external tools and automate the process using the --def exec option of the amc script.

FYI: Plex has an option for that. Just turn off Local Media Assets.


2.
If you pass the input folder as file argument (and not as ut_dir script option) then the clean behaviour will be different:
https://github.com/filebot/scripts/blob ... roovy#L629

See Run from cmdline for details.


3.
The {plex} binding used to have a similar Season/Special issue that should be fixed with FileBot 4.7.1 and above. If you're using a custom format then it's up to you to force "Season 0" for specials in your format even if the special isn't actually part of Season 0.

The "Specials folder for Specials" use case is already covered in the examples:
viewtopic.php?f=5&t=2

The value of {s} is not always 0. Specials can have seasons! Bindings like {plex} and {s00e00} just format the data in a Plex compatible way.
:idea: Please read the FAQ and How to Request Help.
karanrajpal14
Posts: 23
Joined: 03 May 2015, 16:21

Re: Restrict script to identify TV or Movies only

Post by karanrajpal14 »

rednoah wrote:A unique thread per unique question/topic is preferred so that people can find answers via Google.


1.
FileBot will write its own xattr metadata. FileBot does not modify files and thus cannot rewrite embedded tags (i.e. mp4 and mkv tags). You may use external tools and automate the process using the --def exec option of the amc script.

FYI: Plex has an option for that. Just turn off Local Media Assets.


2.
If you pass the input folder as file argument (and not as ut_dir script option) then the clean behaviour will be different:
https://github.com/filebot/scripts/blob ... roovy#L629

See Run from cmdline for details.


3.
The {plex} binding used to have a similar Season/Special issue that should be fixed with FileBot 4.7.1 and above. If you're using a custom format then it's up to you to force "Season 0" for specials in your format even if the special isn't actually part of Season 0.

The "Specials folder for Specials" use case is already covered in the examples:
viewtopic.php?f=5&t=2

The value of {s} is not always 0. Specials can have seasons! Bindings like {plex} and {s00e00} just format the data in a Plex compatible way.
Will keep that in mind the next time and thank you for all your suggestions. I've finally got the script running like I need it to. Appreciate all the help you've provided!
Post Reply