@ -6,14 +6,10 @@ No configuration is required for these builders.
| :--- | :--- | :--- | :---: | :---: |
| [AniList Top Rated Anime](#anilist-top-rated-anime) | `anilist_top_rated` | Gets every anime in AniList's [Top Rated Anime](https://anilist.co/search/anime?sort=SCORE_DESC) list | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Popular Anime](#anilist-popular-anime) | `anilist_popular` | Gets every anime in AniList's [Popular Anime](https://anilist.co/search/anime?sort=POPULARITY_DESC) list | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Seasonal Anime](#anilist-seasonal-anime) | `anilist_season` | Gets anime in AniList's Seasonal Anime list the options are detailed below | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Relations](#anilist-relations) | `anilist_relations` | Gets the anime specified by the AniList ID and every relation in its relation tree except Character and Other relations | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Studio](#anilist-studio) | `anilist_studio` | Gets all anime specified by the AniList Studio ID | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Genre](#anilist-genre) | `anilist_genre` | Gets all anime specified by the AniList Genre | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Tag](#anilist-tag) | `anilist_tag` | Gets all anime specified by the AniList Tag | :heavy_check_mark: | :heavy_check_mark: |
| [AniList ID](#anilist-id) | `anilist_id` | Gets the anime specified by the AniList ID | :heavy_check_mark: | :heavy_check_mark: |
* To find possible genres and tags go to the [AniList Anime](https://anilist.co/search/anime) page and click the Genres dropdown to see all the genres and tags.
| [AniList Search](#anilist-search) | `anilist_search` | Gets the anime specified by the AniList search parameters provided | :heavy_check_mark: | :heavy_check_mark: |
## AniList Top Rated Anime
Gets every anime in AniList's [Top Rated Anime](https://anilist.co/search/anime?sort=SCORE_DESC) list.
@ -43,32 +39,6 @@ collections:
sync_mode: sync
```
## AniList Seasonal Anime
Gets anime in AniList's Seasonal Anime list the options are detailed below.
| Attribute | Description | Required | Default |
| :--- | :--- | :---: | :---: |
| `season` | `winter` (For winter season December, January, February)<br>`spring` (For spring season March, April, May)<br>`summer` (For summer season June, July, August)<br>`fall` (For fall season September, October, November) | :x: | Current Season |
| `year` | 4 digit integer year between 1917-Current | :x: | Current Year |
| `sort_by` | `score` (Sort by Score)<br>`popular` (Sort by Most Popular) | :x: | `score` |
| `limit` | Number of Anime to query from AniList (use 0 for all; max: 500) | :x: | 0 |
```yaml
collections:
Current Anime Season:
anilist_season:
sort_by: popular
sync_mode: sync
```
```yaml
collections:
Fall 2020 Anime:
anilist_season:
season: fall
year: 2020
sync_mode: sync
```
## AniList Relations
Gets the anime specified by the AniList ID and every relation in its relation tree except Character and Other relations.
@ -91,53 +61,129 @@ collections:
anilist_studio: 21
```
## AniList Genre
Gets anime with the specified AniList Genre the options are detailed below.
## AniList ID
Gets the anime specified by the AniList ID.
| Attribute | Description | Required | Default |
| :--- | :--- | :---: | :---: |
| `genre` | AniList Genre to search by | :heavy_check_mark: | N/A |
| `sort_by` | `score` (Sort by Score)<br>`popular` (Sort by Most Popular) | :x: | `score` |
| `limit` | Number of Anime to query from AniList (use 0 for all; max: 500) | :x: | 0 |
The expected input is an AniList ID. Multiple values are supported as either a list or a comma-separated string.
```yaml
collections:
Sports Anime:
anilist_genre:
genre: Sports
sort_by: popular
sync_mode: sync
Cowboy Bebop:
anilist_id: 23, 219
```
* To find possible genres and tags go to the [AniList Anime](https://anilist.co/search/anime) page and click the Genres dropdown to see all the genres and tags.
## AniList Search
Gets the anime specified by the AniList Search the options are detailed below.
## AniList Tag
Gets anime with the specified AniList Tag the options are detailed below.
There are three fields per search option when using AniList's Search just like Plex's Advance Filters in the Web UI. The first is the **Attribute** (what attribute you wish to search), the second is the **Modifier** (which modifier to use), and the third is the **Term** (actual term to search).
| Attribute | Description | Required | Default |
| Attribute | Description | Options | Default |
| :--- | :--- | :---: | :---: |
| `tag` | AniList Tag to search by | :heavy_check_mark: | N/A |
| `sort_by` | `score` (Sort by Score)<br>`popular` (Sort by Most Popular) | :x: | `score` |
| `limit` | Number of Anime to query from AniList (use 0 for all; max: 500) | :x: | 0 |
| `sort_by` | How to sort the Anime | `score` (Sort by Average Score)<br>`popular` (Sort by Popularity) | `score` |
| `limit` | Number of Anime to query | `int` (use 0 or don't use it at all for all anime) | `0` |
| `search` | Text to search | Any Text | `N/A` |
| `season` | Season to search for | `winter` (For winter season December, January, February)<br>`spring` (For spring season March, April, May)<br>`summer` (For summer season June, July, August)<br>`fall` (For fall season September, October, November)<br>Leave blank for the Current Season |
| `year` | Season year to search for | `int``1917` - next year or leave blank for the current year |
| `min_tag_percent` | Minimum tag percentage for the Anime | `int``0`-`100` | `N/A` |
| `adult` | Search for or not for Adult Anime | `true` or `false` | `N/A` |
## Tag Searches
Tag searches can be used with either no modifier or with `.not`.
String search can take multiple values as a **list or a comma-separated string**.
### Tag Modifiers
| 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 |
### Tag Attributes
| Tag Search | Description | Options |
| :--- | :--- | :---: |
| `format` | Uses the anime's format to match | `tv`, `short`, `movie`, `special`, `ova`, `ona`, `music` |
| `status` | Uses the anime's status to match | `finished`, `airing`, `not_yet_aired`, `cancelled`, `hiatus` |
| `genre` | Uses the anime's genre to match | Any Genre in the Genre Dropdown box on the [AniList Search Page](https://anilist.co/search/anime) |
| `tag` | Uses the anime's tag to match | Any Tag in the Genre Dropdown box on the [AniList Search Page](https://anilist.co/search/anime) |
| `tag_category` | Uses the anime's tag category to match | Any Tag Category in the Advance Genres & Tag Filters Menu on the [AniList Search Page](https://anilist.co/search/anime) |
## Date Searches
Date searches can be used with either `.before`, or `.after`.
No date search can take multiple values.
### Date Modifiers
| Date Modifier | Description | Format |
| :--- | :--- | :---: |
| `.before` | Matches every item where the date attribute<br>is before the given date | **Format:** MM/DD/YYYY<br>e.g. `01/01/2000` |
| `.after` | Matches every item where the date attribute<br>is after the given date | **Format:** MM/DD/YYYY<br>e.g. `01/01/2000` |
### Date Attributes
| Date Search | Description |
| :--- | :--- |
| `start` | Uses the anime start date attribute to match |
| `end` | Uses the anime end date attribute to match |
## Number Searches
Number searches must use `.gt`, `.gte`, `.lt`, or `.lte` as a modifier.
No number search can take multiple values.
### Number Modifiers
| Number Modifier | Description | Format |
| :--- | :--- | :---: |
| `.gt` | Matches every item where the number attribute<br>is greater then the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` |
| `.gte` | Matches every item where the number attribute<br>is greater then or equal to the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` |
| `.lt` | Matches every item where the number attribute<br>is less then the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` |
| `.lte` | Matches every item where the number attribute<br>is less then or equal to the given number | **Format:** number<br>e.g. `30`, `1995`, or `7.5` |
### Number Attributes
| Number Search | Description | Restrictions |
| :--- | :--- | :---: |
| `duration` | Uses the duration attribute to match using minutes | minimum: `1` |
| `episodes` | Uses the number of episodes attribute to match | minimum: `1` |
| `score` | Uses the score attribute to match | minimum: `1` |
| `popularity` | Uses the popularity attribute to match | minimum: `1` |
## AniList Search Examples
```yaml
collections:
Current Anime Season:
anilist_search:
season:
year:
sort_by: popular
sync_mode: sync
```
```yaml
collections:
Fall 2020 Anime:
anilist_search:
season: fall
year: 2020
sync_mode: sync
```
```yaml
collections:
Pirates Anime:
anilist_tag:
anilist_search:
tag: Pirates
sort_by: popular
sync_mode: sync
```
* To find possible genres and tags go to the [AniList Anime](https://anilist.co/search/anime) page and click the Genres dropdown to see all the genres and tags.
## AniList ID
Gets the anime specified by the AniList ID.
The expected input is an AniList ID. Multiple values are supported as either a list or a comma-separated string.
@ -65,7 +65,9 @@ All the following attributes serve various functions as how the collection funct
| Template | `template` | Used to specify a template and template variables to use for this collection | [`template` mapping details](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Template-Attributes) |
| Run Again | `run_again` | Used to try and add all the items missing from the collection to the collection again after the daily run <br>**Default Mode:** `false`| **boolean:**`true` or `false` |
| Sync Mode | `sync_mode` | Used to change how collection builders sync with this collection<br>**Default Mode:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | `append`: Only Add Items to the Collection<br>`sync`: Add & Remove Items from the Collection |
| Validate Builders | `validate_builders` | When set to false the collection will not fail if one builder fails<br>**Default Mode:** `true` | **boolean:**`true` or `false` |
| Build Collection | `build_collection` | When set to false the collection won't be created but items can still be added to Radarr/Sonarr<br>**Default Mode:** `true` | **boolean:**`true` or `false` |
| Missing Only Released | `missing_only_released` | Collection Level `missing_only_released` toggle<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:**`true` or `false` |
| Show Filtered Collections | `show_filtered` | Collection level `show_filtered` toggle<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:**`true` or `false` |
| Show Missing Collections | `show_missing` | Collection level `show_missing` toggle<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:**`true` or `false` |
| Save Missing Collections | `save_missing` | Collection level `save_missing` toggle<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:**`true` or `false` |
@ -80,15 +82,16 @@ All the following attributes can override the global [Radarr](https://github.com
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| Radarr Add | `radarr_add` | Collection level `add` toggle for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | **boolean:**`true` or `false` |
| Radarr Add Existing | `radarr_add_existing` | Collection level `add_existing` toggle for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | **boolean:**`true` or `false` |
| Radarr Tag | `radarr_tag` | Collection level `tag` attribute override for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | List or comma-separated string of tags |
| Radarr Search | `radarr_search` | Collection level `search` attribute override for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | **boolean:**`true` or `false` |
| Item Radarr Tag | `item_radarr_tag` | Used to append a tag in Radarr for every movie in the collection | List or comma-separated string of tags |
| Item Radarr Tag Remove | `item_radarr_tag.remove` | Used to remove existing tags in Radarr for every movie in the collection | List or comma-separated string of tags |
| Item Radarr Tag Sync | `item_radarr_tag.sync` | Matches the tags in Radarr for every movie in the collection with the provided tags | List or comma-separated string of tags |
| Item Radarr Tag | `item_radarr_tag` | Used to append a tag in Radarr for every movie found by the builders that's in Radarr | List or comma-separated string of tags |
| Item Radarr Tag Remove | `item_radarr_tag.remove` | Used to remove existing tags in Radarr for every movie found by the builders that's in Radarr | List or comma-separated string of tags |
| Item Radarr Tag Sync | `item_radarr_tag.sync` | Matches the tags in Radarr for every movie found by the builders that's in Radarr with the provided tags | List or comma-separated string of tags |
## Sonarr Details
All the following attributes can override the global [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) attributes.
@ -96,6 +99,7 @@ All the following attributes can override the global [Sonarr](https://github.com
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| Sonarr Add | `sonarr_add` | Collection level `add` toggle for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | **boolean:**`true` or `false` |
| Sonarr Add Existing | `sonarr_add_existing` | Collection level `add_existing` toggle for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | **boolean:**`true` or `false` |
@ -105,9 +109,9 @@ All the following attributes can override the global [Sonarr](https://github.com
| Sonarr Tag | `sonarr_tag` | Collection level `tag` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | List or comma-separated string of tags |
| Sonarr Search | `sonarr_search` | Collection level `search` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | **boolean:**`true` or `false` |
| Sonarr Cutoff Search | `sonarr_cutoff_search` | Collection level `cutoff_search` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | **boolean:**`true` or `false` |
| Item Sonarr Tag | `item_sonarr_tag` | Used to append a tag in Sonarr for every series in the collection | List or comma-separated string of tags |
| Item Sonarr Tag Remove | `item_sonarr_tag.remove` | Used to remove existing tags in Sonarr for every series in the collection | List or comma-separated string of tags |
| Item Sonarr Tag Sync | `item_sonarr_tag.sync` | Matches the tags in Sonarr for every series in the collection with the provided tags | List or comma-separated string of tags |
| Item Sonarr Tag | `item_sonarr_tag` | Used to append a tag in Sonarr for every series found by the builders that's in Sonarr | List or comma-separated string of tags |
| Item Sonarr Tag Remove | `item_sonarr_tag.remove` | Used to remove existing tags in Sonarr for every series found by the builders that's in Sonarr | List or comma-separated string of tags |
| Item Sonarr Tag Sync | `item_sonarr_tag.sync` | Matches the tags in Sonarr for every series found by the builders that's in Sonarr with the provided tags | List or comma-separated string of tags |
## Metadata Details
All the following attributes update various details of the collection's Metadata.
@ -121,13 +125,13 @@ All the following attributes update various details of the collection's Metadata
| Label Remove | `label.remove` | Used to remove existing labels from the collection | Comma-separated string of labels to remove |
| Label Sync | `label.sync` | Matches the labels of the collection to the labels provided | Comma-separated string of labels to sync |
| Collection Mode | `collection_mode` | Used to change the Collection Mode | `default`: Library default<br>`hide`: Hide Collection<br>`hide_items`: Hide Items in this Collection<br>`show_items`: Show this Collection and its Items |
| Collection Order | `collection_order` | Used to change the Collection Order | `release`: Order Collection by Release Dates<br>`alpha`: Order Collection Alphabetically | :heavy_check_mark: | :heavy_check_mark: |
| Collection Order | `collection_order` | Used to change the Collection Order | `release`: Order Collection by Release Dates<br>`alpha`: Order Collection Alphabetically<br>`custom`: Order Collection Via the Builder Order | :heavy_check_mark: | :heavy_check_mark: |
| Visible on Library | `visible_library` | Used to change collection visible on Library | `true`: Visible<br>`false`: Not Visible |
| Visible on Home | `visible_home` | Used to change collection visible on Home | `true`: Visible<br>`false`: Not Visible |
| Visible on Shared | `visible_shared` | Used to change collection visible on Shared Users' Home | `true`: Visible<br>`false`: Not Visible |
* **Sort Title:** You can use `sort_title` to "promote" certain collections to the top of a library by creating a sort title starting with a `+` or "demote" certain collections to the bottom of a library by creating a sort title starting with a `~`.
* **Collection Order:** At this moment, Plex only allows filtering by alphabetical order or by release date, if you want Plex to allow a custom order please vote or post a comment on the Plex forum: [Topic - Plex Custom Collection Sorting](https://forums.plex.tv/t/custom-collection-sorting-machete-order/236226)
* **Custom Collection Order:** When using `collection_order: custom` you can only have a single builder in the collection.
## Item Metadata Details
All the following attributes update various details of the metadata for every item in the collection.
@ -34,9 +34,10 @@ The available attributes for each library are as follows
| :--- | :--- | :--- | :---: | :---: |
| [Library Name](#library-name) | `library_name` | Library name (Only needed when trying to use multiple libraries with the same name) | Base Attribute Name | :x: |
| [Metadata Path](#metadata-path) | `metadata_path` | Location for your Metadata YAML files | Same directory as config YAML file | :x: |
| Mass Genre Update | `mass_genre_update` | Updates every item's genres in the library to the chosen site's genres<br>`tmdb`: Use TMDb for Genres<br>`omdb`: Use IMDb through OMDb for Genres | No Update | :x: |
| Mass Genre Update | `mass_genre_update` | Updates every item's genres in the library to the chosen site's genres<br>`tmdb`: Use TMDb for Genres<br>`tvdb`: Use TVDb for Genres<br>`omdb`: Use IMDb through OMDb for Genres | No Update | :x: |
| Mass Audience Rating Update | `mass_audience_rating_update` | Updates every item's audience rating in the library to the chosen site's rating<br>`tmdb`: Use TMDb for Rating<br>`omdb`: Use IMDb through OMDb for Rating | No Update | :x: |
| Mass Critic Rating Update | `mass_critic_rating_update` | Updates every item's critic rating in the library to the chosen site's rating<br>`tmdb`: Use TMDb for Rating<br>`omdb`: Use IMDb through OMDb for Rating | No Update | :x: |
| Mass Trakt Rating Update | `mass_trakt_rating_update` | Updates every movie/show's user rating in the library to match your custom rating on Trakt if there is one<br>`true` or `false` | `false` | :x: |
| Split Duplicates | `split_duplicates` | Splits all duplicate movies/shows found in this library<br>`true` or `false` | `false` | :x: |
| Radarr Add All | `radarr_add_all` | Adds every item in the library to Radarr | No Adds | :x: |
| Sonarr Add All | `sonarr_add_all` | Adds every item in the library to Sonarr | No Adds | :x: |
@ -78,13 +79,20 @@ By default, when `metadata_path` is missing the script will look in your config
libraries:
Movies:
```
To use a Metadata File online add `file` under metadata set to the system path of the yaml file.
To use a local Metadata File add `file` under metadata set to the system path of the yaml file.
```yaml
libraries:
Movies:
metadata_path:
file: /config/My Movies.yml
```
To use all yaml files in a particular folder add `folder` under metadata set to the system path of the folder containing the yaml files.
```yaml
libraries:
Movies:
metadata_path:
folder: /config/Movie Configs/
```
To use a Metadata File online add `url` under metadata set to the url of the yaml file.
| Image Asset Folders | `asset_folders` | Search in assets for named folders vs named files<br>i.e. `assets/Star Wars.png` vs `assets/Star Wars/poster.png` | true | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Image Assets For All* | `assets_for_all` | Search in assets for images for every item in your library | false | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Create Asset Folders | `create_asset_folders` | When using `assets_for_all` if this is set to true PMM will create the Movie/Shows Folder for assets to be placed in | false | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Sync Mode | `sync_mode` | `append`: Only Add Items to the Collection<br>`sync`: Add & Remove Items from the Collection | append | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Run Again Delay](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details#setting-attributes) | `run_again_delay` | Number of minutes to run `run_again` collections after daily run is finished<br>**number:** 0 or greater | 0 | :heavy_check_mark: | :x: | :x: |
| Missing Only Released | `missing_only_released` | Library Level toggle to filter missing items from a collection that have yet to be released.<br>**boolean:** true or false | false | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Show Unmanaged Collections | `show_unmanaged` | Show collections not managed by Plex Meta Manager at the end of each run<br>**boolean:** true or false | true | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Show Filtered Collections | `show_filtered` | Library Level toggle to show filtered collections<br>**boolean:** true or false | false | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Show Missing | `show_missing` | Library Level toggle to show movies/shows missing from collections<br>**boolean:** true or false | true | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| API Token | `token` | Sonarr API Token | N/A | :heavy_check_mark: |
| Sonarr Version | `version` | `v2`: for <0.2<br>`v3`: for > 3.0 | v2 | :x: |
| Add | `add` | Add missing shows found to Sonarr<br>**boolean:** true or false | false | :x: |
| Add Existing | `add_existing` | Add shows existing in this collection to Sonarr<br>**boolean:** true or false | false | :x: |
| Root Folder Path | `root_folder_path` | Sonarr Root Folder Path To Use | N/A | :heavy_check_mark: |
| Monitor | `monitor` | `all`: Monitor all episodes except specials<br>`future`: Monitor episodes that have not aired yet<br>`missing`: Monitor episodes that do not have files or have not aired yet<br>`existing`: Monitor episodes that have files or have not aired yet<br>`pilot`: Monitor the first episode. All other episodes will be ignored<br>`first`: Monitor all episodes of the first season. All other seasons will be ignored<br>`latest`: Monitor all episodes of the latest season and future seasons<br>`none`: No episodes will be monitored | `all` | :x: |
| Quality Profile | `quality_profile` | Quality Profile To Use | N/A | :heavy_check_mark: |
You can build a collection using StevenLu's Popular Movies list on [StevenLu.com](https://movies.stevenlu.com/) (StevenLu).
No configuration is required for this builder.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [StevenLu's Popular Movies List](#stevenlus-popular-movies-list) | `stevenlu_popular` | Gets every movie on [StevenLu's Popular Movies List](https://movies.stevenlu.com/). | :heavy_check_mark: | :x: |
## StevenLu's Popular Movies List
Gets every movie on [StevenLu's Popular Movies List](https://movies.stevenlu.com/).