Page 1 of 1

Match by Episode Title

Posted: 20 Aug 2018, 16:38
by rednoah
FileBot does take the episode title into consideration, but Season / Episode number matches always take priority if there is one, which may not always be what we want.

:arrow: Selecting Episode Order: Date and Title effectively allows us to ignore the typical SxE patterns and match by Episode Title instead. The {order} binding can then be used to format file names with normal Airdate SxE Order.

:idea: This works because Episode Order: Date and Title uses the airdate (e.g. 2002-10-18) as episode number (e.g. 20021018) and thus never matches typical SxE patterns, which allows the title (e.g. Jaynestown) to take precedence.

GUI: Match by Title

The Presets feature allows you to create easy access shortcuts and custom Match by Episode Title buttons. The key is using Episode Order: Date and Title for matching and then using a format such as {} for the destination path to force SxE numbers.

CLI: Match by Title

The --mapper option can be used to strip episode numbers from the Episode object leaving only the episode title for matching:

e.g. force Match by Episode Title or Match by Episode Airdate by nullifying SxE numbers:

Shell: Select all

--mapper "episode.number(null)"

Console Output: Select all

$ filebot -rename *.mkv --db TheTVDB -non-strict --format "{}" --mapper "episode.number(null)"
[MOVE] from [Monogatari - 5x01 - Yotsugi Doll - Part 1.mkv] to [Monogatari - S00E15 - Yotsugi Doll - Part 1.mkv]
[MOVE] from [Monogatari - 5x02 - Yotsugi Doll - Part 2.mkv] to [Monogatari - S00E16 - Yotsugi Doll - Part 2.mkv]
[MOVE] from [Monogatari - 5x03 - Yotsugi Doll - Part 3.mkv] to [Monogatari - S00E17 - Yotsugi Doll - Part 3.mkv]
[MOVE] from [Monogatari - 5x04 - Yotsugi Doll - Part 4.mkv] to [Monogatari - S00E18 - Yotsugi Doll - Part 4.mkv]

e.g. Match by Episode Title but Format by Airdate Episode Group to match multi-episode out-of-order cartoons:
NOTE: {episodelist} requires FileBot 5.1.0 or higher

Shell: Select all

--mapper "episode.number(null).map(episodelist.findAll{ airdate == it.airdate }.episode).reverse()"

Console Output: Select all

$ filebot -rename *.mkv --db TheTVDB -non-strict --format "{}" --mapper "episode.number(null).map(episodelist.findAll{ airdate == it.airdate }.episode).reverse()"
[MOVE] from [ChalkZone.S01E01.Rudys.First.Adventure.Rudys.Story.Bushel.Full.of.Yum.mkv] to [ChalkZone - S01E01-E03 - Rudy's First Adventure & Rudy's Story & Bushel Full of Yum.mkv]
[MOVE] from [ChalkZone.S01E02.SnapMobile.Rudys.First.Date.Future.Zone.mkv] to [ChalkZone - S01E04-E07 - SnapMobile & Rudy's First Date & Future Zone & Mumbo Jumbo Jump.mkv]
[MOVE] from [ChalkZone.S01E03.The.Wiggies.Rapunzel.Hair.To.Stay.Coming.To.Life.mkv] to [ChalkZone - S01E19-E22 - The Wiggies & Rapunzel & Hair To Stay & Coming To Life.mkv]