Filters cannot do anything alone they require the use of at least one [Builder](builders) 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.
```yaml
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.
```yaml
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.
**Filters can be very slow. Try to build or narrow your items using [Plex Search](builders/plex.md#plex-search) or another [Builder](builders) if possible.**
<sup>**1**</sup> Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition).
<sup>**2**</sup> Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers.
<sup>**3**</sup> 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`
<sup>**4**</sup> The actual numbers are pulled from the [PMM-Mediastingers](https://github.com/meisnate12/PMM-Mediastingers) Repo.
<sup>**5**</sup> Also is a Tag Filter and can use all of those modifiers.
| `title` | Uses the title attribute to match | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| `tmdb_title`<sup>**[2](#table-annotations)**</sup> | 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 | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ |
| `audio_track_title` | Uses the audio track titles to match | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ |
| `video_codec` | Uses the video codec tags to match | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ❌ | ❌ | ❌ |
| `video_profile` | Uses the video profile tags to match | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ❌ | ❌ | ❌ |
| `audio_codec` | Uses the audio codec tags to match | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ❌ | ❌ | ❌ |
| `audio_profile` | Uses the audio profile tags to match | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ❌ | ❌ | ❌ |
| `imdb_keyword`<sup>**[2](#table-annotations)**</sup> | Uses the keywords from IMDb to match See [Special](#special-filters) for more attributes | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `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](http://www.mediastinger.com/) (After/During Credits Scene) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `has_dolby_vision` | Matches every item that has or does not have a dolby vision | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ❌ | ❌ | ❌ |
| `has_overlay` | Matches every item that has or does not have an overlay | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| No Modifier | Matches every item where the date attribute is in the last X days | **Format:** number of days<br>e.g. `30` |
| `.not` | Matches every item where the date attribute is not in the last X days | **Format:** number of days<br>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<br>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<br>e.g. `01/01/2000` |
| `.regex` | Matches every item where the attribute matches the regex given | N/A |
| `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`<sup>**[2](#table-annotations)**</sup> | Uses the first episode aired date to match | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `last_episode_aired`<sup>**[2](#table-annotations)</sup> | Uses the last episode aired date to match | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `last_episode_aired_or_never`<sup>[2](#table-annotations)</sup> | Similar to `last_episode_aired` but also includes those that haven't aired yet | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `.gt` | Matches every item where the number attribute is greater than the given number | **Format:** number<br>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<br>e.g. `30`, `1995`, or `7.5` |
| `.lt` | Matches every item where the number attribute is less than the given number | **Format:** number<br>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<br>e.g. `30`, `1995`, or `7.5` |
| `versions` | Uses the number of versions found to match<br>minimum: `0` | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ | ✅<sup>**[1](#table-annotations)**</sup> | ✅<sup>**[1](#table-annotations)**</sup> | ✅ |
| `stinger_rating`<sup>**[4](#table-annotations)**</sup> | Uses the [media stinger](http://www.mediastinger.com/) rating to match. The media stinger rating is if the after/during credits scene is worth staying for.<br>minimum: `0` | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `history` | Uses the release date attribute (originally available) to match dates throughout history<br>`day`: Match the Day and Month to Today's Date<br>`month`: Match the Month to Today's Date<br>`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 <br> 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 <br> 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 <br> 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 <br> 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`<sup>**[2](#table-annotations)**</sup><br>`original_language.not`<sup>**[2](#table-annotations)**</sup> | Uses TMDb original language [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) to match<br>Example: `original_language: en, ko` | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `imdb_keyword`<sup>**[2](#table-annotations)**</sup><sup>**[5](#table-annotations)**</sup> | Uses the keywords from IMDb to match<br>`keywords`: list of keywords to match<br>`minimum_votes`: minimum number of votes keywords must have<br>`minimum_relevant`: minimum number of relevant votes keywords must have<br>`minimum_percentage`: minimum percentage of relevant votes keywords must have | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |