Skip to content

Templates

A Template is a set of custom settings and Card configurations that can be assigned to multiple Series or Episodes at once. Multiple Templates can be assigned to a Series or Episode, and, with Filters, can be used to conditionally apply setting changes. Templates can be viewed and edited on the Templates page (the /card-templates URL), accessible from the sidebar via the Templates item.

Templates Page Templates Page

An easy way to view Templates is that they allow you to group Card customizations together so they can be easily edited en masse without changing each Series individually. The most common use-case is to develop a Template (or a set of Templates) that applies to some subset of your Series — e.g. all anime, or all documentaries — and apply those Templates automatically when Syncing.

Standard Example

By far the most common example of using a Template is for utilizing different card configurations for anime and non-anime cards. Creating an anime Template which overrides the card type, adds translations, and potentially adds absolute episode numbering allows for easily maintaining two very separate card looks.

Template Priority

One key feature of Templates is the ability to assign more than one to a Series or Episode and implement a priority system using Filters.

Whenever a Template is assigned, TCM evaluates whether that Template should be applied to whatever operation it is performing. It does this by looking at the assigned Filters; and the first Template whose Filter conditions are all met will be utilized.

Within the UI, Templates are always displayed in order. Meaning the first Template listed in the dropdown of a Sync, Series, or Episode is the highest priority Template.

Creating and Editing Templates

Click New Template to create a blank Template named Blank Template. Expand the accordion to enter a name, configure settings, and save.

At the bottom of each Template form:

  • Save Changes — Persists the current form values to the database.
  • Delete — Opens a confirmation modal listing Series linked to this Template Confirm to permanently delete the Template.

Preview

Each Template includes a live preview of the current form values — not necessarily what was last saved.

  1. Search for an Episode in the Preview Episode dropdown (requires at least two characters).
  2. Click Refresh Preview, or click the preview image itself, to generate a Card using the current unsaved settings.

An Episode must be selected before a preview can be generated.

Customization

Each expanded Template is organized into labeled sections. All values can be left blank — if blank, TCM uses the next highest priority setting from the Series, Episode, or global setting. Setting priorities are listed here.

Name

A Template's name is purely for easier selection within the TCM UI. If you are using Tiered Templates, it is recommended to include the relative priority of the Template in the name — e.g. Tier 1 - Unwatched Anime, or Tier 0 - All Anime.

The accordion header updates to match the Template Name field.

Importing Blueprint Templates

The name of a Template is also used to match Templates when importing Blueprints.

For example — if you are importing a Blueprint featuring a Template named Anime and have already created a Template named Anime, then TCM will not duplicate the Template and instead just assign the existing Template to the Series.

This is relatively uncommon, as Templates are not typically included in Blueprints.

Filters

Filters are a critical component of utilizing different priority Templates for more fine-tuned customization. A Template can have any number of Filters, and all Filters must be true (or unevaluatable) for a Template to be applied.

Use Add Condition to add a row. Each condition has three parts: an Argument (the variable from the Series or Episode being evaluated), an Operation, and an optional Reference Value. To remove a condition, click the × button on that row or clear its Operation.

The Filters section notes that text comparison is case-insensitive, that matches / does not match accept Regex, and that airdate values use YYYY-MM-DD.

Example

To add a Filter condition which only applies to unwatched pilots (season 1 episode 1 of a Series), you would create the following conditions:

Argument Operation Reference Value
Season Number equals 1
Episode Number equals 1
Episode Watched Status is false

Note that there is no reference value for the Episode Watched Status condition, as the is false operation does not need to reference another value.

If you enter some invalid condition — like a bad reference value, or a nonsensical operation — then the condition is skipped (which is the same as being true).

Optimal Filter Ordering

If you'd like to make marginal performance improvements, it is best practice to put conditions which are more likely to fail — i.e. the more restrictive conditions — first, as this short-circuits the Filter evaluation logic.

For example, putting a condition for Episode Number equals before Season Number equals would be ideal since more failures will occur on the Episode number condition than the season number condition.

Below is a summary of all Filter arguments, their valid operations, a description of what this Filter accomplishes, and whether it requires a reference value.

All Supported Filter Conditions1

Operation Description Reference Value
equals Only apply to Series of the given name
does not equal Do not apply to Series of the given name
starts with Only apply to Series whose name starts with the given text
does not start with Do not apply to Series whose name starts with the given text
ends with Only apply to Series whose name ends with the given text
does not end with Do not apply to Series whose name ends with the given text
contains Only apply to Series whose name contains the given text
does not contain Do not apply to Series whose name contains the given text
matches Only apply to Series whose name matches the given regex
does not match Do not apply to Series whose name matches the given regex

The is before and is after conditions cannot be used with a Series Year argument; see the Episode Airdate argument, or use the math operations (less than, greater than, etc.).

Operation Description Reference Value
equals Only apply to Series whose year is exactly the given number
does not equal Do not apply to Series whose year is exactly the given number
matches Only apply to Series whose year matches the given regex
does not match Do not apply to Series whose year matches the given regex
is less than Only apply to Series whose year is less than the given number
is less than or equal Only apply to Series whose year is less than or equal to the given number
is greater than Only apply to Series whose year is greater than the given number
is greater than or equal Only apply to Series whose year is greater than or equal to the given number

The Number of Seasons argument only counts Episodes which are in TCM.

Operation Description Reference Value
equals Only apply to Series with exactly the given number of seasons
does not equal Do not apply to Series with exactly the given number of seasons
is less than Only apply to Series whose number of seasons is less than the given number
is less than or equal Only apply to Series whose number of seasons is less than or equal to the given number
is greater than Only apply to Series whose number of seasons is greater than the given number
is greater than or equal Only apply to Series whose number of seasons is greater than or equal to the given number

Library names are evaluated as a list of all assigned libraries, meaning the full library name must be specified to filter on this argument. For example, if I had a Series assigned to the Anime HD and Anime 4K libraries, the reference value Anime would not match either of these. The entire name, such as Anime HD would be required.

Operation Description Reference Value
contains Only apply to Series with a library of the given name
does not contain Do not apply to Series with a library of the given name

This Filter condition only looks at the default Series logo — e.g. logo.png within the source directory.

Operation Description Reference Value
file exists Only apply to Series whose logo exists
file does not exist Only apply to Series whose logo does not exist

This Filter condition can be used with Variables to dynamically apply a Template based on the existence of some file, such as a poster, per-season logo, etc.

Operation Description Reference Value
file exists Only apply to Series where the indicated file exists
file does not exist Only apply to Series where the indicated file does not exist

Watched statuses are evaluated per-library (even if Multi-Library mode is disabled).

Operation Description Reference Value
is true Only apply to Episodes that have been watched
is false Do not apply to Episodes that have been watched
is null Only apply to Episodes whose watched status is unknown2
is not null Only apply to Episodes whose watched status is known2
Operation Description Reference Value
is true Only apply to Episodes that are not part of season 0
equals Only apply to Episodes with exactly the given season number
does not equal Do not apply to Episodes with exactly the given season number
is less than Only apply to Episodes whose season number is less than the given number
is less than or equal Only apply to Episodes whose season number is less than or equal to the given number
is greater than Only apply to Episodes whose season number is greater than the given number
is greater than or equal Only apply to Episodes whose season number is greater than or equal to the given number
Operation Description Reference Value
equals Only apply to Episodes with exactly the given episode number
does not equal Do not apply to Episodes with exactly the given episode number
is less than Only apply to Episodes whose episode number is less than the given number
is less than or equal Only apply to Episodes whose episode number is less than or equal to the given number
is greater than Only apply to Episodes whose episode number is greater than the given number
is greater than or equal Only apply to Episodes whose episode number is greater than or equal to the given number

The Episode Identifier is formatted as S01E03 (zero-padded season and episode numbers). This is useful for targeting specific Episodes without separate season and episode conditions.

Operation Description Reference Value
equals Only apply to Episodes with exactly the given identifier
does not equal Do not apply to Episodes with exactly the given identifier
starts with Only apply to Episodes whose identifier starts with the given text
does not start with Do not apply to Episodes whose identifier starts with the given text
ends with Only apply to Episodes whose identifier ends with the given text
does not end with Do not apply to Episodes whose identifier ends with the given text
contains Only apply to Episodes whose identifier contains the given text
does not contain Do not apply to Episodes whose identifier contains the given text
matches Only apply to Episodes whose identifier matches the given regex
does not match Do not apply to Episodes whose identifier matches the given regex

Special Variable

The variable {absolute_episode_number} can be used in episode text format strings (and other locations) which will use the absolute episode number if available, and the normal episode number, otherwise.

Operation Description Reference Value
is null Only apply to Episodes with no absolute episode number
is not null Only apply to Episodes with an absolute episode number
equals Only apply to Episodes with exactly the given absolute episode number
does not equal Do not apply to Episodes with exactly the given absolute episode number
is less than Only apply to Episodes whose absolute episode number is less than the given number
is less than or equal Only apply to Episodes whose absolute episode number is less than or equal to the given number
is greater than Only apply to Episodes whose absolute episode number is greater than the given number
is greater than or equal Only apply to Episodes whose absolute episode number is greater than or equal to the given number
Operation Description Reference Value
equals Only apply to Episodes whose title is exactly some text
does not equal Do not apply to Episodes whose title is exactly some text
starts with Only apply to Episodes whose title starts with some text
does not start with Do not apply to Episodes whose title starts with some text
ends with Only apply to Episodes whose title ends with some text
does not end with Do not apply to Episodes whose title ends with some text
contains Only apply to Episodes whose title contains some text
does not contain Do not apply to Episodes whose title contains some text
matches Only apply to Episodes whose title matches some regex
does not match Do not apply to Episodes whose title matches some regex

All title length evaluations are done on the original title, before any title text formatting or splitting.

Operation Description Reference Value
equals Only apply to Episodes whose title length is exactly the given number
does not equal Do not apply to Episodes whose title length is exactly the given number
is less than Only apply to Episodes whose title length is less than the given number
is less than or equal Only apply to Episodes whose title length is less than or equal to the given number
is greater than Only apply to Episodes whose title length is greater than the given number
is greater than or equal Only apply to Episodes whose title length is greater than or equal to the given number

All time reference values must be entered as YYYY-MM-DD — e.g. 2023-12-30 for December 30th, 2023.

Operation Description Reference Value
is null Only apply to Episodes with no airdate
is not null Do not apply to Episodes with airdates
is before Only apply to Episodes which aired before the given date
is after Only apply to Episodes which aired after the given date

All time reference values must be entered as YYYY-MM-DD — e.g. 2023-12-30 for December 30th, 2023.

Operation Description Reference Value
is before Only apply before the given date
is after Only apply after the given date
Operation Description Reference Value
is null Only apply to Episodes with no extras
is not null Do not apply to Episodes with any extras
contains Only apply to Episodes with extras of the given label
does not contain Do not apply to Episodes with extras of the given label

Card Settings

  • Card Type — The card type to apply as part of this Template. Defaults to the global default when unset. Click the icon next to the label to open a modal listing all available card types.
  • Font — A Named Font to apply. Defaults to the card default when unset. When a Font is selected, an external-link icon opens that Font's entry on the Fonts page.
  • Watched Style / Unwatched Style — How to stylize watched and unwatched Episodes. Defaults to the server default when unset.

Season and Episode Text

  • Hide Season Titles — Whether to hide season text on Title Cards (True, False, or inherit the default).
  • Hide Episode Text — Whether to hide episode text on Title Cards.
  • Season Titles — Custom titles for specific season or episode ranges. Use Add to create a row. Each row has a range key and a title value:

    • 1 — whole season 1
    • s1e2-s1e5 — season 1, episodes 2–5
    • 5-10 — absolute episodes 5–10
  • Episode Text Format — Custom format string for episode text. Defaults to the card default when blank.

Non-Card Settings

  • Episode Data Source — Where to get Episode data from. See Episode Data Source.
  • Image Source Priority — Order of Connections to try when downloading Source Images. See Image Source Priority.
  • Ignored Localized Images — Whether to skip localized Source Images.
  • Enable Specials — Whether to include Episodes from Season 0 (specials). See Enable Specials.

Translations and Extras

Quick translation settings

  • Title Language — Select a TMDb language to fetch Episode titles as the preferred title. Leave at Default (source title) to use the title from your Episode data source without translation.
  • Enable Kanji — When enabled, TCM fetches Japanese titles from TMDb into the kanji field (used by Anime-style card types). Equivalent to adding a ja → kanji translation entry.

Additional Translations

Each row specifies a language and a target data key. Use Add to create a row and Delete All to remove all additional rows (this does not affect the Title Language or Kanji settings above).

Extras

The Extras section provides tabbed fields for card-type-specific custom values. The available extras depend on the selected Card Type. Extras tabs are initialized when you first expand a Template accordion.

In-depth documentation of each extra (along with example images) can be found on the Card Types page.


  1. Argument and operation pairs which are meaningless (but technically valid) — e.g. Series Name is greater than ... — are not listed. Many of these are either always true or always false, but hold no real meaning. 

  2. An Episode's watched status is unknown if the Episode cannot be found in an associated Media Server within the specified library.