parent
874e251176
commit
dd3209e22b
@ -0,0 +1,228 @@
|
||||
Using Plex Meta Manager you can create Smart Collections in two different ways.
|
||||
|
||||
|
||||
## Smart Label
|
||||
A Smart Label Collection is a smart collection that grabs every item with a specific label generated by the program. That label is added to all the items the Collection Builders find instead of being added to a normal collection.
|
||||
|
||||
You can add `smart_label` giving it one of the sorts from the Movies/Shows column of the [Sorts Table](#sorts-table) below along with any other builder to make that collection a Smart Label Collection.
|
||||
|
||||
This is extremely useful because smart collections don't follow normal show/hide rules and can eliminate the need to have [Plex Collectionless](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-collectionless) when used correctly. To fix the issue described in [Plex Collectionless](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-collectionless) you would make `Marvel Cinematic Universe` a Smart Label Collection and all other Marvel collection just normal collections and they will show/hide all the movie properly.
|
||||
|
||||
To have the Smart Label Collections to eliminate Plex Collectionless you have to go all in on using them. A good rule of thumb to make sure this works correctly is that every item in your library should have a max of one non-smart collection.
|
||||
|
||||
Reach out on the [Plex Meta Manager Discord](https://discord.gg/NfH6mGFuAB) or in the [Github Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions) for help if you're having any issues getting this to work properly.
|
||||
|
||||
## Smart Filter
|
||||
Uses Plex's [Advance Filters](https://support.plex.tv/articles/201273953-collections/) to create a smart collection based on the filter parameters provided.
|
||||
|
||||
Any Advance Filter made using the Plex UI should be able to be recreated using `smart_filter`. If you're having trouble getting `smart_filter` 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/NfH6mGFuAB) and I'll do my best to help you.
|
||||
|
||||
like Plex's [Advance Filters](https://support.plex.tv/articles/201273953-collections/) you have to start each filter with either `any` or `all` as a base. You can only have one base attribute and all filter attributes must be under the base.
|
||||
|
||||
Inside the base attribute you can use any filter 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.
|
||||
|
||||
There are a couple other attributes you can have at the top level only along with the base attribute are:
|
||||
|
||||
| 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 |
|
||||
| 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` |
|
||||
|
||||
### Sorts Table
|
||||
| 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: |
|
||||
| `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: |
|
||||
| `random` | Sort by Random | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
||||
|
||||
### Filters
|
||||
|
||||
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).
|
||||
|
||||
### Filter Fields
|
||||
|
||||
| Filter 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: | :heavy_check_mark: |
|
||||
| `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: | :heavy_check_mark: |
|
||||
| `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: | :heavy_check_mark: |
|
||||
| `decade` | Gets every item from the specified year + the 9 that follow i.e. 1990 will get you 1990-1999 | :heavy_check_mark: | :heavy_check_mark: |
|
||||
| `resolution` | Gets every item with the specified resolution | :heavy_check_mark: | :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 | :heavy_check_mark: | :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: |
|
||||
| `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 | :heavy_check_mark: | :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: |
|
||||
|
||||
### Filter Modifiers
|
||||
|
||||
Each modifier translates directly from a modifier in the Web UI's modifier drop-down.
|
||||
|
||||
| Modifier | Description | Plex Web UI Option |
|
||||
| :--- | :--- | :---: |
|
||||
| No Modifier | Matches the search term 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` |
|
||||
| `.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` |
|
||||
| `.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` |
|
||||
| `.after` | Matches every item that is after the specified date | `is after` |
|
||||
| `.gt` | Matches every item that is greater than specified number | `is greater than` |
|
||||
| `.gte` | Matches every item that is greater than or equal to the specified number | N/A |
|
||||
| `.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 | `.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: |
|
||||
| `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: |
|
||||
| `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: |
|
||||
|
||||
* Multiple values are supported as either a list or a comma-separated string for all modifiers except `.before`, `.after`, `.gt`, `.gte`, `.lt`, and `.lte`.
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
Documentaries:
|
||||
smart_filter:
|
||||
all:
|
||||
genre: Documentary
|
||||
```
|
||||
```yaml
|
||||
collections:
|
||||
Dave Chappelle Comedy:
|
||||
smart_filter:
|
||||
all:
|
||||
actor: Dave Chappelle
|
||||
genre: Comedy
|
||||
```
|
||||
```yaml
|
||||
collections:
|
||||
Top Action Movies:
|
||||
smart_filter:
|
||||
all:
|
||||
genre: Action
|
||||
sort_by: audience_rating.desc
|
||||
limit: 20
|
||||
```
|
||||
```yaml
|
||||
collections:
|
||||
90s Movies:
|
||||
smart_filter:
|
||||
any:
|
||||
year:
|
||||
- 1990
|
||||
- 1991
|
||||
- 1992
|
||||
- 1993
|
||||
- 1994
|
||||
- 1995
|
||||
- 1996
|
||||
- 1997
|
||||
- 1998
|
||||
- 1999
|
||||
```
|
||||
```yaml
|
||||
collections:
|
||||
90s Movies:
|
||||
smart_filter:
|
||||
any:
|
||||
decade: 1990
|
||||
```
|
||||
```yaml
|
||||
collections:
|
||||
Best 2010+ Movies:
|
||||
smart_search:
|
||||
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.
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
Robin Williams:
|
||||
smart_search:
|
||||
all:
|
||||
actor: tmdb
|
||||
tmdb_person: 2157
|
||||
```
|
||||
```yaml
|
||||
collections:
|
||||
Steven Spielberg:
|
||||
smart_search:
|
||||
all:
|
||||
director: tmdb
|
||||
tmdb_person: https://www.themoviedb.org/person/488-steven-spielberg
|
||||
```
|
||||
```yaml
|
||||
collections:
|
||||
Quentin Tarantino:
|
||||
smart_search:
|
||||
any:
|
||||
actor: tmdb
|
||||
director: tmdb
|
||||
producer: tmdb
|
||||
writer: tmdb
|
||||
tmdb_person: 138
|
||||
```
|
Loading…
Reference in new issue