Wiki Update v1.10.0

master
meisnate12 3 years ago
parent 64ca378d48
commit 635169dddf

@ -4,54 +4,115 @@ You can have multiple collection filters but a movie/show must match at least on
All collection filter options are listed below. To display collections filtered out add `show_filtered: true` to the collection.
**Filters can be very slow. Try to build your collection using [Plex Search](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-search) if possible.**
You can use `plex_all: true` to start your filter from your entire library.
### Standard Filters
**Filters can be very slow. Try to build or narrow your collection using [Plex Search](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-search) if possible.**
### String Filters
String filters can use 4 different modifiers `None`, `.not`, `.begins`, and `.ends`.
String filter can take multiple values **only as a list**.
#### Modifier
| Date Modifier | Description |
| :--- | :--- |
| `None` | Matches every item where the attribute contains the given string |
| `.not` | Matches every item where the attribute does not contain 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 |
#### Attribute
| String Filter | Description | Movie<br>Libraries | Show<br>Libraries |
| :--- | :--- | :---: | :---: |
| `title` | Uses the title attribute to match | :heavy_check_mark: | :heavy_check_mark: |
| `studio` | Uses the studio attribute to match | :heavy_check_mark: | :heavy_check_mark: |
| `filepath` | Uses the item's filepath to match | :heavy_check_mark: | :heavy_check_mark: |
| `audio_track_title` | Uses the audio track titles to match | :heavy_check_mark: | :x: |
### Tag Filters
Tag filters can use 2 different modifiers `None` and `.not`.
String filter can take multiple values as a **list or a comma-separated string**.
The `original_language` filter will also filter out movies from being added to Radarr.
#### Modifier
| Date Modifier | Description |
| :--- | :--- |
| `None` | Matches every item where the attribute matches the given string |
| `.not` | Matches every item where the attribute does not match the given string |
#### Attribute
| Standard Filters | Description | Movie<br>Libraries | Show<br>Libraries |
| :--- | :--- | :---: | :---: |
| `actor` | Matches every movie/show with the specified actor | :heavy_check_mark: | :heavy_check_mark: |
| `collection` | Matches every movie/show with the specified plex collection | :heavy_check_mark: | :heavy_check_mark: |
| `content_rating` | Matches every movie/show with the specified content rating | :heavy_check_mark: | :heavy_check_mark: |
| `country` | Matches every movie with the specified country | :heavy_check_mark: | :x: |
| `director` | Matches every movie with the specified director | :heavy_check_mark: | :x: |
| `genre` | Matches every movie/show with the specified genre | :heavy_check_mark: | :heavy_check_mark: |
| `studio` | Matches every movie/show with the specified studio | :heavy_check_mark: | :heavy_check_mark: |
| `year` | Matches every movie/show with the specified year | :heavy_check_mark: | :heavy_check_mark: |
| `writer` | Matches every movie with the specified writer | :heavy_check_mark: | :x: |
| `filepath` | Matches every movie/show whose filepath contains the given text | :heavy_check_mark: | :heavy_check_mark: |
| `original_language` | Matches every movie with the specified original language [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>Example: `original_language: en, ko` | :heavy_check_mark: | :x: |
| `video_resolution` | Matches every movie with the specified video resolution | :heavy_check_mark: | :x: |
| `audio_language` | Matches every movie with the specified audio language | :heavy_check_mark: | :x: |
| `audio_track_title` | Matches every movie where any audio track contains the specified string | :heavy_check_mark: | :x: |
| `subtitle_language` | Matches every movie with the specified subtitle language | :heavy_check_mark: | :x: |
* Standard filters can have multiple values either by being a list or a comma-separated string.
* You can also use the `.not` at the end of any standard collection filter to do an inverse search matching everything that doesn't have the value specified. You can use `plex_all: true` to start your filter from your entire library.
* Using the `original_language` filter will also filter out movies from being added to Radarr.
### Advanced Filters
| Advanced Filters | Description | Movie<br>Libraries | Show<br>Libraries |
| `actor` | Uses the actor tags to match | :heavy_check_mark: | :heavy_check_mark: |
| `collection` | Uses the collection tags to match | :heavy_check_mark: | :heavy_check_mark: |
| `content_rating` | Uses the content rating tags to match | :heavy_check_mark: | :heavy_check_mark: |
| `country` | Uses the country tags to match | :heavy_check_mark: | :x: |
| `director` | Uses the director tags to match | :heavy_check_mark: | :x: |
| `genre` | Uses the genre tags to match | :heavy_check_mark: | :heavy_check_mark: |
| `label` | Uses the label tags to match | :heavy_check_mark: | :heavy_check_mark: |
| `producer` | Uses the actor tags to match | :heavy_check_mark: | :x: |
| `year` | Uses the year tag to match | :heavy_check_mark: | :heavy_check_mark: |
| `writer` | Uses the writer tags to match | :heavy_check_mark: | :x: |
| `original_language` | 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` | :heavy_check_mark: | :x: |
| `resolution` | Uses the resolution tag to match | :heavy_check_mark: | :x: |
| `audio_language` | Uses the audio language tags to match | :heavy_check_mark: | :x: |
| `subtitle_language` | Uses the subtitle language tags to match | :heavy_check_mark: | :x: |
### Date Filters
Date filters can use 4 different modifiers `None`, `.not`, `.before`, and `.after`.
No date filter can take multiple values.
#### Modifier
| Date Modifier | Description | Format |
| :--- | :--- | :---: |
| `None` | Matches every item where the date attribute is in the last X days | integer number of days e.g. `30` |
| `.not` | Matches every item where the date attribute is not in the last X days | integer number of days e.g. `30` |
| `before` | Matches every item where the date attribute is before the given date | **Format:** MM/DD/YYYY e.g. `01/01/2000` |
| `after` | Matches every item where the date attribute is after the given date | **Format:** MM/DD/YYYY e.g. `01/01/2000` |
#### Attribute
| Date Filter | Description | Movie<br>Libraries | Show<br>Libraries |
| :--- | :--- | :---: | :---: |
| `max_age` | Matches any movie/show whose Originally Available date is within the last specified number of days | :heavy_check_mark: | :heavy_check_mark: |
| `year.gte` | Matches any movie/show whose year is greater then or equal to the specified year | :heavy_check_mark: | :heavy_check_mark: |
| `year.lte` | Matches any movie/show whose year is less then or equal to the specified year | :heavy_check_mark: | :heavy_check_mark: |
| `critic_rating.gte` | Matches any movie/show whose critic rating is greater then or equal to the specified critic rating | :heavy_check_mark: | :heavy_check_mark: |
| `critic_rating.lte` | Matches any movie/show whose critic rating is less then or equal to the specified critic rating | :heavy_check_mark: | :heavy_check_mark: |
| `audience_rating.gte` | Matches any movie/show whose audience rating is greater then or equal to the specified audience rating | :heavy_check_mark: | :heavy_check_mark: |
| `audience_rating.lte` | Matches any movie/show whose audience rating is less then or equal to the specified audience rating | :heavy_check_mark: | :heavy_check_mark: |
| `user_rating.gte` | Matches any movie/show whose user rating is greater then or equal to the specified user rating | :heavy_check_mark: | :heavy_check_mark: |
| `user_rating.lte` | Matches any movie/show whose user rating is less then or equal to the specified user rating | :heavy_check_mark: | :heavy_check_mark: |
| `tmdb_vote_count.gte` | Matches any movie/show whose TMDb vote count is greater then or equal to the specified count | :heavy_check_mark: | :heavy_check_mark: |
| `tmdb_vote_count.lte` | Matches any movie/show whose TMDb vote count is less then or equal to the specified count | :heavy_check_mark: | :heavy_check_mark: |
| `duration.gte` | Matches any movie whose duration is greater then or equal to the specified duration in minutes | :heavy_check_mark: | :x: |
| `duration.lte` | Matches any movie whose duration is less then or equal to the specified duration in minutes | :heavy_check_mark: | :x: |
| `originally_available.gte` | Matches any movie/show whose originally_available date is greater then or equal to the specified originally_available date<br>**Format:** MM/DD/YYYY | :heavy_check_mark: | :heavy_check_mark: |
| `originally_available.lte` | Matches any movie/show whose originally_available date is less then or equal to the specified originally_available date<br>**Format:** MM/DD/YYYY | :heavy_check_mark: | :heavy_check_mark: |
* Advance filters can not take multiple values.
* Using the `tmdb_vote_count.gte` or `tmdb_vote_count.lte` filter will also filter out movies from being added to Radarr.
| `release` | Uses the release date attribute (originally available) to match | :heavy_check_mark: | :heavy_check_mark: |
| `added` | Uses the date added attribute to match | :heavy_check_mark: | :heavy_check_mark: |
| `last_played` | Uses the date last played attribute to match | :heavy_check_mark: | :heavy_check_mark: |
### Number Filters
Number filters can use 4 different modifiers `.gt`, `.gte`, `.lt`, and `.lte`.
No number filter can take multiple values.
The `tmdb_vote_count` filter will also filter out movies/shows from being added to Radarr/Sonarr.
#### Modifier
| Modifier | Description | Format |
| :--- | :--- | :---: |
| `.gt` | Matches every item where the number attribute is greater then the given number | number e.g. `30`, `1995`, or `7.5` |
| `.gte` | Matches every item where the number attribute is greater then or equal to the given number | number e.g. `30`, `1995`, or `7.5` |
| `.lt` | Matches every item where the number attribute is less then the given number | number e.g. `30`, `1995`, or `7.5` |
| `.lte` | Matches every item where the number attribute is less then or equal to the given number | number e.g. `30`, `1995`, or `7.5` |
#### Attribute
| Number Filters | Description | Restrictions | Movie<br>Libraries | Show<br>Libraries |
| :--- | :--- | :---: | :---: | :--: |
| `year` | Uses the year attribute to match | `1800` - `Current Year` | :heavy_check_mark: | :heavy_check_mark: |
| `critic_rating` | Uses the critic rating attribute to match | `0.0` - `10.0` | :heavy_check_mark: | :heavy_check_mark: |
| `audience_rating` | Uses the audience rating attribute to match | `0.0` - `10.0` | :heavy_check_mark: | :heavy_check_mark: |
| `user_rating` | Uses the user rating attribute to match | `0.0` - `10.0` | :heavy_check_mark: | :heavy_check_mark: |
| `tmdb_vote_count` | Uses the tmdb vote count to match | minimum: `1` | :heavy_check_mark: | :heavy_check_mark: |
| `plays` | Uses the plays attribute to match | minimum: `1` | :heavy_check_mark: | :x: |
| `duration` | Uses the duration attribute to match | minimum: `1` | :heavy_check_mark: | :x: |
### Collection Filter Examples
@ -63,7 +124,7 @@ collections:
genre: Documentary
summary: A collection of 1080p Documentaries
filters:
video_resolution: 1080
resolution: 1080
```
```yaml
collections:
@ -98,15 +159,15 @@ collections:
Summer 2020 Movies:
plex_all: true
filters:
originally_available.gte: 5/1/2020
originally_available.lte: 8/31/2020
release.gte: 5/1/2020
release.lte: 8/31/2020
```
```yaml
collections:
Movies Released in the Last 180 Days:
plex_all: true
filters:
max_age: 180
release: 180
```
```yaml
collections:

@ -52,59 +52,104 @@ collections:
* This is a known issue with Plex Collection and there is a [Feature Suggestion](https://forums.plex.tv/t/collection-display-issue/305406) detailing the issue more on their forms.
## Plex Search
Uses Plex's [Custom Filters](https://support.plex.tv/articles/200392126-using-the-library-view/) to get every movie/show based on the search parameters provided.
Uses Plex's [Advance Filters](https://support.plex.tv/articles/201273953-collections/) to add all items to a collection based on the search parameters provided.
Any Custom Filter search made using the Plex UI should be able to be recreated using `plex_search`. If you're having trouble getting `plex_search` to work correctly, build the collection you want inside of Plex's Custom Filters and take a screenshot of the parameters in the Plex UI and post it in either the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) or on [Discord](https://discord.gg/TsdpsFYqqm) and I'll do my best to help you.
Any Advance Filter made using the Plex UI should be able to be recreated using `plex_search`. If you're having trouble getting `plex_search` to work correctly, build the collection you want inside of Plex's Advance Filters and take a screenshot of the parameters in the Plex UI and post it in either the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) or on [Discord](https://discord.gg/TsdpsFYqqm) and I'll do my best to help you.
The search will return every movie/show that matches at least one term from each search field unless you use the `.and` modifier in which case it would need to match every term.
like Plex's [Advance Filters](https://support.plex.tv/articles/201273953-collections/) you have to start each search with either `any` or `all` as a base. You can only have one base attribute and all search attributes must be under the base.
There are three fields per search option when using Plex's Custom Filters in the Web UI. The first is what field you wish to search on, the second is which modifier to use, and the third is the actual term to search.
Inside the base attribute you can use any search below or nest more `any` or `and`. You can have as many nested `any` or `and` next to each other as you want. If using multiple `any` or `and` you will have to do so in the form of a list.
### Search Fields
There are a couple other attributes you can have at the top level only along with the base attribute are:
| Search Field | Description | Movie<br>Libraries | Show<br>Libraries |
| :--- | :--- | :---: | :---: |
| `title` | Gets every movie/show with the specified text contained in the title | :heavy_check_mark: | :heavy_check_mark: |
| `studio` | Gets every movie/show with the specified text contained in the studio | :heavy_check_mark: | :heavy_check_mark: |
| `network` | Gets every movie/show with the specified network<br>**Only works with the New Plex TV Agent** | :x: | :heavy_check_mark: |
| `actor` | Gets every movie/show with the specified actor | :heavy_check_mark: | :heavy_check_mark: |
| `audio_language` | Gets every movie with the specified audio language | :heavy_check_mark: | :x: |
| `collection` | Gets movie/show with the specified collection | :heavy_check_mark: | :heavy_check_mark: |
| `content_rating` | Gets movie/show with the specified content rating | :heavy_check_mark: | :heavy_check_mark: |
| `country` | Gets every movie with the specified country | :heavy_check_mark: | :x: |
| `director` | Gets every movie/show with the specified director | :heavy_check_mark: | :heavy_check_mark: |
| `genre` | Gets every movie/show with the specified genre | :heavy_check_mark: | :heavy_check_mark: |
| `label` | Gets every movie/show with the specified label | :heavy_check_mark: | :heavy_check_mark: |
| `producer` | Gets every movie/show with the specified producer | :heavy_check_mark: | :heavy_check_mark: |
| `subtitle_language` | Gets every movie with the specified subtitle language | :heavy_check_mark: | :x: |
| `writer` | Gets every movie/show with the specified writer | :heavy_check_mark: | :heavy_check_mark: |
| `decade` | Gets every movie from the specified year + the 9 that follow i.e. 1990 will get you 1990-1999 | :heavy_check_mark: | :x: |
| `resolution` | Gets every movie with the specified resolution | :heavy_check_mark: | :x: |
| `added` | Gets every movie/show added to plex before/after the specified date or in the last <br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :heavy_check_mark: |
| `originally_available` | Gets every movie originally available before/after the specified date<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :x: |
| `duration` | Gets every movie with a duration greater/less then the specified number of minutes | :heavy_check_mark: | :x: |
| `audience_rating` | Gets every movie/show with an audience rating greater/less then the specified number | :heavy_check_mark: | :heavy_check_mark: |
| `critic_rating` | Gets every movie/show with a critic rating greater/less then the specified number | :heavy_check_mark: | :heavy_check_mark: |
| `user_rating` | Gets every movie/show with a user rating greater/less then the specified number | :heavy_check_mark: | :heavy_check_mark: |
| `year` | Gets every movie/show with the specified year or greater/less then the specified year | :heavy_check_mark: | :heavy_check_mark: |
### Special Fields
### Special Attributes
| Special Option | Attribute | Description | Default |
| :--- | :--- | :--- | :---: |
| Limit | `limit` | The number of movies/shows to search for | all |
| Sort By | `sort_by` | The way movies/shows are sorted for limit searches.<br>`title.asc`/`title.desc` (Sort by Title)<br>`originally_available.asc`/`originally_available.desc` (Sort by Originally Available)<br>`critic_rating.asc`/`critic_rating.desc` (Sort by Critic Rating)<br>`audience_rating.asc`/`audience_rating.desc` (Sort by Audience Rating)<br>`duration.asc`/`duration.desc` (Sort by Duration)<br>`added.asc`/`added.desc` (Sort by Date Added) | `title.asc` |
| Type | `type` | The Type of items inside this collection<br>**Options**: `movies`, `shows`, `seasons`, and `episodes` | `movies` for Movies Libraries and `shows` for Show Libraries |
| Limit | `limit` | The max number of item for the filter | all |
| Sort By | `sort_by` | This will control how the filter is sorted in your library. You can use any sort options for your search type in the [Sorts Table](#sorts-table) | `random` |
| Validate | `validate` | Determines if a collection will fail on a validation error<br>**Options**: `true` or `false` | `true` |
### Sort Options
| Sorts | Description | Movies | Shows | Seasons | Episodes |
| :--- | :--- | :---: | :---: | :---: | :---: |
| `title.asc`/`title.desc` | Sort by Title | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `season.asc`/`season.desc` | Sort by Season | :x: | :x: | :heavy_check_mark: | :x: |
| `show.asc`/`show.desc` | Sort by Show | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: |
| `year.asc`/`year.desc` | Sort by Year | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `release.asc`/<br>`release.desc` | Sort by Originally Available | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `critic_rating.asc`/<br>`critic_rating.desc` | Sort by Critic Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `audience_rating.asc`/<br>`audience_rating.desc` | Sort by Audience Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `user_rating.asc`/<br>`user_rating.desc` | Sort by User Rating | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| `content_rating.asc`/<br>`content_rating.desc` | Sort by Content Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `duration.asc`/`duration.desc` | Sort by Duration | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
| `plays.asc`/`plays.desc` | Sort by Number of Plays | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
| `added.asc`/`added.desc` | Sort by Date Added | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| `episode_added.asc`/<br>`episode_added.desc` | Sort by Last Episode Date Added | :x: | :heavy_check_mark: | :x: | :x: |
| `random` | Sort by Random | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
### Searches
There are three fields per filter option when using Plex's Advance Filters in the Web UI. The first is the **Filter Field** (what field you wish to filter), the second is the **Filter Modifier** (which modifier to use), and the third is the **Filter Term** (actual term to filter).
### Search Fields
| Search Field | Description | Movie<br>Libraries | Show<br>Libraries |
| :--- | :--- | :---: | :---: |
| `title` | Gets every item with the specified text contained in the title | :heavy_check_mark: | :heavy_check_mark: |
| `episode_title` | Gets every item which has an episode with the specified text contained in the title | :x: | :heavy_check_mark: |
| `studio` | Gets every item with the specified text contained in the studio | :heavy_check_mark: | :heavy_check_mark: |
| `network` | Gets every item with the specified network<br>**Only works with the New Plex TV Agent** | :x: | :heavy_check_mark: |
| `actor` | Gets every item with the specified actor | :heavy_check_mark: | :heavy_check_mark: |
| `audio_language` | Gets every item with the specified audio language | :heavy_check_mark: | :heavy_check_mark: |
| `collection` | Gets item with the specified collection | :heavy_check_mark: | :heavy_check_mark: |
| `content_rating` | Gets item with the specified content rating | :heavy_check_mark: | :heavy_check_mark: |
| `country` | Gets every item with the specified country | :heavy_check_mark: | :x: |
| `director` | Gets every item with the specified director | :heavy_check_mark: | :x: |
| `genre` | Gets every item with the specified genre | :heavy_check_mark: | :heavy_check_mark: |
| `label` | Gets every item with the specified label | :heavy_check_mark: | :heavy_check_mark: |
| `producer` | Gets every item with the specified producer | :heavy_check_mark: | :x: |
| `subtitle_language` | Gets every item with the specified subtitle language | :heavy_check_mark: | :heavy_check_mark: |
| `writer` | Gets every item with the specified writer | :heavy_check_mark: | :x: |
| `decade` | Gets every item from the specified year + the 9 that follow i.e. 1990 will get you 1990-1999 | :heavy_check_mark: | :x: |
| `resolution` | Gets every item with the specified resolution | :heavy_check_mark: | :heavy_check_mark: |
| `hdr` | `true`: Gets every item with HDR<br>`false`: Gets every item without HDR | :heavy_check_mark: | :heavy_check_mark: |
| `unmatched` | `true`: Gets every unmatched item<br>`false`: Gets every matched item | :heavy_check_mark: | :x: |
| `duplicate` | `true`: Gets every duplicate item<br>`false`: Gets every item that's not a duplicate | :heavy_check_mark: | :x: |
| `unplayed` | `true`: Gets every unplayed item<br>`false`: Gets every played item | :heavy_check_mark: | :x: |
| `progress` | `true`: Gets every item in progress<br>`false`: Gets every item not in progress | :heavy_check_mark: | :x: |
| `trash` | `true`: Gets every item in the trash<br>`false`: Gets every item not in the trash | :heavy_check_mark: | :x: |
| `unplayed_episodes` | `true`: Gets every item that has unplayed episodes<br>`false`: Gets every item that doesn't have unplayed episodes< | :x: | :heavy_check_mark: |
| `episode_unplayed` | `true`: Gets every item that has episodes unplayed<br>`false`: Gets every item that doesn't have episodes unplayed< | :x: | :heavy_check_mark: |
| `episode_duplicate` | `true`: Gets every item that has duplicate episodes<br>`false`: Gets every item that doesn't have duplicate episodes< | :x: | :heavy_check_mark: |
| `episode_progress` | `true`: Gets every item that has episodes in progress<br>`false`: Gets every item that doesn't have episodes in progress< | :x: | :heavy_check_mark: |
| `episode_unmatched` | `true`: Gets every item that has episodes unmatched<br>`false`: Gets every item that doesn't have episodes unmatched< | :x: | :heavy_check_mark: |
| `added` | Gets every item added to plex before/after the specified date or in the last<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :heavy_check_mark: |
| `episode_added` | Gets every item which has an episode added to plex before/after the specified date or in the last <br>**Format:** YYYY-MM-DD | :x: | :heavy_check_mark: |
| `release` | Gets every item with a Release Date (Originally Available) before/after the specified date<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :x: |
| `episode_air_date` | Gets every item which has an episode air date (Originally Available) before/after the specified date<br>**Format:** YYYY-MM-DD | :x: | :heavy_check_mark: |
| `last_played` | Gets every item last played in plex before/after the specified date or in the last<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :heavy_check_mark: |
| `episode_last_played` | Gets every item which has an episode last played in plex before/after the specified date or in the last <br>**Format:** YYYY-MM-DD | :x: | :heavy_check_mark: |
| `duration` | Gets every item with a duration greater/less then the specified number of minutes | :heavy_check_mark: | :x: |
| `plays` | Gets every item where the number of plays is greater/less then the specified number of plays | :heavy_check_mark: | :x: |
| `episode_plays` | Gets every item which has an episode where the number of plays is greater/less then the specified number of plays | :x: | :heavy_check_mark: |
| `audience_rating` | Gets every item with an audience rating greater/less then the specified number | :heavy_check_mark: | :heavy_check_mark: |
| `critic_rating` | Gets every item with a critic rating greater/less then the specified number | :heavy_check_mark: | :heavy_check_mark: |
| `user_rating` | Gets every item with a user rating greater/less then the specified number | :heavy_check_mark: | :heavy_check_mark: |
| `episode_user_rating` | Gets every item which has an episode with a user rating greater/less then the specified number | :x: | :heavy_check_mark: |
| `year` | Gets every item with the specified year or greater/less then the specified year | :heavy_check_mark: | :heavy_check_mark: |
| `episode_year` | Gets every item which has an episode with the specified year or greater/less then the specified year | :x: | :heavy_check_mark: |
### Search Modifiers
Each modifier translates directly from a modifier in the Web UI's modifier drop down.
Each modifier translates directly from a modifier in the Web UI's modifier drop-down.
| Modifier | Description | Plex Web UI Option |
| :--- | :--- | :---: |
| No Modifier | Matches at least one search term exactly for every field except:<br>`title` & `studio` only need to contain the search term<br>`added` & `originally_available` takes an integer and matches every item in that past many days. | `is` for most<br>`contains` for `title` & `studio`<br>`in the last` for `added` & `originally_available` |
| `.and` | Has to match every term exactly for every field except:<br>`title` & `studio` only need to contain the search term | `is` for most<br>`contains` for `title` & `studio` |
| `.not` | Matches every item that does not have any of the exact search terms for every field except:<br>`title` & `studio` only need to contain the search term<br>`added` & `originally_available` takes an integer and matches every item not in that past many days. | `is not` for most<br>`does not contain` for `title` & `studio`<br>`in not the last` for `added` & `originally_available` |
| No Modifier | Matches the search term at least one search term exactly for every field except:<br>**String Fields** match every item that contains the search term<br>**String Fields**: `title`, `episode_title`, & `studio`<br>**Date Fields** take an integer and match every item in that past many days<br>**Date Fields**: `added`, `episode_added`, `release`, & `episode_air_date`| `is` for most<br>`contains` for **String Fields**<br>`in the last` for **Date Fields** |
| `.not` | Matches every item that does not have any of the exact search terms for every field except:<br>**String Fields** match every item that does not contain the search term<br>**String Fields**: `title`, `episode_title`, & `studio`<br>**Date Fields** take an integer and match every item not in that past many days<br>**Date Fields**: `added`, `episode_added`, `release`, & `episode_air_date`| `is not` for most<br>`does not contain` for **String Fields**<br>`in not the last` for **Date Fields** |
| `.begins` | Matches every item that starts with at least one search term | `begins with` |
| `.ends` | Matches every item that ends with at least one search term | `ends with` |
| `.before` | Matches every item that is before the specified date | `is before` |
@ -114,89 +159,112 @@ Each modifier translates directly from a modifier in the Web UI's modifier drop
| `.lt` | Matches every item that is less than specified number | `is less than` |
| `.lte` | Matches every item that is less than or equal to the specified number | N/A |
| Search Field | No Modifier | `.and` | `.not` | `.begins`/<br>`.ends` | `.before`/<br>`.after` | `.gt`/`.gte`/<br>`.lt`/`.lte` |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: |
| `title` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `studio` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `actor` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `audio_language` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `collection` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `content_rating` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `country` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `director` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `genre` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `label` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `network` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `producer` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `subtitle_language` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `writer` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `decade` | :heavy_check_mark: | :x: | :x: | :x: | :x: | :x: |
| `resolution` | :heavy_check_mark: | :x: | :x: | :x: | :x: | :x: |
| `added` | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `originally_available` | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `duration` | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `audience_rating` | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `critic_rating` | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `user_rating` | :x: | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `year` | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
* Multiple values are supported as either a list or a comma-separated string for all modifiers except `.before`, `.after`, `.gt`, `.gte`, `.lt`, and `.lte`.
| Search Field | No Modifier | `.not` | `.begins`/<br>`.ends` | `.before`/<br>`.after` | `.gt`/`.gte`/<br>`.lt`/`.lte` |
| :--- | :---: | :---: | :---: | :---: | :---: |
| `title` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `episode_title` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `studio` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `actor` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `audio_language` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `collection` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `content_rating` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `country` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `director` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `genre` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `label` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `network` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `producer` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `subtitle_language` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `writer` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: |
| `decade` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `resolution` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `hdr` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `unmatched` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `duplicate` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `unplayed` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `progress` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `trash` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `unplayed_episodes` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_unplayed` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_duplicate` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_progress` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_unmatched` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `added` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `episode_added` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `release` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `episode_air_date` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `last_played` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `episode_last_played` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `plays` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `episode_plays` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `duration` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `audience_rating` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `critic_rating` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `user_rating` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `episode_user_rating` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `year` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
| `episode_year` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
* To use Multiple values with `title`, `episode_title`, and `studio`
* Multiple values are supported as either a list or a comma-separated string for all modifiers except `.begins`, `.ends`, `.before`, `.after`, `.gt`, `.gte`, `.lt`, and `.lte`.
* If you want to restrict the search even further try using [Collection Filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Filters).
```yaml
collections:
Documentaries:
plex_search:
genre: Documentary
plex_filter:
all:
genre: Documentary
```
```yaml
collections:
Dave Chappelle Comedy:
plex_search:
actor: Dave Chappelle
genre: Comedy
plex_filter:
all:
actor: Dave Chappelle
genre: Comedy
```
```yaml
collections:
Pixar:
plex_search:
studio: Pixar
Top Action Movies:
plex_filter:
all:
genre: Action
sort_by: audience_rating.desc
limit: 20
```
```yaml
collections:
90s Movies:
plex_search:
year:
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
```
```yaml
collections:
2010+ Movies:
plex_search:
year.gte: 2010
plex_filter:
any:
year:
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
```
```yaml
collections:
90s Movies:
plex_search:
decade: 1990
plex_filter:
any:
decade: 1990
```
If you only want to search using a single attribute you can do so without `plex_search`.
```yaml
collections:
90s Movies:
decade: 1990
Best 2010+ Movies:
plex_filter:
all:
year.gte: 2010
sort_by: audience_rating.desc
limit: 20
```
If you specify TMDb Person ID's using the [Collection Detail](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details) `tmdb_person` and then tell either `actor`, `director`, `producer`, or `writer` to add `tmdb`, the script will translate the TMDb Person IDs into their names and run the search on those names.
@ -204,21 +272,27 @@ If you specify TMDb Person ID's using the [Collection Detail](https://github.com
```yaml
collections:
Robin Williams:
actor: tmdb
plex_filter:
all:
actor: tmdb
tmdb_person: 2157
```
```yaml
collections:
Steven Spielberg:
director: tmdb
plex_filter:
all:
director: tmdb
tmdb_person: https://www.themoviedb.org/person/488-steven-spielberg
```
```yaml
collections:
Quentin Tarantino:
actor: tmdb
director: tmdb
producer: tmdb
writer: tmdb
plex_filter:
any:
actor: tmdb
director: tmdb
producer: tmdb
writer: tmdb
tmdb_person: 138
```

@ -23,6 +23,8 @@ Inside the base attribute you can use any filter below or nest more `any` or `an
There are a couple other attributes you can have at the top level only along with the base attribute are:
### Special Attributes
| Special Option | Attribute | Description | Default |
| :--- | :--- | :--- | :---: |
| Type | `type` | The Type of items inside this collection<br>**Options**: `movies`, `shows`, `seasons`, and `episodes` | `movies` for Movies Libraries and `shows` for Show Libraries |
@ -30,22 +32,23 @@ There are a couple other attributes you can have at the top level only along wit
| Sort By | `sort_by` | This will control how the filter is sorted in your library. You can use any sort options for your search type in the [Sorts Table](#sorts-table) | `random` |
| Validate | `validate` | Determines if a collection will fail on a validation error<br>**Options**: `true` or `false` | `true` |
### Sorts Table
### Sort Options
| Sorts | Description | Movies | Shows | Seasons | Episodes |
| :--- | :--- | :---: | :---: | :---: | :---: |
| `title.asc`/`title.desc` | Sort by Title | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `season.asc`/`season.desc` | Sort by Season | :x: | :x: | :heavy_check_mark: | :x: |
| `show.asc`/`show.desc` | Sort by Show | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: |
| `year.asc`/`year.desc` | Sort by Year | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `originally_available.asc`/`originally_available.desc` | Sort by Originally Available | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `critic_rating.asc`/`critic_rating.desc` | Sort by Critic Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `audience_rating.asc`/`audience_rating.desc` | Sort by Audience Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `user_rating.asc`/`user_rating.desc` | Sort by User Rating | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| `content_rating.asc`/`content_rating.desc` | Sort by Content Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `release.asc`/<br>`release.desc` | Sort by Originally Available | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `critic_rating.asc`/<br>`critic_rating.desc` | Sort by Critic Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `audience_rating.asc`/<br>`audience_rating.desc` | Sort by Audience Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| `user_rating.asc`/<br>`user_rating.desc` | Sort by User Rating | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| `content_rating.asc`/<br>`content_rating.desc` | Sort by Content Rating | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: |
| `duration.asc`/`duration.desc` | Sort by Duration | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
| `plays.asc`/`plays.desc` | Sort by Number of Plays | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
| `added.asc`/`added.desc` | Sort by Date Added | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| `episode_added.asc`/`episode_added.desc` | Sort by Last Episode Date Added | :x: | :heavy_check_mark: | :x: | :x: |
| `episode_added.asc`/<br>`episode_added.desc` | Sort by Last Episode Date Added | :x: | :heavy_check_mark: | :x: | :x: |
| `random` | Sort by Random | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
### Filters
@ -74,10 +77,22 @@ There are three fields per filter option when using Plex's Advance Filters in th
| `decade` | Gets every item from the specified year + the 9 that follow i.e. 1990 will get you 1990-1999 | :heavy_check_mark: | :x: |
| `resolution` | Gets every item with the specified resolution | :heavy_check_mark: | :heavy_check_mark: |
| `hdr` | `true`: Gets every item with HDR<br>`false`: Gets every item without HDR | :heavy_check_mark: | :heavy_check_mark: |
| `unmatched` | `true`: Gets every unmatched item<br>`false`: Gets every matched item | :heavy_check_mark: | :x: |
| `duplicate` | `true`: Gets every duplicate item<br>`false`: Gets every item that's not a duplicate | :heavy_check_mark: | :x: |
| `unplayed` | `true`: Gets every unplayed item<br>`false`: Gets every played item | :heavy_check_mark: | :x: |
| `progress` | `true`: Gets every item in progress<br>`false`: Gets every item not in progress | :heavy_check_mark: | :x: |
| `trash` | `true`: Gets every item in the trash<br>`false`: Gets every item not in the trash | :heavy_check_mark: | :x: |
| `unplayed_episodes` | `true`: Gets every item that has unplayed episodes<br>`false`: Gets every item that doesn't have unplayed episodes< | :x: | :heavy_check_mark: |
| `episode_unplayed` | `true`: Gets every item that has episodes unplayed<br>`false`: Gets every item that doesn't have episodes unplayed< | :x: | :heavy_check_mark: |
| `episode_duplicate` | `true`: Gets every item that has duplicate episodes<br>`false`: Gets every item that doesn't have duplicate episodes< | :x: | :heavy_check_mark: |
| `episode_progress` | `true`: Gets every item that has episodes in progress<br>`false`: Gets every item that doesn't have episodes in progress< | :x: | :heavy_check_mark: |
| `episode_unmatched` | `true`: Gets every item that has episodes unmatched<br>`false`: Gets every item that doesn't have episodes unmatched< | :x: | :heavy_check_mark: |
| `added` | Gets every item added to plex before/after the specified date or in the last<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :heavy_check_mark: |
| `episode_added` | Gets every item which has an episode added to plex before/after the specified date or in the last <br>**Format:** YYYY-MM-DD | :x: | :heavy_check_mark: |
| `originally_available` | Gets every item originally available before/after the specified date<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :x: |
| `episode_originally_available` | Gets every item which has an episode originally available before/after the specified date<br>**Format:** YYYY-MM-DD | :x: | :heavy_check_mark: |
| `release` | Gets every item with a Release Date (Originally Available) before/after the specified date<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :x: |
| `episode_air_date` | Gets every item which has an episode air date (Originally Available) before/after the specified date<br>**Format:** YYYY-MM-DD | :x: | :heavy_check_mark: |
| `last_played` | Gets every item last played in plex before/after the specified date or in the last<br>**Format:** YYYY-MM-DD | :heavy_check_mark: | :heavy_check_mark: |
| `episode_last_played` | Gets every item which has an episode last played in plex before/after the specified date or in the last <br>**Format:** YYYY-MM-DD | :x: | :heavy_check_mark: |
| `duration` | Gets every item with a duration greater/less then the specified number of minutes | :heavy_check_mark: | :x: |
| `plays` | Gets every item where the number of plays is greater/less then the specified number of plays | :heavy_check_mark: | :x: |
| `episode_plays` | Gets every item which has an episode where the number of plays is greater/less then the specified number of plays | :x: | :heavy_check_mark: |
@ -94,8 +109,8 @@ Each modifier translates directly from a modifier in the Web UI's modifier drop-
| Modifier | Description | Plex Web UI Option |
| :--- | :--- | :---: |
| No Modifier | Matches the search term at least one search term exactly for every field except:<br>**String Fields** match every item that contains the search term<br>**String Fields**: `title`, `episode_title`, & `studio`<br>**Date Fields** take an integer and match every item in that past many days<br>**Date Fields**: `added`, `episode_added`, `originally_available`, & `episode_originally_available`| `is` for most<br>`contains` for **String Fields**<br>`in the last` for **Date Fields** |
| `.not` | Matches every item that does not have any of the exact search terms for every field except:<br>**String Fields** match every item that does not contain the search term<br>**String Fields**: `title`, `episode_title`, & `studio`<br>**Date Fields** take an integer and match every item not in that past many days<br>**Date Fields**: `added`, `episode_added`, `originally_available`, & `episode_originally_available`| `is not` for most<br>`does not contain` for **String Fields**<br>`in not the last` for **Date Fields** |
| No Modifier | Matches the search term at least one search term exactly for every field except:<br>**String Fields** match every item that contains the search term<br>**String Fields**: `title`, `episode_title`, & `studio`<br>**Date Fields** take an integer and match every item in that past many days<br>**Date Fields**: `added`, `episode_added`, `release`, & `episode_air_date`| `is` for most<br>`contains` for **String Fields**<br>`in the last` for **Date Fields** |
| `.not` | Matches every item that does not have any of the exact search terms for every field except:<br>**String Fields** match every item that does not contain the search term<br>**String Fields**: `title`, `episode_title`, & `studio`<br>**Date Fields** take an integer and match every item not in that past many days<br>**Date Fields**: `added`, `episode_added`, `release`, & `episode_air_date`| `is not` for most<br>`does not contain` for **String Fields**<br>`in not the last` for **Date Fields** |
| `.begins` | Matches every item that starts with at least one search term | `begins with` |
| `.ends` | Matches every item that ends with at least one search term | `ends with` |
| `.before` | Matches every item that is before the specified date | `is before` |
@ -125,10 +140,22 @@ Each modifier translates directly from a modifier in the Web UI's modifier drop-
| `decade` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `resolution` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `hdr` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `unmatched` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `duplicate` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `unplayed` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `progress` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `trash` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `unplayed_episodes` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_unplayed` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_duplicate` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_progress` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `episode_unmatched` | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| `added` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `episode_added` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `originally_available` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `episode_originally_available` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `release` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `episode_air_date` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `last_played` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `episode_last_played` | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: |
| `plays` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `episode_plays` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| `duration` | :x: | :x: | :x: | :x: | :heavy_check_mark: |
@ -139,7 +166,7 @@ Each modifier translates directly from a modifier in the Web UI's modifier drop-
| `year` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
| `episode_year` | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: |
* Multiple values are supported as either a list or a comma-separated string for all modifiers except `.before`, `.after`, `.gt`, `.gte`, `.lt`, and `.lte`.
* Multiple values are supported as either a list or a comma-separated string for all modifiers except `.begins`, `.ends`, `.before`, `.after`, `.gt`, `.gte`, `.lt`, and `.lte`.
```yaml
collections:

Loading…
Cancel
Save