# Filters Filters allow for you to filter every item added to the collection/playlist from every builder using the `filters` attribute. You can have multiple filters but an item must match at least one value from **each** filter to be added to a collection/playlist. The values for each must match what Plex has including special characters in order to match. All filter options are listed below. To display items filtered out add `show_filtered: true` to the collection. 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](builders/plex.md#plex-search) if possible.** ## 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_title`2 | 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 | ✅ | | `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 | ✅ | ❌ | ❌ | ❌ | 1 Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/setting). 2 Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers. ## 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 | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | | `year` | 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_genre`2 | Uses the genre from TMDb to match | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | `tmdb_keyword`2 | Uses the keyword from TMDb to match | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | `origin_country`2 | Uses TMDb origin country [ISO 3166-1 alpha-2 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to match
Example: `origin_country: us` | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | 1 Filters using the special `episodes` [filter](#special-filters) with the [default percent](details/setting). 2 Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers. ## 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_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 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | 1 Filters using the special `episodes` [filter](#special-filters) with the [default percent](details/setting). ## 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_aired`1 | Uses the first episode aired date to match | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | `last_episode_aired`1 | Uses the last episode aired date to match | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | `last_episode_aired_or_never`1 | Similar to `last_episode_aired` but also includes those that haven't aired yet | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | 1 Also filters out missing movies/shows from being added to Radarr/Sonarr. ## 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 | |:------------------------------|:---------------------------------------------------------------------|:-------:|:-------------------:|:-------------------:|:--------:|:-------------------:|:-------------------:|:--------:| | `year` | Uses the year attribute to match
minimum: `1` | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | | `tmdb_year`2 | 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_count`2 | Uses the tmdb vote count to match
minimum: `1` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | `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 | ✅ | 1 Filters using the special `episodes` [filter](#special-filters) with the [default percent](details/setting). 2 Also filters out missing movies/shows from being added to Radarr/Sonarr. ## 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_language`1
`original_language.not`1 | Uses TMDb original language [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) to match
Example: `original_language: en, ko` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | `tmdb_status`1
`tmdb_status.not`1 | Uses TMDb Status to match
**Values:** `returning`, `planned`, `production`, `ended`, `canceled`, `pilot` | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | `tmdb_type`1
`tmdb_type.not`1 | Uses TMDb Type to match
**Values:** `documentary`, `news`, `production`, `miniseries`, `reality`, `scripted`, `talk_show`, `video` | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | 1 Also filters out missing movies/shows from being added to Radarr/Sonarr. ## Collection Filter Examples A few examples are listed below: ```yaml collections: 1080p Documentaries: plex_search: all: genre: Documentary summary: A collection of 1080p Documentaries filters: resolution: 1080 ``` ```yaml collections: Daniel Craig only James Bonds: imdb_list: https://www.imdb.com/list/ls006405458/ filters: actor: Daniel Craig ``` ```yaml collections: French Romance: plex_search: all: genre: Romance filters: audio_language: Français ``` ```yaml collections: Romantic Comedies: plex_search: all: genre: Romance filters: genre: Comedy ``` ```yaml collections: 9.0 Movies: plex_all: true filters: rating.gte: 9 ``` ```yaml collections: Summer 2020 Movies: plex_all: true filters: release.after: 5/1/2020 release.before: 8/31/2020 ``` ```yaml collections: Movies Released in the Last 180 Days: plex_all: true filters: release: 180 ``` ```yaml collections: Good Adam Sandler Romantic Comedies: plex_search: all: genre: Romance actor: Adam Sandler filters: genre: Comedy rating.gte: 7 ``` ```yaml collections: Movies with Commentary: plex_all: true filters: audio_track_title: Commentary ```