You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Plex-Meta-Manager/docs/metadata/filters.md

38 KiB

Filters

Filters allow for you to filter every item added to the collection/overlay/playlist from every builder using the filters attribute.

Using Filters

Filters cannot do anything alone they require the use of at least one Builder to function.

You can have multiple filters in each set but an item must match at least one value from each filter to not be ignored. The values for each must match what Plex has including special characters in order to match.

filters:
  genre: Action
  country: Germany

Anything that doesn't have both the Genre Action and the Country Germany will be ignored.

Multiple Filter Sets can be given as a list. With multiple sets only one of the sets must pass for the item to not be ignored.

filters:
  - genre: Action
    country: Germany
  - genre: Comedy
    country: France

Anything that doesn't have either both the Genre Action and the Country Germany or the Genre Comedy and the Country France will be ignored.

All filter options are listed below. To display items filtered out add show_filtered: true to the definition.

You can use the plex_all: true builder to filter from your entire library.

Filters can be very slow. Try to build or narrow your items using Plex Search or another Builder if possible.

Table Annotations

1 Filters using the special episodes/tracks filter with the default percent.

2 Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the count modifiers.

3 You can use current_year to have PMM use the current years value. This can be combined with a -# at the end to subtract that number of years. i.e. current-2

4 The actual numbers are pulled from the PMM-Mediastingers Repo.

5 Also is a Tag Filter and can use all of those modifiers.

String Filters

String filters can be used with either no modifier or with .not, .is, .isnot, .begins, .ends, or .regex.

String filters can take multiple values only as a list.

Modifier

String Modifier Description
No Modifier Matches every item where the attribute contains the given string
.not Matches every item where the attribute does not contain the given string
.is Matches every item where the attribute exactly matches the given string
.isnot Matches every item where the attribute does not exactly match the given string
.begins Matches every item where the attribute begins with the given string
.ends Matches every item where the attribute ends with the given string
.regex Matches every item where the attribute matches the regex given

Attribute

String Filter Description Movies Shows Seasons Episodes Artists Albums Track
title Uses the title attribute to match
tmdb_title2 Uses the title from TMDb to match
summary Uses the summary attribute to match
studio Uses the studio attribute to match
edition Uses the edition attribute to match
record_label Uses the record label attribute to match
folder Uses the item's folder to match
filepath Uses the item's filepath to match 1 1 1 1
audio_track_title Uses the audio track titles to match 1 1 1 1
subtitle_track_title Uses the subtitle track titles to match 1 1 1 1
video_codec Uses the video codec tags to match 1 1
video_profile Uses the video profile tags to match 1 1
audio_codec Uses the audio codec tags to match 1 1
audio_profile Uses the audio profile tags to match 1 1

Tag Filters

Tag filters can be used with either no modifier or with .not.

Tag filters can take multiple values as a list or a comma-separated string.

Modifier

Tag Modifier Description
No Modifier Matches every item where the attribute matches the given string
.not Matches every item where the attribute does not match the given string
.regex Matches every item where one value of this attribute matches the regex.
.count_lt Matches every item where the attribute count is less than the given number
.count_lte Matches every item where the attribute count is less than the given number
.count_gt Matches every item where the attribute count is greater than the given number
.count_gte Matches every item where the attribute count is greater than or equal to the given number

Attribute

Tag Filters Description Movies Shows Seasons Episodes Artists Albums Track
actor Uses the actor tags to match
collection Uses the collection tags to match
content_rating Uses the content rating tags to match
network Uses the network tags to match
country Uses the country tags to match
director Uses the director tags to match
genre Uses the genre tags to match
label Uses the label tags to match
producer Uses the actor tags to match
year3 Uses the year tag to match
writer Uses the writer tags to match
resolution Uses the resolution tag to match 1 1
audio_language Uses the audio language tags to match 1 1
subtitle_language Uses the subtitle language tags to match 1 1
tmdb_genre2 Uses the genres from TMDb to match
tmdb_keyword2 Uses the keywords from TMDb to match
origin_country2 Uses TMDb origin country ISO 3166-1 alpha-2 codes to match
Example: origin_country: us
imdb_keyword2 Uses the keywords from IMDb to match See Special for more attributes

Boolean Filters

Boolean Filters have no modifiers.

Attribute

Boolean Filters Description Movies Shows Seasons Episodes Artists Albums Track
has_collection Matches every item that has or does not have a collection
has_edition Matches every item that has or does not have an edition
has_stinger Matches every item that has a media stinger (After/During Credits Scene)
has_dolby_vision Matches every item that has or does not have a dolby vision 1 1
has_overlay Matches every item that has or does not have an overlay

Date Filters

Date filters can be used with either no modifier or with .not, .before, .after, or .regex.

Date filters can NOT take multiple values.

Modifier

Date Modifier Description Format
No Modifier Matches every item where the date attribute is in the last X days Format: number of days
e.g. 30
.not Matches every item where the date attribute is not in the last X days Format: number of days
e.g. 30
.before Matches every item where the date attribute is before the given date Format: MM/DD/YYYY or today for the current day
e.g. 01/01/2000
.after Matches every item where the date attribute is after the given date Format: MM/DD/YYYY or today for the current day
e.g. 01/01/2000
.regex Matches every item where the attribute matches the regex given N/A

Attribute

Date Filters Description Movies Shows Seasons Episodes Artists Albums Track
release Uses the release date attribute (originally available) to match
added Uses the date added attribute to match
last_played Uses the date last played attribute to match
first_episode_aired2 Uses the first episode aired date to match
last_episode_aired**2 Uses the last episode aired date to match
last_episode_aired_or_never2 Similar to last_episode_aired but also includes those that haven't aired yet

Number Filters

Number filters must use .gt, .gte, .lt, or .lte as a modifier.

Number filters can NOT take multiple values.

Modifier

Number Modifier Description Format
No Modifier Matches every item where the number attribute is equal to the given number Format: number
e.g. 30, 1995, or 7.5
.not Matches every item where the number attribute is not equal to the given number Format: number
e.g. 30, 1995, or 7.5
.gt Matches every item where the number attribute is greater than the given number Format: number
e.g. 30, 1995, or 7.5
.gte Matches every item where the number attribute is greater than or equal to the given number Format: number
e.g. 30, 1995, or 7.5
.lt Matches every item where the number attribute is less than the given number Format: number
e.g. 30, 1995, or 7.5
.lte Matches every item where the number attribute is less than or equal to the given number Format: number
e.g. 30, 1995, or 7.5

Attribute

Number Filters Description Movies Shows Seasons Episodes Artists Albums Track
year3 Uses the year attribute to match
minimum: 1
tmdb_year23 Uses the year on TMDb to match
minimum: 1
critic_rating Uses the critic rating attribute to match
0.0 - 10.0
audience_rating Uses the audience rating attribute to match
0.0 - 10.0
user_rating Uses the user rating attribute to match
0.0 - 10.0
tmdb_vote_count2 Uses the tmdb vote count to match
minimum: 1
tmdb_vote_average2 Uses the tmdb vote average rating to match
minimum: 0.0
plays Uses the plays attribute to match
minimum: 1
duration Uses the duration attribute to match using minutes
minimum: 0.0
channels Uses the audio channels attribute to match
minimum: 0
1 1
height Uses the height attribute to match
minimum: 0
1 1
width Uses the width attribute to match
minimum: 0
1 1
aspect Uses the aspect attribute to match
minimum: 0.0
1 1
versions Uses the number of versions found to match
minimum: 0
1 1 1 1
stinger_rating4 Uses the media stinger rating to match. The media stinger rating is if the after/during credits scene is worth staying for.
minimum: 0

Special Filters

Special Filters each have their own set of rules for how they're used.

Attribute

Special Filters Description Movies Shows Seasons Episodes Artists Albums Track
history Uses the release date attribute (originally available) to match dates throughout history
day: Match the Day and Month to Today's Date
month: Match the Month to Today's Date
1-30: Match the Day and Month to Today's Date or 1-30 days before Today's Date
episodes Uses the item's episodes attributes to match
Use the percentage attribute given a number between 0-100 to determine the percentage of an items episodes that must match the sub-filter.
seasons Uses the item's seasons attributes to match
Use the percentage attribute given a number between 0-100 to determine the percentage of an items seasons that must match the sub-filter.
tracks Uses the item's tracks attributes to match
Use the percentage attribute given a number between 0-100 to determine the percentage of an items tracks that must match the sub-filter.
albums Uses the item's albums attributes to match
Use the percentage attribute given a number between 0-100 to determine the percentage of an items albums that must match the sub-filter.
original_language2
original_language.not2
Uses TMDb original language ISO 639-1 codes to match
Example: original_language: en, ko
tmdb_status2
tmdb_status.not2
Uses TMDb Status to match
Values: returning, planned, production, ended, canceled, pilot
tmdb_type2
tmdb_type.not2
Uses TMDb Type to match
Values: documentary, news, production, miniseries, reality, scripted, talk_show, video
imdb_keyword25 Uses the keywords from IMDb to match
keywords: list of keywords to match
minimum_votes: minimum number of votes keywords must have
minimum_relevant: minimum number of relevant votes keywords must have
minimum_percentage: minimum percentage of relevant votes keywords must have

Collection Filter Examples

A few examples are listed below:

collections:
  1080p Documentaries:
    plex_search:
      all:
        genre: Documentary
    summary: A collection of 1080p Documentaries
    filters:
      resolution: 1080
collections:
  Daniel Craig only James Bonds:
    imdb_list: https://www.imdb.com/list/ls006405458/
    filters:
      actor: Daniel Craig
collections:
  French Romance:
    plex_search:
      all:
        genre: Romance
    filters:
      audio_language: Français
collections:
  Romantic Comedies:
    plex_search:
      all:
        genre: Romance
    filters:
      genre: Comedy
collections:
  9.0 Movies:
    plex_all: true
    filters:
      rating.gte: 9
collections:
  Summer 2020 Movies:
    plex_all: true
    filters:
      release.after: 5/1/2020
      release.before: 8/31/2020
collections:
  Movies Released in the Last 180 Days:
    plex_all: true
    filters:
      release: 180
collections:
  Good Adam Sandler Romantic Comedies:
    plex_search:
      all:
        genre: Romance
        actor: Adam Sandler
    filters:
      genre: Comedy
      rating.gte: 7
collections:
  Movies with Commentary:
    plex_all: true
    filters:
      audio_track_title: Commentary